Sha256: fe45c162f81c1ea2c44011e00e3887c077d1e5c5619232d44e66e16e79855859
Contents?: true
Size: 1.72 KB
Versions: 1
Compression:
Stored size: 1.72 KB
Contents
=begin rdoc Author:: Chris Hauboldt (mailto:biz@lnstar.com) Copyright:: 2009 Lone Star Internet Inc. MailingList simply defines the available lists for subscriptions in the system. See Subscription for more information. =end module MailManager class MailingList < ActiveRecord::Base self.table_name = "#{MailManager.table_prefix}mailing_lists" # associations get stupid when ActiveRecord is scoped for some horrible reason has_many :subscriptions, :class_name => 'MailManager::Subscription' has_and_belongs_to_many :mailings, :class_name => 'MailManager::Mailing', :join_table => "#{MailManager.table_prefix}mailing_lists_#{MailManager.table_prefix}mailings" scope :active, {:conditions => {:status => 'active',:deleted_at => nil}} validates :name, presence: true include StatusHistory before_create :set_default_status attr_protected :id def self.active_email_addresses_contact_ids_subscription_ids_for_mailing_list_ids(mailing_list_ids) results = MailManager::MailingList.connection.execute( %Q|select c.email_address as email_address, c.id as contact_id, s.id as subscription_id from #{MailManager.table_prefix}contacts c inner join #{MailManager.table_prefix}subscriptions s on c.id=s.contact_id where s.status in ('active') and mailing_list_id in (#{ mailing_list_ids.join(',')})| ) results = results.map(&:values) if results.first.is_a?(Hash) results.inject(Hash.new){ |h,r| h.merge!(r[0].to_s.strip.downcase => { contact_id: r[1].to_i, subscription_id: r[2].to_i }) } end def active? deleted_at.nil? end def inactive? !active? end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mail_manager-3.2.6 | app/models/mail_manager/mailing_list.rb |