diff options
Diffstat (limited to 'app/events')
5 files changed, 105 insertions, 0 deletions
diff --git a/app/events/pages_domains/pages_domain_created_event.rb b/app/events/pages_domains/pages_domain_created_event.rb new file mode 100644 index 00000000000..a86718f4681 --- /dev/null +++ b/app/events/pages_domains/pages_domain_created_event.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +module PagesDomains + class PagesDomainCreatedEvent < ::Gitlab::EventStore::Event + def schema + { + 'type' => 'object', + 'properties' => { + 'project_id' => { 'type' => 'integer' }, + 'namespace_id' => { 'type' => 'integer' }, + 'root_namespace_id' => { 'type' => 'integer' }, + 'domain' => { 'type' => 'string' } + }, + 'required' => %w[project_id namespace_id root_namespace_id] + } + end + end +end diff --git a/app/events/pages_domains/pages_domain_deleted_event.rb b/app/events/pages_domains/pages_domain_deleted_event.rb new file mode 100644 index 00000000000..7fe165a7249 --- /dev/null +++ b/app/events/pages_domains/pages_domain_deleted_event.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +module PagesDomains + class PagesDomainDeletedEvent < ::Gitlab::EventStore::Event + def schema + { + 'type' => 'object', + 'properties' => { + 'project_id' => { 'type' => 'integer' }, + 'namespace_id' => { 'type' => 'integer' }, + 'root_namespace_id' => { 'type' => 'integer' }, + 'domain' => { 'type' => 'string' } + }, + 'required' => %w[project_id namespace_id root_namespace_id] + } + end + end +end diff --git a/app/events/pages_domains/pages_domain_updated_event.rb b/app/events/pages_domains/pages_domain_updated_event.rb new file mode 100644 index 00000000000..641fb2f6a53 --- /dev/null +++ b/app/events/pages_domains/pages_domain_updated_event.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +module PagesDomains + class PagesDomainUpdatedEvent < ::Gitlab::EventStore::Event + def schema + { + 'type' => 'object', + 'properties' => { + 'project_id' => { 'type' => 'integer' }, + 'namespace_id' => { 'type' => 'integer' }, + 'root_namespace_id' => { 'type' => 'integer' }, + 'domain' => { 'type' => 'string' } + }, + 'required' => %w[project_id namespace_id root_namespace_id] + } + end + end +end diff --git a/app/events/projects/project_attributes_changed_event.rb b/app/events/projects/project_attributes_changed_event.rb new file mode 100644 index 00000000000..f7c27fa65e6 --- /dev/null +++ b/app/events/projects/project_attributes_changed_event.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +module Projects + class ProjectAttributesChangedEvent < ::Gitlab::EventStore::Event + PAGES_RELATED_ATTRIBUTES = %w[ + pages_https_only + visibility_level + ].freeze + + def schema + { + 'type' => 'object', + 'properties' => { + 'project_id' => { 'type' => 'integer' }, + 'namespace_id' => { 'type' => 'integer' }, + 'root_namespace_id' => { 'type' => 'integer' }, + 'attributes' => { 'type' => 'array' } + }, + 'required' => %w[project_id namespace_id root_namespace_id attributes] + } + end + + def pages_related? + PAGES_RELATED_ATTRIBUTES.any? do |attribute| + data[:attributes].include?(attribute) + end + end + end +end diff --git a/app/events/projects/project_features_changed_event.rb b/app/events/projects/project_features_changed_event.rb new file mode 100644 index 00000000000..a0c6fa1a3f9 --- /dev/null +++ b/app/events/projects/project_features_changed_event.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +module Projects + class ProjectFeaturesChangedEvent < ::Gitlab::EventStore::Event + def schema + { + 'type' => 'object', + 'properties' => { + 'project_id' => { 'type' => 'integer' }, + 'namespace_id' => { 'type' => 'integer' }, + 'root_namespace_id' => { 'type' => 'integer' }, + 'features' => { 'type' => 'array' } + }, + 'required' => %w[project_id namespace_id root_namespace_id features] + } + end + + def pages_related? + data[:features].include?("pages_access_level") + end + end +end |