# frozen_string_literal: true class Site module Api extend ActiveSupport::Concern AIRBRAKE_SECRET = 'an api key for airbrake' included do encrypts :api_key before_save :add_api_key_if_missing! # Genera mensajes secretos que podemos usar para la API de cada sitio. def verifier @verifier ||= ActiveSupport::MessageVerifier.new api_key end def airbrake_api_key @airbrake_api_key ||= verifier.generate(AIRBRAKE_SECRET, purpose: :airbrake) end private # Asegurarse que el sitio tenga una llave para la API def add_api_key_if_missing! self.api_key ||= SecureRandom.hex(64) end end end end