39 lines
826 B
Ruby
39 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
|