Sha256: 15cd529cd8da70b38c934dab11ef90d648e72270d7da1a5f6627cc10d2cf9c31
Contents?: true
Size: 1.22 KB
Versions: 11
Compression:
Stored size: 1.22 KB
Contents
module Notifiable class Notification < ActiveRecord::Base belongs_to :app, :class_name => 'Notifiable::App' validates :app, presence: true serialize :parameters has_many :notification_statuses, :class_name => 'Notifiable::NotificationStatus', :dependent => :destroy def batch begin yield(self) update(last_error_message: nil) rescue Exception => e update(last_error_message: e.message) ensure close end end def add_device_token(d) provider = d.provider.to_sym unless notifiers[provider] clazz = Notifiable.notifier_classes[provider] raise "Notifier #{provider} not configured" unless clazz notifier = clazz.new(Rails.env, self) self.app.configure(provider, notifier) @notifiers[provider] = notifier end notifiers[provider].send_notification(d) end def send_params @send_params ||= (self.parameters ? self.parameters : {}).merge({:n_id => self.id}) end private def notifiers @notifiers ||= {} end def close notifiers.each_value {|n| n.close} @notifiers = nil end end end
Version data entries
11 entries across 11 versions & 1 rubygems