friendly_shipping 0.5 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/.rubocop-relaxed.yml +3 -4
 - data/.rubocop.yml +9 -0
 - data/CHANGELOG.md +29 -0
 - data/friendly_shipping.gemspec +12 -12
 - data/lib/friendly_shipping/api_failure.rb +2 -15
 - data/lib/friendly_shipping/http_client.rb +16 -9
 - data/lib/friendly_shipping/request.rb +7 -1
 - data/lib/friendly_shipping/services/ship_engine/bad_request_handler.rb +15 -3
 - data/lib/friendly_shipping/services/ups.rb +9 -1
 - data/lib/friendly_shipping/services/ups/parse_address_classification_response.rb +5 -2
 - data/lib/friendly_shipping/services/ups/parse_address_validation_response.rb +5 -2
 - data/lib/friendly_shipping/services/ups/parse_city_state_lookup_response.rb +5 -2
 - data/lib/friendly_shipping/services/ups/parse_rate_response.rb +5 -1
 - data/lib/friendly_shipping/services/ups/parse_shipment_accept_response.rb +5 -1
 - data/lib/friendly_shipping/services/ups/parse_shipment_confirm_response.rb +5 -1
 - data/lib/friendly_shipping/services/ups/parse_time_in_transit_response.rb +5 -1
 - data/lib/friendly_shipping/services/ups/parse_void_shipment_response.rb +5 -1
 - data/lib/friendly_shipping/services/ups/parse_xml_response.rb +16 -7
 - data/lib/friendly_shipping/services/ups_freight.rb +44 -13
 - data/lib/friendly_shipping/services/ups_freight/generate_delivery_options_hash.rb +21 -0
 - data/lib/friendly_shipping/services/ups_freight/generate_document_options_hash.rb +28 -0
 - data/lib/friendly_shipping/services/ups_freight/generate_email_options_hash.rb +25 -0
 - data/lib/friendly_shipping/services/ups_freight/generate_freight_rate_request_hash.rb +2 -10
 - data/lib/friendly_shipping/services/ups_freight/generate_freight_ship_request_hash.rb +81 -0
 - data/lib/friendly_shipping/services/ups_freight/generate_location_hash.rb +5 -2
 - data/lib/friendly_shipping/services/ups_freight/generate_pickup_options_hash.rb +21 -0
 - data/lib/friendly_shipping/services/ups_freight/generate_pickup_request_hash.rb +31 -0
 - data/lib/friendly_shipping/services/ups_freight/label_delivery_options.rb +29 -0
 - data/lib/friendly_shipping/services/ups_freight/label_document_options.rb +56 -0
 - data/lib/friendly_shipping/services/ups_freight/label_email_options.rb +40 -0
 - data/lib/friendly_shipping/services/ups_freight/label_item_options.rb +10 -0
 - data/lib/friendly_shipping/services/ups_freight/label_options.rb +37 -0
 - data/lib/friendly_shipping/services/ups_freight/label_package_options.rb +10 -0
 - data/lib/friendly_shipping/services/ups_freight/label_pickup_options.rb +29 -0
 - data/lib/friendly_shipping/services/ups_freight/parse_freight_label_response.rb +57 -0
 - data/lib/friendly_shipping/services/ups_freight/parse_freight_rate_response.rb +29 -32
 - data/lib/friendly_shipping/services/ups_freight/parse_shipment_document.rb +24 -0
 - data/lib/friendly_shipping/services/ups_freight/pickup_request_options.rb +29 -0
 - data/lib/friendly_shipping/services/ups_freight/rates_options.rb +3 -6
 - data/lib/friendly_shipping/services/ups_freight/restful_api_error_handler.rb +30 -0
 - data/lib/friendly_shipping/services/ups_freight/shipment_document.rb +21 -0
 - data/lib/friendly_shipping/services/ups_freight/shipment_information.rb +35 -0
 - data/lib/friendly_shipping/services/usps.rb +1 -0
 - data/lib/friendly_shipping/services/usps/parse_address_validation_response.rb +5 -1
 - data/lib/friendly_shipping/services/usps/parse_city_state_lookup_response.rb +5 -1
 - data/lib/friendly_shipping/services/usps/parse_rate_response.rb +5 -2
 - data/lib/friendly_shipping/services/usps/parse_time_in_transit_response.rb +6 -2
 - data/lib/friendly_shipping/services/usps/parse_xml_response.rb +15 -5
 - data/lib/friendly_shipping/services/usps/rate_estimate_options.rb +1 -1
 - data/lib/friendly_shipping/services/usps/rate_estimate_package_options.rb +4 -1
 - data/lib/friendly_shipping/services/usps/serialize_rate_request.rb +11 -5
 - data/lib/friendly_shipping/services/usps/shipping_methods.rb +4 -4
 - data/lib/friendly_shipping/version.rb +1 -1
 - metadata +74 -39
 - data/lib/friendly_shipping/services/ups_freight/generate_ups_security_hash.rb +0 -23
 - data/lib/friendly_shipping/services/ups_freight/parse_json_response.rb +0 -38
 
| 
         @@ -1,38 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # frozen_string_literal: true
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module FriendlyShipping
         
     | 
| 
       4 
     | 
    
         
            -
              module Services
         
     | 
| 
       5 
     | 
    
         
            -
                class UpsFreight
         
     | 
| 
       6 
     | 
    
         
            -
                  class ParseJSONResponse
         
     | 
| 
       7 
     | 
    
         
            -
                    extend Dry::Monads::Result::Mixin
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
                    class << self
         
     | 
| 
       10 
     | 
    
         
            -
                      def call(response_body, expected_root_tag)
         
     | 
| 
       11 
     | 
    
         
            -
                        json = JSON.parse(response_body)
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
                        if request_successful?(json, expected_root_tag)
         
     | 
| 
       14 
     | 
    
         
            -
                          Success(json)
         
     | 
| 
       15 
     | 
    
         
            -
                        else
         
     | 
| 
       16 
     | 
    
         
            -
                          Failure(error_message(json))
         
     | 
| 
       17 
     | 
    
         
            -
                        end
         
     | 
| 
       18 
     | 
    
         
            -
                      rescue JSON::ParserError => e
         
     | 
| 
       19 
     | 
    
         
            -
                        Failure(e)
         
     | 
| 
       20 
     | 
    
         
            -
                      end
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
                      private
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
                      def request_successful?(json, expected_root_tag)
         
     | 
| 
       25 
     | 
    
         
            -
                        json[expected_root_tag].present?
         
     | 
| 
       26 
     | 
    
         
            -
                      end
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
                      def error_message(json)
         
     | 
| 
       29 
     | 
    
         
            -
                        detailed_error = json.dig('Fault', 'detail', 'Errors', 'ErrorDetail', 'PrimaryErrorCode')
         
     | 
| 
       30 
     | 
    
         
            -
                        status = detailed_error['Code']
         
     | 
| 
       31 
     | 
    
         
            -
                        desc = detailed_error['Description']
         
     | 
| 
       32 
     | 
    
         
            -
                        [status, desc].compact.join(": ").presence || 'UPS could not process the request.'
         
     | 
| 
       33 
     | 
    
         
            -
                      end
         
     | 
| 
       34 
     | 
    
         
            -
                    end
         
     | 
| 
       35 
     | 
    
         
            -
                  end
         
     | 
| 
       36 
     | 
    
         
            -
                end
         
     | 
| 
       37 
     | 
    
         
            -
              end
         
     | 
| 
       38 
     | 
    
         
            -
            end
         
     |