54 lines
1.6 KiB
Ruby
54 lines
1.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module API
|
|
module Ml
|
|
module Mlflow
|
|
module ApiHelpers
|
|
def resource_not_found!
|
|
render_structured_api_error!({ error_code: 'RESOURCE_DOES_NOT_EXIST' }, 404)
|
|
end
|
|
|
|
def resource_already_exists!
|
|
render_structured_api_error!({ error_code: 'RESOURCE_ALREADY_EXISTS' }, 400)
|
|
end
|
|
|
|
def invalid_parameter!(message = nil)
|
|
render_structured_api_error!({ error_code: 'INVALID_PARAMETER_VALUE', message: message }, 400)
|
|
end
|
|
|
|
def experiment_repository
|
|
::Ml::ExperimentTracking::ExperimentRepository.new(user_project, current_user)
|
|
end
|
|
|
|
def candidate_repository
|
|
::Ml::ExperimentTracking::CandidateRepository.new(user_project, current_user)
|
|
end
|
|
|
|
def experiment
|
|
@experiment ||= find_experiment!(params[:experiment_id], params[:experiment_name])
|
|
end
|
|
|
|
def candidate
|
|
@candidate ||= find_candidate!(params[:run_id])
|
|
end
|
|
|
|
def find_experiment!(iid, name)
|
|
experiment_repository.by_iid_or_name(iid: iid, name: name) || resource_not_found!
|
|
end
|
|
|
|
def find_candidate!(eid)
|
|
candidate_repository.by_eid(eid) || resource_not_found!
|
|
end
|
|
|
|
def packages_url
|
|
path = api_v4_projects_packages_generic_package_version_path(
|
|
id: user_project.id, package_name: '', file_name: ''
|
|
)
|
|
path = path.delete_suffix('/package_version')
|
|
|
|
"#{request.base_url}#{path}"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|