34 lines
666 B
Ruby
34 lines
666 B
Ruby
# frozen_string_literal: true
|
|
|
|
module PagesDomains
|
|
class UpdateService < BaseService
|
|
def execute(domain)
|
|
return unless authorized?
|
|
|
|
return false unless domain.update(params)
|
|
|
|
publish_event(domain)
|
|
|
|
true
|
|
end
|
|
|
|
private
|
|
|
|
def authorized?
|
|
current_user.can?(:update_pages, project)
|
|
end
|
|
|
|
def publish_event(domain)
|
|
event = PagesDomainUpdatedEvent.new(
|
|
data: {
|
|
project_id: project.id,
|
|
namespace_id: project.namespace_id,
|
|
root_namespace_id: project.root_namespace.id,
|
|
domain: domain.domain
|
|
}
|
|
)
|
|
|
|
Gitlab::EventStore.publish(event)
|
|
end
|
|
end
|
|
end
|