Sha256: cef5711804e391e6af9b03f35af74f889ecb38e01e73359c41668af1b66d6099
Contents?: true
Size: 1.55 KB
Versions: 2
Compression:
Stored size: 1.55 KB
Contents
module OpenMarket module SMS module Responses class MessageStatus attr_reader :status, :headers, :body def initialize(request, service_response) @request = request @response = service_response parse_response end def success? status == 200 end def ticket_id @request.ticket_id end def message_status_code @delivery_status.dig('code')&.to_i end def message_status @delivery_status.dig('description') end def destination @delivery_status.dig('destination', 'address') end def delivery_date delivery_date = @delivery_status.dig('deliveryDate') return if delivery_date.nil? || delivery_date.empty? DateTime.parse(delivery_date) end def to_s "Response: #{status}, #{error}" end def error_message body.dig('error', 'description') end def error_code body.dig('error', 'code')&.to_i end private def parse_response @status = @response.status parse_body parse_delivery_status end def parse_body @body = \ if !@response.body || @response.body.empty? {} else JSON.parse(@response.body) end end def parse_delivery_status @delivery_status = @body.dig('mtStatus') end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sms_broker-1.0.8 | lib/open_market/sms/responses/message_status.rb |
sms_broker-1.0.7 | lib/open_market/sms/responses/message_status.rb |