blob: c8ff3173227f1b3acd972c56ae24f6024e67bb1d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# frozen_string_literal: true
module ErrorTracking
class ErrorTrackingSetting < ActiveRecord::Base
belongs_to :project
validates :uri, length: { maximum: 255 }, public_url: true
validates :token, presence: true
attr_encrypted :token,
mode: :per_attribute_iv,
key: Settings.attr_encrypted_db_key_base_truncated,
algorithm: 'aes-256-gcm'
def self.create_or_update(project, params)
self.transaction(requires_new: true) do
setting = self.for_project(project)
setting.update!(params)
end
rescue ActiveRecord::RecordNotUnique
retry
end
def self.for_project(project)
self.where(project: project).first_or_initialize
end
end
end
|