Class: FriendlyShipping::Services::Usps::ParseTimeInTransitResponse
- Inherits:
-
Object
- Object
- FriendlyShipping::Services::Usps::ParseTimeInTransitResponse
- Defined in:
- lib/friendly_shipping/services/usps/parse_time_in_transit_response.rb
Class Method Summary collapse
-
.call(request:, response:) ⇒ Result<ApiResult<Array<FriendlyShipping::Timing>>>
Parse a response from USPS’ time in transit API.
Class Method Details
.call(request:, response:) ⇒ Result<ApiResult<Array<FriendlyShipping::Timing>>>
Parse a response from USPS’ time in transit API
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/friendly_shipping/services/usps/parse_time_in_transit_response.rb', line 16 def call(request:, response:) # Filter out error responses and directly return a failure parsing_result = ParseXMLResponse.call( request: request, response: response, expected_root_tag: 'SDCGetLocationsResponse' ) parsing_result.fmap do |xml| expedited_commitments = xml.xpath('//Expedited') expedited_timings = parse_expedited_commitment_nodes(expedited_commitments) non_expedited_commitments = xml.xpath('//NonExpedited') non_expedited_timings = parse_non_expedited_commitment_nodes(non_expedited_commitments) ApiResult.new( expedited_timings + non_expedited_timings, original_request: request, original_response: response ) end end |