fastbound-ruby 1.1.2 → 1.1.6
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
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: d852c62270f374ee9e8114027108e39f67d74dbef1ca33c8f5ef2be371b04af3
         | 
| 4 | 
            +
              data.tar.gz: da98709eff4b8b3e4efefc218abaea16914fc0c7698ff5a044b8ce6fe4b38903
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 18a3f83fc9a13b909fa3cb0014f3b44d3c1e085b33abf3cb3095a54d847e085ccc0ba1977f5ff064e497dc010c551b3fdd21f7a9b1d274e3ba6e4c185f348382
         | 
| 7 | 
            +
              data.tar.gz: 28f1071c6db244a90509b22bcd4c398797cea10018f806771abc9d59ad087bc22e03715aca63c8c4005e510b6d5e0cd35dc2bbb8f88355ba7beb11d5bfb8179d
         | 
| @@ -82,12 +82,11 @@ module FastBound | |
| 82 82 | 
             
                def create_and_commit(acquisition_data, item_data, contact_data)
         | 
| 83 83 | 
             
                  requires!(acquisition_data, *CREATE_AND_EDIT_ATTRS[:required])
         | 
| 84 84 | 
             
                  requires!(item_data, *Item::CREATE_AND_EDIT_ATTRS[:required])
         | 
| 85 | 
            -
                  requires!(contact_data, *Contact::CREATE_AND_EDIT_ATTRS[:required])
         | 
| 86 85 |  | 
| 87 86 | 
             
                  endpoint = ENDPOINTS[:create_and_commit]
         | 
| 88 87 | 
             
                  acquisition_data = standardize_body_data(acquisition_data, CREATE_AND_EDIT_ATTRS[:permitted])
         | 
| 89 88 | 
             
                  item_data = standardize_body_data(item_data, Item::CREATE_AND_EDIT_ATTRS[:permitted])
         | 
| 90 | 
            -
                  contact_data = standardize_body_data(contact_data, Contact::CREATE_AND_EDIT_ATTRS | 
| 89 | 
            +
                  contact_data = standardize_body_data(contact_data, Contact::CREATE_AND_EDIT_ATTRS)
         | 
| 91 90 | 
             
                  request_data = acquisition_data.merge(
         | 
| 92 91 | 
             
                    contact: contact_data,
         | 
| 93 92 | 
             
                    items: [item_data]
         | 
    
        data/lib/fastbound-ruby/api.rb
    CHANGED
    
    | @@ -13,38 +13,41 @@ module FastBound | |
| 13 13 | 
             
                def get_request(client, endpoint)
         | 
| 14 14 | 
             
                  request = Net::HTTP::Get.new(request_url(client, endpoint))
         | 
| 15 15 |  | 
| 16 | 
            +
                  set_request_headers(client, request)
         | 
| 16 17 | 
             
                  submit_request(client, request)
         | 
| 17 18 | 
             
                end
         | 
| 18 19 |  | 
| 19 20 | 
             
                def post_request(client, endpoint, data = {})
         | 
| 20 21 | 
             
                  request = Net::HTTP::Post.new(request_url(client, endpoint))
         | 
| 21 22 |  | 
| 23 | 
            +
                  set_request_headers(client, request, 'application/json')
         | 
| 22 24 | 
             
                  submit_request(client, request, data)
         | 
| 23 25 | 
             
                end
         | 
| 24 26 |  | 
| 25 27 | 
             
                def put_request(client, endpoint, data = {})
         | 
| 26 28 | 
             
                  request = Net::HTTP::Put.new(request_url(client, endpoint))
         | 
| 27 29 |  | 
| 30 | 
            +
                  set_request_headers(client, request, 'application/json')
         | 
| 28 31 | 
             
                  submit_request(client, request, data)
         | 
| 29 32 | 
             
                end
         | 
| 30 33 |  | 
| 31 34 | 
             
                def delete_request(client, endpoint)
         | 
| 32 35 | 
             
                  request = Net::HTTP::Delete.new(request_url(client, endpoint))
         | 
| 33 36 |  | 
| 37 | 
            +
                  set_request_headers(client, request)
         | 
| 34 38 | 
             
                  submit_request(client, request)
         | 
| 35 39 | 
             
                end
         | 
| 36 40 |  | 
| 37 41 | 
             
                def post_file_request(client, endpoint, file_data)
         | 
| 38 42 | 
             
                  request = Net::HTTP::Post.new(request_url(client, endpoint))
         | 
| 39 43 |  | 
| 44 | 
            +
                  set_request_headers(client, request)
         | 
| 40 45 | 
             
                  submit_file_request(client, request, file_data)
         | 
| 41 46 | 
             
                end
         | 
| 42 47 |  | 
| 43 48 | 
             
                private
         | 
| 44 49 |  | 
| 45 50 | 
             
                def submit_request(client, request, data = {})
         | 
| 46 | 
            -
                  set_request_headers(client, request)
         | 
| 47 | 
            -
             | 
| 48 51 | 
             
                  request.body = data.is_a?(Hash) ? data.to_json : data
         | 
| 49 52 |  | 
| 50 53 | 
             
                  process_request(request)
         | 
| @@ -56,14 +59,14 @@ module FastBound | |
| 56 59 | 
             
                  headers.merge!(content_type_header("multipart/form-data; boundary=#{boundary}"))
         | 
| 57 60 |  | 
| 58 61 | 
             
                  build_multipart_request_body(request, file_data, boundary)
         | 
| 59 | 
            -
                  set_request_headers(client, request)
         | 
| 60 62 | 
             
                  process_request(request)
         | 
| 61 63 | 
             
                end
         | 
| 62 64 |  | 
| 63 65 | 
             
                def process_request(request)
         | 
| 64 66 | 
             
                  uri = URI(request.path)
         | 
| 65 | 
            -
                  http = Net::HTTP.new(uri.host, uri.port | 
| 67 | 
            +
                  http = Net::HTTP.new(uri.host, uri.port)
         | 
| 66 68 |  | 
| 69 | 
            +
                  http.use_ssl = true
         | 
| 67 70 | 
             
                  http.set_debug_output($stdout) if FastBound.config.full_debug?
         | 
| 68 71 |  | 
| 69 72 | 
             
                  response = http.start { |_http| _http.request(request) }
         | 
| @@ -88,10 +91,11 @@ module FastBound | |
| 88 91 | 
             
                  request.body = body.join
         | 
| 89 92 | 
             
                end
         | 
| 90 93 |  | 
| 91 | 
            -
                def set_request_headers(client, request)
         | 
| 94 | 
            +
                def set_request_headers(client, request, content_type = nil)
         | 
| 92 95 | 
             
                  request['User-Agent'] = USER_AGENT
         | 
| 93 96 | 
             
                  request['Authorization'] = ['Basic', Base64.strict_encode64(client.api_key + ':')].join(' ')
         | 
| 94 97 | 
             
                  request['X-AuditUser'] = client.account_email
         | 
| 98 | 
            +
                  request['Content-Type'] = content_type if content_type.present?
         | 
| 95 99 | 
             
                end
         | 
| 96 100 |  | 
| 97 101 | 
             
                def request_url(client, endpoint)
         | 
| @@ -5,14 +5,11 @@ module FastBound | |
| 5 5 |  | 
| 6 6 | 
             
                include FastBound::API
         | 
| 7 7 |  | 
| 8 | 
            -
                CREATE_AND_EDIT_ATTRS =  | 
| 9 | 
            -
                   | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
                  ).freeze,
         | 
| 14 | 
            -
                  required:  %i( ffl_number ffl_expires premise_address_1 premise_city premise_state premise_zip_code ).freeze
         | 
| 15 | 
            -
                }
         | 
| 8 | 
            +
                CREATE_AND_EDIT_ATTRS = %i(
         | 
| 9 | 
            +
                  external_id ffl_number ffl_expires lookup_ffl license_name trade_name sotein sot_class business_type
         | 
| 10 | 
            +
                  organization_name first_name middle_name last_name premise_address_1 premise_address_2 premise_city
         | 
| 11 | 
            +
                  premise_county premise_state premise_zip_code premise_country phone_number fax email_address
         | 
| 12 | 
            +
                ).freeze
         | 
| 16 13 |  | 
| 17 14 | 
             
                CREATE_AND_EDIT_LICENSE_ATTRS = {
         | 
| 18 15 | 
             
                  permitted: %i( type number expiration copy_on_file ).freeze,
         | 
| @@ -49,17 +46,15 @@ module FastBound | |
| 49 46 | 
             
                end
         | 
| 50 47 |  | 
| 51 48 | 
             
                def create(contact_data)
         | 
| 52 | 
            -
                  requires!(contact_data, *CREATE_AND_EDIT_ATTRS[:required])
         | 
| 53 | 
            -
             | 
| 54 49 | 
             
                  endpoint = ENDPOINTS[:create]
         | 
| 55 | 
            -
                  contact_data = standardize_body_data(contact_data, CREATE_AND_EDIT_ATTRS | 
| 50 | 
            +
                  contact_data = standardize_body_data(contact_data, CREATE_AND_EDIT_ATTRS)
         | 
| 56 51 |  | 
| 57 52 | 
             
                  post_request(@client, endpoint, contact_data)
         | 
| 58 53 | 
             
                end
         | 
| 59 54 |  | 
| 60 55 | 
             
                def edit(contact_id, contact_data)
         | 
| 61 56 | 
             
                  endpoint = ENDPOINTS[:edit] % contact_id
         | 
| 62 | 
            -
                  contact_data = standardize_body_data(contact_data, CREATE_AND_EDIT_ATTRS | 
| 57 | 
            +
                  contact_data = standardize_body_data(contact_data, CREATE_AND_EDIT_ATTRS)
         | 
| 63 58 |  | 
| 64 59 | 
             
                  put_request(@client, endpoint, contact_data)
         | 
| 65 60 | 
             
                end
         | 
| @@ -152,19 +152,18 @@ module FastBound | |
| 152 152 | 
             
                  post_request(@client, endpoint, commit_data)
         | 
| 153 153 | 
             
                end
         | 
| 154 154 |  | 
| 155 | 
            -
                def create_and_commit(disposition_data, items_data, contact_data, commit_data = {})
         | 
| 156 | 
            -
                  requires!(contact_data, *Contact::CREATE_AND_EDIT_ATTRS[:required])
         | 
| 155 | 
            +
                def create_and_commit(disposition_data, items_data, contact_data = {}, commit_data = {})
         | 
| 157 156 | 
             
                  items_data.each { |item| requires!(item, :id) }
         | 
| 158 157 |  | 
| 159 158 | 
             
                  endpoint = ENDPOINTS[:create_and_commit]
         | 
| 160 159 | 
             
                  disposition_data = standardize_body_data(disposition_data, EDIT_AND_CREATE_COMMIT_ATTRS)
         | 
| 161 160 | 
             
                  items_data = items_data.map { |item| standardize_body_data(item, ITEM_ATTRS[:add]) }
         | 
| 162 | 
            -
                  contact_data = standardize_body_data(contact_data, Contact::CREATE_AND_EDIT_ATTRS | 
| 161 | 
            +
                  contact_data = standardize_body_data(contact_data, Contact::CREATE_AND_EDIT_ATTRS)
         | 
| 163 162 | 
             
                  request_data = disposition_data.merge(
         | 
| 164 163 | 
             
                    contact: contact_data,
         | 
| 165 164 | 
             
                    items: items_data,
         | 
| 166 165 | 
             
                    manufacturingChanges: commit_data
         | 
| 167 | 
            -
                  )
         | 
| 166 | 
            +
                  ).compact
         | 
| 168 167 |  | 
| 169 168 | 
             
                  post_request(@client, endpoint, request_data)
         | 
| 170 169 | 
             
                end
         | 
| @@ -24,7 +24,11 @@ module FastBound | |
| 24 24 | 
             
                      _data.map(&:deep_symbolize_keys)
         | 
| 25 25 | 
             
                    end
         | 
| 26 26 | 
             
                  else
         | 
| 27 | 
            -
                     | 
| 27 | 
            +
                    if FastBound.config.full_debug?
         | 
| 28 | 
            +
                      puts "-- DEBUG: #{self}: RequestError: #{@response.inspect}"
         | 
| 29 | 
            +
                    end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                    raise FastBound::Error::RequestError.new([@response.body, @response.message].reject(&:blank?).join(" | "))
         | 
| 28 32 | 
             
                  end
         | 
| 29 33 | 
             
                end
         | 
| 30 34 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: fastbound-ruby
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.1. | 
| 4 | 
            +
              version: 1.1.6
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Jeffrey Dill
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2022-02- | 
| 11 | 
            +
            date: 2022-02-17 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         |