Sha256: b26a2c5a320ae9e25ce565d1436bd8c0c170ea5fa096b5ed08fb69018e230836

Contents?: true

Size: 976 Bytes

Versions: 2

Compression:

Stored size: 976 Bytes

Contents

require 'nokogiri'

# <MessageFailed>
#  <Id>{guid-of-push-notification}</Id>
#  <MessageId>{guid-of-inbound-message}</MessageId>
#  <AccountId>{guid-of-esendex-account-for-message}</AccountId>
#  <OccurredAt>
#   {the UTC DateTime (yyyy-MM-ddThh:mm:ss) the message failed}
#  </OccurredAt>
# </MessageDelivered>

module Esendex
  class MessageFailedEvent
    include HashSerialisation

    attr_accessor :id, :message_id, :account_id, :occurred_at

    def self.from_xml(source)
      doc = Nokogiri::XML source
      event = MessageFailedEvent.new
      event.id = doc.at_xpath("/MessageFailed/Id").content
      event.message_id = doc.at_xpath("/MessageFailed/MessageId").content
      event.account_id = doc.at_xpath("/MessageFailed/AccountId").content
      occurred_at_s = doc.at_xpath("/MessageFailed/OccurredAt").content
      event.occurred_at = DateTime.strptime(occurred_at_s, "%Y-%m-%dT%H:%M:%S").to_time
      event
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
esendex-0.6.0 lib/esendex/message_failed_event.rb
esendex-0.5.0 lib/esendex/message_failed_event.rb