Sha256: 355418afa9b9f72d7417cbdeda1684b25adbb7ea708e2ea78fcd69b1212b088e

Contents?: true

Size: 1.83 KB

Versions: 1

Compression:

Stored size: 1.83 KB

Contents

# rubocop:disable Metrics/AbcSize
# rubocop:disable MethodLength
require 'json'
module ActionTexter
  module Messagebird
    class Response
      class Success

        attr_reader :id,
                    :href,
                    :direction,
                    :type,
                    :originator,
                    :content,
                    :reference,
                    :validity,
                    :gateway,
                    :datacoding,
                    :mclass,
                    :scheduled_datetime,
                    :created_datetime,
                    :recipients

        def initialize(body)
          parsed_body         = JSON.parse(body, symbolize_names: true)
          @id                 = parsed_body[:id]
          @href               = parsed_body[:href]
          @direction          = parsed_body[:direction]
          @type               = parsed_body[:type]
          @originator         = parsed_body[:originator]
          @content            = parsed_body[:body]
          @reference          = parsed_body[:reference]
          @validity           = parsed_body[:validity]
          @gateway            = parsed_body[:gateway]
          @datacoding         = parsed_body[:datacoding]
          @mclass             = parsed_body[:mclass]
          @scheduled_datetime = parsed_body[:scheduledDatetime]
          @created_datetime   = parsed_body[:createdDatetime]
          @recipients         = parsed_body[:recipients]
        end

        def scheduled_datetime
          Date.parse(@scheduled_datetime) unless @scheduled_datetime.nil?
        end

        def created_datetime
          Date.parse(@created_datetime) unless @created_datetime.nil?
        end

        def recipients
          ActionTexter::Messagbird::Recipients.new(@recipients) unless @recipients.nil?
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
action-texter-0.2.1.pre lib/action_texter/provider/messagebird/response_success.rb