38 lines
826 B
Ruby
38 lines
826 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Ci
|
|
module PipelineSchedules
|
|
class UpdateService
|
|
def initialize(schedule, user, params)
|
|
@schedule = schedule
|
|
@user = user
|
|
@params = params
|
|
end
|
|
|
|
def execute
|
|
return forbidden unless allowed?
|
|
|
|
if schedule.update(@params)
|
|
ServiceResponse.success(payload: schedule)
|
|
else
|
|
ServiceResponse.error(message: schedule.errors.full_messages)
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :schedule, :user
|
|
|
|
def allowed?
|
|
user.can?(:update_pipeline_schedule, schedule)
|
|
end
|
|
|
|
def forbidden
|
|
ServiceResponse.error(
|
|
message: _('The current user is not authorized to update the pipeline schedule'),
|
|
reason: :forbidden
|
|
)
|
|
end
|
|
end
|
|
end
|
|
end
|