1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
# frozen_string_literal: true
module Ml
class CreateExperimentService
def initialize(project, experiment_name, user = nil)
@project = project
@name = experiment_name
@user = user
end
def execute
experiment = Ml::Experiment.new(project: project, name: name, user: user)
experiment.save
return error(experiment.errors.full_messages) unless experiment.persisted?
success(experiment)
end
private
def success(model)
ServiceResponse.success(payload: model)
end
def error(reason)
ServiceResponse.error(message: reason)
end
attr_reader :project, :name, :user
end
end
|