qbo_api 3.0.0 → 3.0.2
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/.github/dependabot.yml +10 -0
- data/.github/workflows/ci.yaml +29 -0
- data/README.md +42 -19
- data/lib/qbo_api/connection.rb +1 -1
- data/lib/qbo_api/error.rb +19 -5
- data/lib/qbo_api/version.rb +1 -1
- metadata +9 -7
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 5332ce0a487a0012e3cb020426155b5d8a1775497e32e3f43883c8da46417684
         | 
| 4 | 
            +
              data.tar.gz: 4bc7672f4a4e5b3ef937cd1ba23940da15343da38401243b2665b8b9bf910455
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 93b46a7ec5c979914e5e7046304bea8df3504e1c60e0168acf4ba8b3f756f7816b292ccc92fd57cce03629febfa6ac957124dfd2da3cc9854e8fa8e90c20d534
         | 
| 7 | 
            +
              data.tar.gz: '04531594e0155c2cec1306e4c19ce53eb0f7b15f25e56ba860702ae773afcffa9942e0d26fdfc538b5ed831e4a1007e99b718437f9e15096bb95a9a597aeb6c1'
         | 
| @@ -0,0 +1,29 @@ | |
| 1 | 
            +
            name: CI
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            on:
         | 
| 4 | 
            +
              pull_request:
         | 
| 5 | 
            +
              push:
         | 
| 6 | 
            +
                branches: [ master ]
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            jobs:
         | 
| 9 | 
            +
              rspec:
         | 
| 10 | 
            +
                runs-on: ubuntu-latest
         | 
| 11 | 
            +
                env:
         | 
| 12 | 
            +
                  RUBYOPT: "-W:deprecated" # show warnings, deprecations only
         | 
| 13 | 
            +
                  FARADAY_VERSION: ${{ matrix.faraday }}
         | 
| 14 | 
            +
                strategy:
         | 
| 15 | 
            +
                  fail-fast: false
         | 
| 16 | 
            +
                  matrix:
         | 
| 17 | 
            +
                    ruby: [ '2.7', '3.0', '3.1', '3.2' ]
         | 
| 18 | 
            +
                    faraday: [ '~> 1.0', '~> 2.0' ]
         | 
| 19 | 
            +
                steps:
         | 
| 20 | 
            +
                  - uses: actions/checkout@v4
         | 
| 21 | 
            +
                  - name: Set up Ruby
         | 
| 22 | 
            +
                    uses: ruby/setup-ruby@v1
         | 
| 23 | 
            +
                    with:
         | 
| 24 | 
            +
                      ruby-version: ${{ matrix.ruby }}
         | 
| 25 | 
            +
                      bundler-cache: true
         | 
| 26 | 
            +
                  - name: Run RSpec
         | 
| 27 | 
            +
                    run: |
         | 
| 28 | 
            +
                      cp .env.test .env
         | 
| 29 | 
            +
                      bundle exec rspec spec/
         | 
    
        data/README.md
    CHANGED
    
    | @@ -81,7 +81,7 @@ QboApi.request_id = true | |
| 81 81 | 
             
              resp = qbo_api.create(:bill, payload: bill_hash, params: { requestid: qbo_api.uuid })
         | 
| 82 82 | 
             
              # Works with .get, .create, .update, .query methods
         | 
| 83 83 | 
             
            ```
         | 
| 84 | 
            -
            -  | 
| 84 | 
            +
            - By default, this client runs against the current "base" or major version of the QBO API. This client does not run against the latest QBO API [minor version](https://developer.intuit.com/app/developer/qbo/docs/learn/explore-the-quickbooks-online-api/minor-versions) by default. To run all requests with a specific minor version, you must specify it:
         | 
| 85 85 | 
             
            ```ruby
         | 
| 86 86 | 
             
            QboApi.minor_version = 8
         | 
| 87 87 | 
             
            ```
         | 
| @@ -132,6 +132,12 @@ QboApi.minor_version = 8 | |
| 132 132 | 
             
              p response['status'] # => "Deleted"
         | 
| 133 133 | 
             
            ```
         | 
| 134 134 |  | 
| 135 | 
            +
            NOTE: If you are deleting a journal entry you have to use the following syntax with the underscore, even though this is inconsistent with how you create journal entries.
         | 
| 136 | 
            +
            ```ruby
         | 
| 137 | 
            +
              response = qbo_api.delete(:journal_entry, id: 145)
         | 
| 138 | 
            +
              p response['status'] # => "Deleted"
         | 
| 139 | 
            +
            ```
         | 
| 140 | 
            +
             | 
| 135 141 | 
             
            ### Deactivate (only works for name list entities)
         | 
| 136 142 | 
             
            ```ruby
         | 
| 137 143 | 
             
              response = qbo_api.deactivate(:employee, id: 55)
         | 
| @@ -329,29 +335,46 @@ See [docs](https://developer.intuit.com/docs/0100_quickbooks_online/0100_essenti | |
| 329 335 | 
             
              p qbo_api.is_transaction_entity?(:customer) # => false
         | 
| 330 336 | 
             
              p qbo_api.is_name_list_entity?(:vendors) # => true
         | 
| 331 337 | 
             
            ```
         | 
| 332 | 
            -
            ##  | 
| 338 | 
            +
            ## Spin up an example
         | 
| 333 339 | 
             
            - <a href="http://minimul.com/access-the-quickbooks-online-api-with-oauth2.html" target="_blank">Check out this article on spinning up the example</a>.
         | 
| 334 | 
            -
             | 
| 335 | 
            -
            -  | 
| 340 | 
            +
             | 
| 341 | 
            +
            - Create a Intuit developer account at [https://developer.intuit.com](https://developer.intuit.com)
         | 
| 342 | 
            +
            - Create an app in the intuit developer backend
         | 
| 343 | 
            +
              - Go to [myapps](https://developer.intuit.com/app/developer/myapps)
         | 
| 344 | 
            +
              - Create an app with both the `Accounting` & `Payments` selected.
         | 
| 345 | 
            +
             | 
| 346 | 
            +
            - Setup the app and gather credentials
         | 
| 347 | 
            +
              - Go to the [Development Dashboard](https://developer.intuit.com/app/developer/dashboard)
         | 
| 348 | 
            +
              - Click on your App name
         | 
| 349 | 
            +
              - Click "Keys & credentials" under Development Settings in left menu
         | 
| 350 | 
            +
              - Copy the 'Client ID' and the 'Client Secret'
         | 
| 351 | 
            +
              - Add a Redirect URI: `http://localhost:9393/oauth2-redirect` (or whatever PORT= is in your .env)
         | 
| 352 | 
            +
              - Create a new Sandbox Company by clicking on "View Sandbox companies"
         | 
| 353 | 
            +
                Don't use it for anything else besides testing this app.
         | 
| 354 | 
            +
              - Copy the 'Company ID' for use later
         | 
| 355 | 
            +
                1. Within 'Sandbox Company_US_1' click on the COG -> Additional info
         | 
| 356 | 
            +
                2. Copy the 'Company ID'
         | 
| 357 | 
            +
              
         | 
| 358 | 
            +
            - Setup qbo_api
         | 
| 359 | 
            +
              - `git clone git://github.com/minimul/qbo_api && cd qbo_api`
         | 
| 360 | 
            +
              - `bundle`
         | 
| 361 | 
            +
             | 
| 336 362 | 
             
            - Create a `.env` file
         | 
| 337 363 | 
             
              - `cp .env.example_app.oauth2 .env`
         | 
| 338 | 
            -
              -  | 
| 339 | 
            -
             | 
| 340 | 
            -
             | 
| 341 | 
            -
             | 
| 342 | 
            -
             | 
| 343 | 
            -
             | 
| 344 | 
            -
             | 
| 345 | 
            -
            -  | 
| 346 | 
            -
              Don't use it for anything else besides testing this app.
         | 
| 347 | 
            -
            -. Copy the 'Company ID' to your .env as QBO_API_COMPANY_ID
         | 
| 348 | 
            -
            - Start up the example app
         | 
| 364 | 
            +
              - Edit your .env and enter the following
         | 
| 365 | 
            +
                ```
         | 
| 366 | 
            +
                export QBO_API_CLIENT_ID=[YOUR CLIENT ID]
         | 
| 367 | 
            +
                export QBO_API_CLIENT_SECRET=[YOUR CLIENT SECRET]
         | 
| 368 | 
            +
                export QBO_API_COMPANY_ID=[YOUR COMPANY ID]
         | 
| 369 | 
            +
                ```
         | 
| 370 | 
            +
             | 
| 371 | 
            +
            - Start up the example app and test
         | 
| 349 372 | 
             
              - `ruby example/oauth2.rb`
         | 
| 350 | 
            -
            - Go to `http://localhost:9393/oauth2`
         | 
| 351 | 
            -
            - Use the `Connect to QuickBooks` button to connect to your QuickBooks sandbox, which you receive when signing up at [https://developer.intuit.com](https://developer.intuit.com).
         | 
| 352 | 
            -
            - After successfully connecting to your sandbox go to :
         | 
| 353 | 
            -
              - `http://localhost:9393/oauth2/customer/5`
         | 
| 373 | 
            +
              - Go to `http://localhost:9393/oauth2`
         | 
| 374 | 
            +
              - Use the `Connect to QuickBooks` button to connect to your QuickBooks sandbox, which you receive when signing up at [https://developer.intuit.com](https://developer.intuit.com).
         | 
| 375 | 
            +
              - After successfully connecting to your sandbox go to `http://localhost:9393/oauth2/customer/5`
         | 
| 354 376 | 
             
              - You should see "Dukes Basketball Camp" displayed
         | 
| 377 | 
            +
             | 
| 355 378 | 
             
            - Checkout [`example/oauth2.rb`](https://github.com/minimul/qbo_api/blob/master/example/oauth2.rb)
         | 
| 356 379 | 
             
              to see what is going on under the hood.
         | 
| 357 380 |  | 
    
        data/lib/qbo_api/connection.rb
    CHANGED
    
    | @@ -104,7 +104,7 @@ class QboApi | |
| 104 104 | 
             
                # now part of Faraday itself, and :authorization can be used to pass
         | 
| 105 105 | 
             
                # the Bearer token.
         | 
| 106 106 | 
             
                def add_authorization_middleware(conn)
         | 
| 107 | 
            -
                  conn.request :authorization,  | 
| 107 | 
            +
                  conn.request :authorization, 'Bearer', access_token
         | 
| 108 108 | 
             
                end
         | 
| 109 109 |  | 
| 110 110 | 
             
                def entity_name(entity)
         | 
    
        data/lib/qbo_api/error.rb
    CHANGED
    
    | @@ -13,11 +13,25 @@ class QboApi | |
| 13 13 | 
             
              class Error < StandardError
         | 
| 14 14 | 
             
                attr_reader :fault
         | 
| 15 15 |  | 
| 16 | 
            -
                def initialize(errors =  | 
| 17 | 
            -
                   | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 16 | 
            +
                def initialize(errors = {})
         | 
| 17 | 
            +
                  @fault = errors
         | 
| 18 | 
            +
                  super(errors[:error_body])
         | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                def fault_type
         | 
| 22 | 
            +
                  fault.dig(:error_body, 0, :fault_type)
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                def error_code
         | 
| 26 | 
            +
                  fault.dig(:error_body, 0, :error_code)
         | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                def error_message
         | 
| 30 | 
            +
                  fault.dig(:error_body, 0, :error_message)
         | 
| 31 | 
            +
                end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                def error_detail
         | 
| 34 | 
            +
                  fault.dig(:error_body, 0, :error_detail)
         | 
| 21 35 | 
             
                end
         | 
| 22 36 | 
             
              end
         | 
| 23 37 |  | 
    
        data/lib/qbo_api/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: qbo_api
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 3.0. | 
| 4 | 
            +
              version: 3.0.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Christian Pelczarski
         | 
| 8 | 
            -
            autorequire:
         | 
| 8 | 
            +
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2024-07-02 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -164,7 +164,7 @@ dependencies: | |
| 164 164 | 
             
                - - ">="
         | 
| 165 165 | 
             
                  - !ruby/object:Gem::Version
         | 
| 166 166 | 
             
                    version: '0'
         | 
| 167 | 
            -
            description:
         | 
| 167 | 
            +
            description: 
         | 
| 168 168 | 
             
            email:
         | 
| 169 169 | 
             
            - christian@minimul.com
         | 
| 170 170 | 
             
            executables: []
         | 
| @@ -173,6 +173,8 @@ extra_rdoc_files: [] | |
| 173 173 | 
             
            files:
         | 
| 174 174 | 
             
            - ".env.example_app.oauth2"
         | 
| 175 175 | 
             
            - ".env.test"
         | 
| 176 | 
            +
            - ".github/dependabot.yml"
         | 
| 177 | 
            +
            - ".github/workflows/ci.yaml"
         | 
| 176 178 | 
             
            - ".gitignore"
         | 
| 177 179 | 
             
            - ".travis.yml"
         | 
| 178 180 | 
             
            - Gemfile
         | 
| @@ -204,7 +206,7 @@ homepage: https://github.com/minimul/qbo_api | |
| 204 206 | 
             
            licenses:
         | 
| 205 207 | 
             
            - MIT
         | 
| 206 208 | 
             
            metadata: {}
         | 
| 207 | 
            -
            post_install_message:
         | 
| 209 | 
            +
            post_install_message: 
         | 
| 208 210 | 
             
            rdoc_options: []
         | 
| 209 211 | 
             
            require_paths:
         | 
| 210 212 | 
             
            - lib
         | 
| @@ -219,8 +221,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 219 221 | 
             
                - !ruby/object:Gem::Version
         | 
| 220 222 | 
             
                  version: '0'
         | 
| 221 223 | 
             
            requirements: []
         | 
| 222 | 
            -
            rubygems_version: 3. | 
| 223 | 
            -
            signing_key:
         | 
| 224 | 
            +
            rubygems_version: 3.3.26
         | 
| 225 | 
            +
            signing_key: 
         | 
| 224 226 | 
             
            specification_version: 4
         | 
| 225 227 | 
             
            summary: Ruby JSON-only client for QuickBooks Online API v3. Built on top of the Faraday
         | 
| 226 228 | 
             
              gem.
         |