Sha256: 71aa35f3022993fec09a2764c3b894ffc1c740c4d66fabb9876382fac959ac5e
Contents?: true
Size: 980 Bytes
Versions: 1
Compression:
Stored size: 980 Bytes
Contents
# frozen_string_literal: true module FriendlyShipping module Services class ShipEngine # Parses the API response for voiding a label. class ParseVoidResponse extend Dry::Monads::Result::Mixin # @param request [Request] the request to attach to the API result # @param response [Response] the response to parse # @return [Success<ApiResult<String>>, Failure<ApiFailure<String>>] the success or failure message def self.call(request:, response:) parsed_json = JSON.parse(response.body) approved, message = parsed_json["approved"], parsed_json["message"] if approved Success( ApiResult.new(message, original_request: request, original_response: response) ) else Failure( ApiFailure.new(message, original_request: request, original_response: response) ) end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
friendly_shipping-0.9.0 | lib/friendly_shipping/services/ship_engine/parse_void_response.rb |