Sha256: 228f0b96a3c733533081896a7be8840158abcf8b4373b633851631567e063644

Contents?: true

Size: 1.18 KB

Versions: 8

Compression:

Stored size: 1.18 KB

Contents

require 'uuid'

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 = ::UUID.generate if mode == :insert
                super
            end
        end
        
    end
    
end; end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
spiderfw-0.5.7 apps/messenger/models/message.rb
spiderfw-0.5.6 apps/messenger/models/message.rb
spiderfw-0.5.5 apps/messenger/models/message.rb
spiderfw-0.5.4 apps/messenger/models/message.rb
spiderfw-0.5.3 apps/messenger/models/message.rb
spiderfw-0.5.2 apps/messenger/models/message.rb
spiderfw-0.5.1 apps/messenger/models/message.rb
spiderfw-0.5 apps/messenger/models/message.rb