25 lines
794 B
Ruby
25 lines
794 B
Ruby
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
|