You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
docuseal/lib/account_configs.rb

37 lines
965 B

# frozen_string_literal: true
module AccountConfigs
REMINDER_DURATIONS = {
'one_hour' => '1 hour',
'two_hours' => '2 hours',
'four_hours' => '4 hours',
'eight_hours' => '8 hours',
'twelve_hours' => '12 hours',
'twenty_four_hours' => '24 hours',
'two_days' => '2 days',
'three_days' => '3 days',
'four_days' => '4 days',
'five_days' => '5 days',
'six_days' => '6 days',
'seven_days' => '7 days',
'eight_days' => '8 days',
'fifteen_days' => '15 days',
'thirty_days' => '30 days'
}.freeze
module_function
def find_or_initialize_for_key(account, key)
find_for_account(account, key) ||
account.account_configs.new(key:, value: AccountConfig::DEFAULT_VALUES[key]&.call)
end
def find_for_account(account, key)
configs = account.account_configs.find_by(key:)
configs ||= Account.order(:id).first.account_configs.find_by(key:) unless Docuseal.multitenant?
configs
end
end