Sha256: 4b8ecd5756e2451127c077e788d500d142b225f840deaeeaea3f5d0681c3be2c

Contents?: true

Size: 1.53 KB

Versions: 2

Compression:

Stored size: 1.53 KB

Contents

# encoding: utf-8
class NotificationSender

  def self.send_to(user,creator,title,message,label,link=nil)
    notification = Notification.find_or_create(:user_id => user.id,
                                :creator_id => creator.id,
                                :title => title,
                                :message => message,
                                :label => label,
                                :link => link,
                                :creation_date => Date.today)
    if link.nil?
      notification.link = "/notifications/#{notification.id}"
      notification.save
    end
    notification
  end

  def self.send_to_subscriptors(creator,title,message,label,link=nil)
    Subscription.where(:label => label).all.each do |subscription|
      notification = NotificationSender.send_to(subscription.user,creator,title,message,label,link)
    end
  end

  def self.send_error(creator,title,message)
    Subscription.where(:label => 'error').all.each do |subscription|
      creator = subscription.user if creator.nil?
      notification = Notification.find(:user_id => subscription.user_id,
                                       :creator_id => creator.id,
                                       :title => title,
                                       :message => message,
                                       :label => 'error',
                                       :read_date => nil)
      if notification.nil?
        notification = NotificationSender.send_to(subscription.user,creator,title,message,'error')
      end
    end

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sinatra-hexacta-0.1.1 lib/sinatra/extensions/notification.rb
sinatra-hexacta-0.1.0 lib/sinatra/extensions/notification.rb