Class: IncidentManagement::TimelineEvents::BaseService
- Inherits:
-
Object
- Object
- IncidentManagement::TimelineEvents::BaseService
show all
- Includes:
- Gitlab::Utils::UsageData
- Defined in:
- app/services/incident_management/timeline_events/base_service.rb
Constant Summary
Gitlab::Utils::UsageData::DISTRIBUTED_HLL_FALLBACK, Gitlab::Utils::UsageData::FALLBACK, Gitlab::Utils::UsageData::HISTOGRAM_FALLBACK, Gitlab::Utils::UsageData::MAX_BUCKET_SIZE
Instance Method Summary
collapse
#add, #add_metric, #alt_usage_data, #average, #count, #distinct_count, #estimate_batch_distinct_count, #histogram, #maximum_id, #measure_duration, #minimum_id, #redis_usage_data, #sum, #track_usage_event, #with_finished_at, #with_metadata, #with_prometheus_client
Instance Method Details
#allowed? ⇒ Boolean
8
9
10
|
# File 'app/services/incident_management/timeline_events/base_service.rb', line 8
def allowed?
user&.can?(:admin_incident_management_timeline_event, incident)
end
|
43
44
45
46
47
48
49
50
51
|
# File 'app/services/incident_management/timeline_events/base_service.rb', line 43
def auto_create_predefined_tags(new_tags)
new_tags = new_tags.map(&:downcase)
tags_to_create = TimelineEventTag::PREDEFINED_TAGS.select { |tag| tag.downcase.in?(new_tags) }
tags_to_create.each do |name|
project.incident_management_timeline_event_tags.create(name: name)
end
end
|
#error(message) ⇒ Object
16
17
18
|
# File 'app/services/incident_management/timeline_events/base_service.rb', line 16
def error(message)
ServiceResponse.error(message: message)
end
|
#error_in_save(timeline_event) ⇒ Object
24
25
26
|
# File 'app/services/incident_management/timeline_events/base_service.rb', line 24
def error_in_save(timeline_event)
error(timeline_event.errors.full_messages.to_sentence)
end
|
#error_no_permissions ⇒ Object
20
21
22
|
# File 'app/services/incident_management/timeline_events/base_service.rb', line 20
def error_no_permissions
error(_('You have insufficient permissions to manage timeline events for this incident'))
end
|
#success(timeline_event) ⇒ Object
12
13
14
|
# File 'app/services/incident_management/timeline_events/base_service.rb', line 12
def success(timeline_event)
ServiceResponse.success(payload: { timeline_event: timeline_event })
end
|
#track_timeline_event(event, project) ⇒ Object
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'app/services/incident_management/timeline_events/base_service.rb', line 28
def track_timeline_event(event, project)
namespace = project.namespace
track_usage_event(event, user.id)
Gitlab::Tracking.event(
self.class.to_s,
event,
project: project,
namespace: namespace,
user: user,
label: 'redis_hll_counters.incident_management.incident_management_total_unique_counts_monthly',
context: [Gitlab::Tracking::ServicePingContext.new(data_source: :redis_hll, event: event).to_context]
)
end
|