diff options
Diffstat (limited to 'app/presenters/sentry_error_presenter.rb')
-rw-r--r-- | app/presenters/sentry_error_presenter.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/app/presenters/sentry_error_presenter.rb b/app/presenters/sentry_error_presenter.rb new file mode 100644 index 00000000000..ba724b0f8be --- /dev/null +++ b/app/presenters/sentry_error_presenter.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +class SentryErrorPresenter < Gitlab::View::Presenter::Delegated + presents :error + + FrequencyStruct = Struct.new(:time, :count, keyword_init: true) + + def first_seen + DateTime.parse(error.first_seen) + end + + def last_seen + DateTime.parse(error.last_seen) + end + + def project_id + Gitlab::GlobalId.build(model_name: 'Project', id: error.project_id).to_s + end + + def frequency + utc_offset = Time.zone_offset('UTC') + + error.frequency.map do |f| + FrequencyStruct.new(time: Time.at(f[0], in: utc_offset), count: f[1]) + end + end +end |