2020-04-22 19:07:51 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2021-09-04 01:27:46 +05:30
|
|
|
module Integrations
|
|
|
|
module BaseDataFields
|
2020-04-22 19:07:51 +05:30
|
|
|
extend ActiveSupport::Concern
|
|
|
|
|
|
|
|
included do
|
2022-08-27 11:52:29 +05:30
|
|
|
belongs_to :integration, inverse_of: self.table_name.to_sym, foreign_key: :integration_id
|
2020-04-22 19:07:51 +05:30
|
|
|
|
2021-06-08 01:23:25 +05:30
|
|
|
validates :integration, presence: true
|
2020-04-22 19:07:51 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
class_methods do
|
|
|
|
def encryption_options
|
|
|
|
{
|
|
|
|
key: Settings.attr_encrypted_db_key_base_32,
|
|
|
|
encode: true,
|
|
|
|
mode: :per_attribute_iv,
|
|
|
|
algorithm: 'aes-256-gcm'
|
|
|
|
}
|
|
|
|
end
|
2022-07-23 23:45:48 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
def activated?
|
|
|
|
!!integration&.activated?
|
|
|
|
end
|
|
|
|
|
|
|
|
def to_database_hash
|
|
|
|
as_json(
|
|
|
|
only: self.class.column_names
|
|
|
|
).except('id', 'service_id', 'integration_id', 'created_at', 'updated_at')
|
2020-04-22 19:07:51 +05:30
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|