houdini/lib/query/query_email_settings.rb

27 lines
883 B
Ruby
Raw Normal View History

# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
module QueryEmailSettings
Settings = ['notify_payments', 'notify_campaigns', 'notify_events', 'notify_payouts', 'notify_recurring_donations']
def self.fetch(np_id, user_id)
es = Psql.execute(%Q(
SELECT *
FROM email_settings
WHERE nonprofit_id=#{Qexpr.quote(np_id.to_i)}
AND user_id=#{Qexpr.quote(user_id.to_i)}
)).first
# If the user's event_settings table does not exist, return a hash with all settings true
if es.nil?
es = Psql.execute(%Q(
SELECT column_name
FROM information_schema.columns
WHERE table_name='email_settings'
)).map{|h| h['column_name']}
.reject{|name| ['id', 'nonprofit_id', 'user_id'].include?(name)}
.reduce({}){|h, name| h[name] = true; h}
end
return es
end
end