# frozen_string_literal: true # OpenAPI::Client keeps track of the authorized accesses to the 3-rd party API (aka. OpenAPI) class OpenAPI::Client < ApplicationRecord has_many :calls_count_tracings, foreign_key: :open_api_client_id, dependent: :destroy validates :name, presence: true validates_uniqueness_of :token before_create :set_initial_token def increment_calls_count update_column(:calls_count, calls_count+1) end def regenerate_token update_attributes(token: generate_unique_secure_token) end private def set_initial_token self.token = generate_unique_secure_token end def generate_unique_secure_token SecureRandom.base58(24) end end