Sha256: 6c626a278993cb0abb7343f4d6976bcf1ea04664f4df1d8fd8f33f0eb55f74cf

Contents?: true

Size: 793 Bytes

Versions: 3

Compression:

Stored size: 793 Bytes

Contents

class SmsAero::Response
  extend Dry::Initializer
  extend SmsAero::Optional
  option :reason, proc(&:to_s),  default: proc { nil }
  option :result, proc(&:strip), default: -> { "accepted" }

  def success?
    result == "accepted"
  end

  class << self
    def build(*res)
      body = res.last
      new JSON.parse(body.first)
    end

    def new(opts)
      super \
        opts.each_with_object({}) { |(key, val), obj| obj[key.to_sym] = val }
    end
  end

  # Operation-specific responses
  require_relative "response/with_balance"
  require_relative "response/with_groups"
  require_relative "response/with_id"
  require_relative "response/with_senders"
  require_relative "response/with_statuses"
  require_relative "response/with_tariff"
  require_relative "response/with_hlr"
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sms_aero-0.2.0 lib/sms_aero/response.rb
sms_aero-0.1.3 lib/sms_aero/response.rb
sms_aero-0.1.2 lib/sms_aero/response.rb