Sha256: ebe46b3581de03b3ce6af92365986fb80f5226f8c53913eb688b65fd6d1b8554

Contents?: true

Size: 1.24 KB

Versions: 4

Compression:

Stored size: 1.24 KB

Contents

module Smsified
  class IncomingMessage
    attr_reader :date_time, :destination_address, :message, :message_id, :sender_address, :json
    
    ##
    # Intantiate a new object to provide convenience methods on an Incoming Message
    # http://www.smsified.com/sms-api-documentation/receiving
    # 
    # @param [required, String] valid JSON for an Incoming Message to be parsed
    # @return [Object] the parsed incoming message
    # @raise [ArgumentError] if json is not valid JSON or an Incoming Message type
    # @example 
    #   incoming_message = IncomingMessage.new(json)
    #   puts incoming_message.message # foobar
    def initialize(json)
      begin
        @json                = JSON.parse json
        
        contents             = @json['inboundSMSMessageNotification']['inboundSMSMessage']
        
        @date_time           = Time.parse contents['dateTime']
        @destination_address = contents['destinationAddress']
        @message             = contents['message']
        @message_id          = contents['messageId']
        @sender_address      = contents['senderAddress']
      rescue => error
        raise MessageError, "Not valid JSON or IncomingMessage"
      end
    end
    
    class MessageError < StandardError; end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
smsified-0.1.8 lib/smsified/incoming_message.rb
smsified-0.1.7 lib/smsified/incoming_message.rb
smsified-0.1.6 lib/smsified/incoming_message.rb
smsified-0.1.5 lib/smsified/incoming_message.rb