diff options
Diffstat (limited to 'app/services/incident_management/timeline_event_tags/create_service.rb')
-rw-r--r-- | app/services/incident_management/timeline_event_tags/create_service.rb | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/app/services/incident_management/timeline_event_tags/create_service.rb b/app/services/incident_management/timeline_event_tags/create_service.rb new file mode 100644 index 00000000000..6742bb6ba5c --- /dev/null +++ b/app/services/incident_management/timeline_event_tags/create_service.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +module IncidentManagement + module TimelineEventTags + class CreateService < TimelineEventTags::BaseService + attr_reader :project, :user, :params + + def initialize(project, user, params) + @project = project + @user = user + @params = params + end + + def execute + return error_no_permissions unless allowed? + + timeline_event_tag_params = { + project: project, + name: params[:name] + } + + timeline_event_tag = IncidentManagement::TimelineEventTag.new(timeline_event_tag_params) + + if timeline_event_tag.save + success(timeline_event_tag) + else + error_in_save(timeline_event_tag) + end + end + end + end +end |