diff options
Diffstat (limited to 'app/models/error_tracking/client_key.rb')
-rw-r--r-- | app/models/error_tracking/client_key.rb | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/app/models/error_tracking/client_key.rb b/app/models/error_tracking/client_key.rb new file mode 100644 index 00000000000..9d12c0ed6f1 --- /dev/null +++ b/app/models/error_tracking/client_key.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +class ErrorTracking::ClientKey < ApplicationRecord + belongs_to :project + + validates :project, presence: true + validates :public_key, presence: true, length: { maximum: 255 } + + scope :active, -> { where(active: true) } + + after_initialize :generate_key + + def self.find_by_public_key(key) + find_by(public_key: key) + end + + private + + def generate_key + self.public_key = "glet_#{SecureRandom.hex}" + end +end |