Sha256: ad0cca071346fd545a6ef08e0bdfde99cf9fca689fbfcfa5d4cfd985685cfbdf

Contents?: true

Size: 1.2 KB

Versions: 5

Compression:

Stored size: 1.2 KB

Contents

require 'uuidtools'

module Spider; module Messenger
    
    class Message < Spider::Model::Managed
        element :ticket, UUID, :label => _("Ticket")
        element :last_try, DateTime, :label => _("Last try")
        element :next_try, DateTime, :label => _("Next try")
        element :attempts, Fixnum, :label => _("Attempts")
        element :backend_response, String, :label => _("Last status")
        element :sent, DateTime, :label => _("Sent at")
        
        def status
            if self.sent
                :sent
            elsif (self.next_try)
                :queue
            else
                :failed
            end
        end
        
        def self.sent_messages
            self.where{ q.sent .not nil }
        end
        
        def self.queued_messages
            self.where{ (q.sent == nil) & (q.next_try .not nil) }
        end
        
        def self.failed_messages
            self.where{ (q.sent == nil) & (q.next_try .not nil) }
        end
        
        with_mapper do
            def before_save(obj, mode)
                obj.ticket = UUIDTools::UUID.random_create.to_s if mode == :insert
                super
            end
        end
        
    end
    
end; end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
spiderfw-0.5.13 apps/messenger/models/message.rb
spiderfw-0.5.12 apps/messenger/models/message.rb
spiderfw-0.5.11 apps/messenger/models/message.rb
spiderfw-0.5.10 apps/messenger/models/message.rb
spiderfw-0.5.9 apps/messenger/models/message.rb