diff options
Diffstat (limited to 'app/services/incident_management/timeline_events/update_service.rb')
-rw-r--r-- | app/services/incident_management/timeline_events/update_service.rb | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/app/services/incident_management/timeline_events/update_service.rb b/app/services/incident_management/timeline_events/update_service.rb index 012e2f0e260..8d4e29c6857 100644 --- a/app/services/incident_management/timeline_events/update_service.rb +++ b/app/services/incident_management/timeline_events/update_service.rb @@ -8,18 +8,23 @@ module IncidentManagement # @option params [string] note # @option params [datetime] occurred_at class UpdateService < TimelineEvents::BaseService + VALIDATION_CONTEXT = :user_input + def initialize(timeline_event, user, params) @timeline_event = timeline_event @incident = timeline_event.incident @user = user @note = params[:note] @occurred_at = params[:occurred_at] + @validation_context = VALIDATION_CONTEXT end def execute return error_no_permissions unless allowed? - if timeline_event.update(update_params) + timeline_event.assign_attributes(update_params) + + if timeline_event.save(context: validation_context) add_system_note(timeline_event) track_usage_event(:incident_management_timeline_event_edited, user.id) @@ -31,7 +36,7 @@ module IncidentManagement private - attr_reader :timeline_event, :incident, :user, :note, :occurred_at + attr_reader :timeline_event, :incident, :user, :note, :occurred_at, :validation_context def update_params { updated_by_user: user, note: note, occurred_at: occurred_at }.compact |