ledger_sync 1.3.1 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +13 -2
- data/.rubocop.yml +14 -1
- data/.rubocop_todo.yml +0 -3
- data/.travis.yml +7 -2
- data/Dockerfile +2 -2
- data/Gemfile.lock +61 -55
- data/LICENSE.txt +5 -21
- data/README.md +9 -393
- data/bin/quickbooks_online_oauth_server.rb +102 -0
- data/docs/CNAME +1 -0
- data/docs/assets/css/brands.min.css +5 -0
- data/docs/assets/css/fontawesome.min.css +5 -0
- data/docs/assets/css/main.css +1924 -0
- data/docs/assets/css/monokai.css +441 -0
- data/docs/assets/js/main.js +214 -0
- data/docs/assets/js/plugins.js +22 -0
- data/docs/assets/js/prism.js +9 -0
- data/docs/assets/webfonts/fa-brands-400.eot +0 -0
- data/docs/assets/webfonts/fa-brands-400.svg +3452 -0
- data/docs/assets/webfonts/fa-brands-400.ttf +0 -0
- data/docs/assets/webfonts/fa-brands-400.woff +0 -0
- data/docs/assets/webfonts/fa-brands-400.woff2 +0 -0
- data/docs/blog/index.html +303 -0
- data/docs/guides/architecture/clients/index.html +479 -0
- data/docs/guides/architecture/index.html +456 -0
- data/docs/guides/architecture/operations/index.html +486 -0
- data/docs/guides/architecture/resources/index.html +482 -0
- data/docs/guides/architecture/results/index.html +447 -0
- data/docs/guides/architecture/searchers/index.html +467 -0
- data/docs/guides/architecture/serialization/index.html +497 -0
- data/docs/guides/community/index.html +433 -0
- data/docs/guides/contribute/console/index.html +445 -0
- data/docs/guides/contribute/deployment/index.html +455 -0
- data/docs/guides/contribute/documentation/index.html +471 -0
- data/docs/guides/contribute/index.html +455 -0
- data/docs/guides/contribute/qa/index.html +457 -0
- data/docs/guides/contribute/testing/index.html +445 -0
- data/docs/guides/customization/custom_resources/index.html +482 -0
- data/docs/guides/customization/custom_serializers/index.html +481 -0
- data/docs/guides/customization/index.html +452 -0
- data/docs/guides/customization/resource_converters/index.html +512 -0
- data/docs/guides/getting-started/get-help/index.html +448 -0
- data/docs/guides/getting-started/index.html +442 -0
- data/docs/guides/getting-started/installation/index.html +454 -0
- data/docs/guides/getting-started/quick-start/index.html +552 -0
- data/docs/guides/index.html +449 -0
- data/docs/guides/ledgers/index.html +450 -0
- data/docs/guides/ledgers/netsuite/index.html +445 -0
- data/docs/guides/ledgers/netsuite_soap/index.html +445 -0
- data/docs/guides/ledgers/quickbooks_online/index.html +445 -0
- data/docs/guides/ledgers/stripe/index.html +445 -0
- data/docs/guides/modern-treasury/index.html +432 -0
- data/docs/guides/tips_and_more/index.html +492 -0
- data/docs/images/1.jpg +0 -0
- data/docs/images/10.jpg +0 -0
- data/docs/images/2.jpg +0 -0
- data/docs/images/3.jpg +0 -0
- data/docs/images/4.jpg +0 -0
- data/docs/images/5.jpg +0 -0
- data/docs/images/6.jpg +0 -0
- data/docs/images/7.jpg +0 -0
- data/docs/images/8.jpg +0 -0
- data/docs/images/9.jpg +0 -0
- data/docs/images/logo.svg +8 -0
- data/docs/index.html +400 -0
- data/docs/overview/index.html +430 -0
- data/docs/posts/introducing-docs/index.html +291 -0
- data/docs/posts/netsuite-authentication/index.html +645 -0
- data/docs/reference/architecture/clients/index.html +353 -0
- data/docs/reference/architecture/index.html +332 -0
- data/docs/reference/architecture/operations/index.html +323 -0
- data/docs/reference/architecture/resources/index.html +356 -0
- data/docs/reference/architecture/results/index.html +323 -0
- data/docs/reference/architecture/searchers/index.html +323 -0
- data/docs/reference/architecture/serialization/index.html +323 -0
- data/docs/reference/index.html +302 -0
- data/docs/reference/netsuite/authentication/index.html +413 -0
- data/docs/reference/netsuite/authentication/token_based_authentication/index.html +507 -0
- data/docs/reference/netsuite/index.html +409 -0
- data/docs/reference/netsuite/resources/account/index.html +505 -0
- data/docs/reference/netsuite/resources/check/index.html +513 -0
- data/docs/reference/netsuite/resources/check_line_item/index.html +481 -0
- data/docs/reference/netsuite/resources/currency/index.html +497 -0
- data/docs/reference/netsuite/resources/customer/index.html +509 -0
- data/docs/reference/netsuite/resources/customer_deposit/index.html +501 -0
- data/docs/reference/netsuite/resources/department/index.html +505 -0
- data/docs/reference/netsuite/resources/deposit/index.html +489 -0
- data/docs/reference/netsuite/resources/deposit_line_item/index.html +481 -0
- data/docs/reference/netsuite/resources/index.html +457 -0
- data/docs/reference/netsuite/resources/invoice/index.html +489 -0
- data/docs/reference/netsuite/resources/invoice_line_item/index.html +477 -0
- data/docs/reference/netsuite/resources/item/index.html +465 -0
- data/docs/reference/netsuite/resources/journal_entry/index.html +509 -0
- data/docs/reference/netsuite/resources/journal_entry_line_item/index.html +485 -0
- data/docs/reference/netsuite/resources/ledger_class/index.html +505 -0
- data/docs/reference/netsuite/resources/location/index.html +489 -0
- data/docs/reference/netsuite/resources/resource/index.html +461 -0
- data/docs/reference/netsuite/resources/subsidiary/index.html +469 -0
- data/docs/reference/netsuite/resources/vendor/index.html +513 -0
- data/docs/reference/netsuite_soap/index.html +324 -0
- data/docs/reference/netsuite_soap/resources/customer/index.html +385 -0
- data/docs/reference/netsuite_soap/resources/index.html +337 -0
- data/docs/reference/netsuite_soap/resources/resource/index.html +357 -0
- data/docs/reference/netsuite_soap/resources/subsidiary/index.html +377 -0
- data/docs/reference/quickbooks_online/authentication/index.html +463 -0
- data/docs/reference/quickbooks_online/errors/index.html +416 -0
- data/docs/reference/quickbooks_online/index.html +414 -0
- data/docs/reference/quickbooks_online/resources/account/index.html +551 -0
- data/docs/reference/quickbooks_online/resources/bill/index.html +555 -0
- data/docs/reference/quickbooks_online/resources/bill_line_item/index.html +517 -0
- data/docs/reference/quickbooks_online/resources/bill_payment/index.html +571 -0
- data/docs/reference/quickbooks_online/resources/bill_payment_line_item/index.html +509 -0
- data/docs/reference/quickbooks_online/resources/currency/index.html +513 -0
- data/docs/reference/quickbooks_online/resources/customer/index.html +535 -0
- data/docs/reference/quickbooks_online/resources/department/index.html +539 -0
- data/docs/reference/quickbooks_online/resources/deposit/index.html +547 -0
- data/docs/reference/quickbooks_online/resources/deposit_line_item/index.html +521 -0
- data/docs/reference/quickbooks_online/resources/expense/index.html +559 -0
- data/docs/reference/quickbooks_online/resources/expense_line_item/index.html +517 -0
- data/docs/reference/quickbooks_online/resources/index.html +505 -0
- data/docs/reference/quickbooks_online/resources/invoice/index.html +547 -0
- data/docs/reference/quickbooks_online/resources/invoice_sales_line_item/index.html +517 -0
- data/docs/reference/quickbooks_online/resources/item/index.html +505 -0
- data/docs/reference/quickbooks_online/resources/journal_entry/index.html +539 -0
- data/docs/reference/quickbooks_online/resources/journal_entry_line_item/index.html +525 -0
- data/docs/reference/quickbooks_online/resources/ledger_class/index.html +539 -0
- data/docs/reference/quickbooks_online/resources/payment/index.html +559 -0
- data/docs/reference/quickbooks_online/resources/payment_line_item/index.html +509 -0
- data/docs/reference/quickbooks_online/resources/preferences/index.html +547 -0
- data/docs/reference/quickbooks_online/resources/primary_email_addr/index.html +505 -0
- data/docs/reference/quickbooks_online/resources/primary_phone/index.html +505 -0
- data/docs/reference/quickbooks_online/resources/resource/index.html +501 -0
- data/docs/reference/quickbooks_online/resources/subsidiary/index.html +509 -0
- data/docs/reference/quickbooks_online/resources/transfer/index.html +543 -0
- data/docs/reference/quickbooks_online/resources/vendor/index.html +547 -0
- data/docs/reference/quickbooks_online/webhooks/index.html +448 -0
- data/docs/reference/stripe/index.html +314 -0
- data/docs/reference/stripe/resources/customer/index.html +387 -0
- data/docs/reference/stripe/resources/index.html +330 -0
- data/docs/reference/stripe/resources/resource/index.html +351 -0
- data/docs/style-guide/index.html +396 -0
- data/documentation/build.sh +8 -0
- data/documentation/generate.rb +32 -0
- data/documentation/generators/generator.rb +80 -0
- data/documentation/generators/guides/generator.rb +36 -0
- data/documentation/generators/reference/generator.rb +76 -0
- data/documentation/generators/reference/ledger/generator.rb +74 -0
- data/documentation/generators/template.rb +22 -0
- data/documentation/helper_methods.rb +17 -0
- data/documentation/site/CNAME +1 -0
- data/documentation/site/Gemfile +11 -0
- data/documentation/site/Gemfile.lock +69 -0
- data/documentation/site/LICENSE.md +40 -0
- data/documentation/site/README.md +8 -0
- data/documentation/site/_config.yml +113 -0
- data/documentation/site/_data/guides_sections.yml +10 -0
- data/documentation/site/_data/reference_sections.yml +5 -0
- data/documentation/site/_includes/action_link.html +8 -0
- data/documentation/site/_includes/alerts/base.html +3 -0
- data/documentation/site/_includes/alerts/danger.html +1 -0
- data/documentation/site/_includes/alerts/info.html +1 -0
- data/documentation/site/_includes/alerts/success.html +1 -0
- data/documentation/site/_includes/alerts/warning.html +1 -0
- data/documentation/site/_includes/cta_buttons.html +4 -0
- data/documentation/site/_includes/example.md +8 -0
- data/documentation/site/_includes/footer.html +25 -0
- data/documentation/site/_includes/getting_help.md +8 -0
- data/documentation/site/_includes/guides_menu.html +29 -0
- data/documentation/site/_includes/guides_submenu.html +7 -0
- data/documentation/site/_includes/header.html +35 -0
- data/documentation/site/_includes/installation_instructions.md +17 -0
- data/documentation/site/_includes/ledgers/Stripe_summary.md +1 -0
- data/documentation/site/_includes/ledgers/netsuite_soap_summary.md +1 -0
- data/documentation/site/_includes/ledgers/netsuite_summary.md +1 -0
- data/documentation/site/_includes/ledgers/netsuite_summary_shared.md +1 -0
- data/documentation/site/_includes/ledgers/quickbooks_online_summary.md +1 -0
- data/documentation/site/_includes/reference/netsuite/authentication/_token_based_authentication.md +99 -0
- data/documentation/site/_includes/reference/netsuite/authentication/index.md +15 -0
- data/documentation/site/_includes/reference/netsuite/authentication/token_based_authentication.md +6 -0
- data/documentation/site/_includes/reference/netsuite/index.md +25 -0
- data/documentation/site/_includes/reference/netsuite_soap/index.md +11 -0
- data/documentation/site/_includes/reference/quickbooks_online/authentication/index.md +55 -0
- data/documentation/site/_includes/reference/quickbooks_online/errors/index.md +9 -0
- data/documentation/site/_includes/reference/quickbooks_online/index.md +6 -0
- data/documentation/site/_includes/reference/quickbooks_online/webhooks/index.md +42 -0
- data/documentation/site/_includes/reference/stripe/index.md +6 -0
- data/documentation/site/_includes/section_content.html +34 -0
- data/documentation/site/_includes/section_cta.html +28 -0
- data/documentation/site/_includes/section_grid.html +60 -0
- data/documentation/site/_includes/section_guides.html +35 -0
- data/documentation/site/_includes/section_hero.html +28 -0
- data/documentation/site/_includes/submenu.html +8 -0
- data/documentation/site/_layouts/advanced.html +9 -0
- data/documentation/site/_layouts/base.html +34 -0
- data/documentation/site/_layouts/blog.html +51 -0
- data/documentation/site/_layouts/body.html +11 -0
- data/documentation/site/_layouts/guides.html +46 -0
- data/documentation/site/_layouts/page.html +26 -0
- data/documentation/site/_layouts/post.html +52 -0
- data/documentation/site/_layouts/reference.html +46 -0
- data/documentation/site/_layouts/reference_netsuite.html +46 -0
- data/documentation/site/_layouts/reference_netsuite_soap.html +46 -0
- data/documentation/site/_layouts/reference_quickbooks_online.html +46 -0
- data/documentation/site/_layouts/reference_stripe.html +46 -0
- data/documentation/site/_plugins/filters.rb +122 -0
- data/documentation/site/_plugins/hooks.rb +9 -0
- data/documentation/site/_posts/2020-06-01-introducing-docs.md +17 -0
- data/documentation/site/_posts/2020-06-10-netsuite-authentication.md +382 -0
- data/documentation/site/_sass/imports/_animations.scss +19 -0
- data/documentation/site/_sass/imports/_footer.scss +94 -0
- data/documentation/site/_sass/imports/_functions.scss +69 -0
- data/documentation/site/_sass/imports/_general.scss +687 -0
- data/documentation/site/_sass/imports/_guides.scss +300 -0
- data/documentation/site/_sass/imports/_header.scss +358 -0
- data/documentation/site/_sass/imports/_icons.scss +90 -0
- data/documentation/site/_sass/imports/_post-navigation.scss +67 -0
- data/documentation/site/_sass/imports/_posts-pages.scss +165 -0
- data/documentation/site/_sass/imports/_prism.scss +174 -0
- data/documentation/site/_sass/imports/_reset.scss +210 -0
- data/documentation/site/_sass/imports/_sections.scss +370 -0
- data/documentation/site/_sass/imports/_structure.scss +44 -0
- data/documentation/site/_templates/_layouts/reference_ledger.html.erb +46 -0
- data/documentation/site/_templates/guides/ledger.md.erb +9 -0
- data/documentation/site/_templates/reference/resources/index.md.erb +9 -0
- data/documentation/site/_templates/reference/resources/resource.md.erb +27 -0
- data/documentation/site/assets/css/brands.min.css +5 -0
- data/documentation/site/assets/css/fontawesome.min.css +5 -0
- data/documentation/site/assets/css/main.scss +45 -0
- data/documentation/site/assets/css/monokai.css +441 -0
- data/documentation/site/assets/js/main.js +214 -0
- data/documentation/site/assets/js/plugins.js +22 -0
- data/documentation/site/assets/js/prism.js +9 -0
- data/documentation/site/assets/webfonts/fa-brands-400.eot +0 -0
- data/documentation/site/assets/webfonts/fa-brands-400.svg +3452 -0
- data/documentation/site/assets/webfonts/fa-brands-400.ttf +0 -0
- data/documentation/site/assets/webfonts/fa-brands-400.woff +0 -0
- data/documentation/site/assets/webfonts/fa-brands-400.woff2 +0 -0
- data/documentation/site/blog/index.md +6 -0
- data/documentation/site/guides/architecture/clients.md +35 -0
- data/documentation/site/guides/architecture/index.md +14 -0
- data/documentation/site/guides/architecture/operations.md +45 -0
- data/documentation/site/guides/architecture/resources.md +40 -0
- data/documentation/site/guides/architecture/results.md +6 -0
- data/documentation/site/guides/architecture/searchers.md +28 -0
- data/documentation/site/guides/architecture/serialization.md +59 -0
- data/documentation/site/guides/community/index.md +8 -0
- data/documentation/site/guides/contribute/console.md +6 -0
- data/documentation/site/guides/contribute/deployment.md +17 -0
- data/documentation/site/guides/contribute/documentation.md +37 -0
- data/documentation/site/guides/contribute/index.md +18 -0
- data/documentation/site/guides/contribute/qa.md +16 -0
- data/documentation/site/guides/contribute/testing.md +6 -0
- data/documentation/site/guides/customization/custom_resources.md +50 -0
- data/documentation/site/guides/customization/custom_serializers.md +47 -0
- data/documentation/site/guides/customization/index.md +15 -0
- data/documentation/site/guides/customization/resource_converters.md +79 -0
- data/documentation/site/guides/getting-started/get-help.md +7 -0
- data/documentation/site/guides/getting-started/index.md +8 -0
- data/documentation/site/guides/getting-started/installation.md +7 -0
- data/documentation/site/guides/getting-started/quick-start.md +123 -0
- data/documentation/site/guides/index.md +16 -0
- data/documentation/site/guides/ledgers/index.md +12 -0
- data/documentation/site/guides/ledgers/netsuite.md +9 -0
- data/documentation/site/guides/ledgers/netsuite_soap.md +9 -0
- data/documentation/site/guides/ledgers/quickbooks_online.md +9 -0
- data/documentation/site/guides/ledgers/stripe.md +9 -0
- data/documentation/site/guides/modern-treasury/index.md +14 -0
- data/documentation/site/guides/tips_and_more/index.md +76 -0
- data/documentation/site/images/1.jpg +0 -0
- data/documentation/site/images/10.jpg +0 -0
- data/documentation/site/images/2.jpg +0 -0
- data/documentation/site/images/3.jpg +0 -0
- data/documentation/site/images/4.jpg +0 -0
- data/documentation/site/images/5.jpg +0 -0
- data/documentation/site/images/6.jpg +0 -0
- data/documentation/site/images/7.jpg +0 -0
- data/documentation/site/images/8.jpg +0 -0
- data/documentation/site/images/9.jpg +0 -0
- data/documentation/site/images/logo.svg +8 -0
- data/documentation/site/index.md +99 -0
- data/documentation/site/overview.md +21 -0
- data/documentation/site/reference/architecture/clients.md +33 -0
- data/documentation/site/reference/architecture/index.md +14 -0
- data/documentation/site/reference/architecture/operations.md +6 -0
- data/documentation/site/reference/architecture/resources.md +38 -0
- data/documentation/site/reference/architecture/results.md +6 -0
- data/documentation/site/reference/architecture/searchers.md +6 -0
- data/documentation/site/reference/architecture/serialization.md +6 -0
- data/documentation/site/reference/index.md +6 -0
- data/documentation/site/reference/netsuite/authentication/_token_based_authentication.md +99 -0
- data/documentation/site/reference/netsuite/authentication/index.md +15 -0
- data/documentation/site/reference/netsuite/authentication/token_based_authentication.md +6 -0
- data/documentation/site/reference/netsuite/index.md +25 -0
- data/documentation/site/reference/netsuite/resources/account.md +38 -0
- data/documentation/site/reference/netsuite/resources/check.md +49 -0
- data/documentation/site/reference/netsuite/resources/check_line_item.md +23 -0
- data/documentation/site/reference/netsuite/resources/currency.md +45 -0
- data/documentation/site/reference/netsuite/resources/customer.md +48 -0
- data/documentation/site/reference/netsuite/resources/customer_deposit.md +46 -0
- data/documentation/site/reference/netsuite/resources/department.md +47 -0
- data/documentation/site/reference/netsuite/resources/deposit.md +25 -0
- data/documentation/site/reference/netsuite/resources/deposit_line_item.md +23 -0
- data/documentation/site/reference/netsuite/resources/index.md +25 -0
- data/documentation/site/reference/netsuite/resources/invoice.md +25 -0
- data/documentation/site/reference/netsuite/resources/invoice_line_item.md +22 -0
- data/documentation/site/reference/netsuite/resources/item.md +19 -0
- data/documentation/site/reference/netsuite/resources/journal_entry.md +48 -0
- data/documentation/site/reference/netsuite/resources/journal_entry_line_item.md +24 -0
- data/documentation/site/reference/netsuite/resources/ledger_class.md +47 -0
- data/documentation/site/reference/netsuite/resources/location.md +43 -0
- data/documentation/site/reference/netsuite/resources/resource.md +18 -0
- data/documentation/site/reference/netsuite/resources/subsidiary.md +20 -0
- data/documentation/site/reference/netsuite/resources/vendor.md +49 -0
- data/documentation/site/reference/netsuite_soap/index.md +11 -0
- data/documentation/site/reference/netsuite_soap/resources/customer.md +34 -0
- data/documentation/site/reference/netsuite_soap/resources/index.md +9 -0
- data/documentation/site/reference/netsuite_soap/resources/resource.md +18 -0
- data/documentation/site/reference/netsuite_soap/resources/subsidiary.md +32 -0
- data/documentation/site/reference/quickbooks_online/authentication/index.md +55 -0
- data/documentation/site/reference/quickbooks_online/errors/index.md +9 -0
- data/documentation/site/reference/quickbooks_online/index.md +6 -0
- data/documentation/site/reference/quickbooks_online/resources/account.md +44 -0
- data/documentation/site/reference/quickbooks_online/resources/bill.md +45 -0
- data/documentation/site/reference/quickbooks_online/resources/bill_line_item.md +22 -0
- data/documentation/site/reference/quickbooks_online/resources/bill_payment.md +49 -0
- data/documentation/site/reference/quickbooks_online/resources/bill_payment_line_item.md +20 -0
- data/documentation/site/reference/quickbooks_online/resources/currency.md +21 -0
- data/documentation/site/reference/quickbooks_online/resources/customer.md +40 -0
- data/documentation/site/reference/quickbooks_online/resources/department.md +41 -0
- data/documentation/site/reference/quickbooks_online/resources/deposit.md +43 -0
- data/documentation/site/reference/quickbooks_online/resources/deposit_line_item.md +23 -0
- data/documentation/site/reference/quickbooks_online/resources/expense.md +46 -0
- data/documentation/site/reference/quickbooks_online/resources/expense_line_item.md +22 -0
- data/documentation/site/reference/quickbooks_online/resources/index.md +33 -0
- data/documentation/site/reference/quickbooks_online/resources/invoice.md +43 -0
- data/documentation/site/reference/quickbooks_online/resources/invoice_sales_line_item.md +22 -0
- data/documentation/site/reference/quickbooks_online/resources/item.md +19 -0
- data/documentation/site/reference/quickbooks_online/resources/journal_entry.md +41 -0
- data/documentation/site/reference/quickbooks_online/resources/journal_entry_line_item.md +24 -0
- data/documentation/site/reference/quickbooks_online/resources/ledger_class.md +41 -0
- data/documentation/site/reference/quickbooks_online/resources/payment.md +46 -0
- data/documentation/site/reference/quickbooks_online/resources/payment_line_item.md +20 -0
- data/documentation/site/reference/quickbooks_online/resources/preferences.md +34 -0
- data/documentation/site/reference/quickbooks_online/resources/primary_email_addr.md +19 -0
- data/documentation/site/reference/quickbooks_online/resources/primary_phone.md +19 -0
- data/documentation/site/reference/quickbooks_online/resources/resource.md +18 -0
- data/documentation/site/reference/quickbooks_online/resources/subsidiary.md +20 -0
- data/documentation/site/reference/quickbooks_online/resources/transfer.md +42 -0
- data/documentation/site/reference/quickbooks_online/resources/vendor.md +43 -0
- data/documentation/site/reference/quickbooks_online/webhooks/index.md +42 -0
- data/documentation/site/reference/stripe/index.md +6 -0
- data/documentation/site/reference/stripe/resources/customer.md +45 -0
- data/documentation/site/reference/stripe/resources/index.md +8 -0
- data/documentation/site/reference/stripe/resources/resource.md +18 -0
- data/documentation/site/style-guide.md +137 -0
- data/ledger_sync.gemspec +3 -2
- data/lib/ledger_sync.rb +46 -58
- data/lib/ledger_sync/core_ext/resonad.rb +2 -3
- data/lib/ledger_sync/deserializer.rb +108 -0
- data/lib/ledger_sync/error.rb +48 -0
- data/lib/ledger_sync/error/ledger_errors.rb +72 -0
- data/lib/ledger_sync/error/operation_errors.rb +0 -10
- data/lib/ledger_sync/error/resource_errors.rb +48 -19
- data/lib/ledger_sync/ledger_configuration.rb +61 -0
- data/lib/ledger_sync/ledger_configuration_store.rb +56 -0
- data/lib/ledger_sync/ledgers/client.rb +112 -0
- data/lib/ledger_sync/ledgers/contract.rb +16 -0
- data/lib/ledger_sync/ledgers/dashboard_url_helper.rb +23 -0
- data/lib/ledger_sync/ledgers/mixins/infer_client_mixin.rb +28 -0
- data/lib/ledger_sync/ledgers/mixins/infer_resource_class_mixin.rb +25 -0
- data/lib/ledger_sync/ledgers/mixins/infer_serializer_mixin.rb +52 -0
- data/lib/ledger_sync/ledgers/mixins/infer_validation_contract_mixin.rb +27 -0
- data/lib/ledger_sync/ledgers/mixins/offset_and_limit_pagination_searcher_mixin.rb +37 -0
- data/lib/ledger_sync/ledgers/mixins/serialization_mixin.rb +41 -0
- data/lib/ledger_sync/ledgers/netsuite/account/deserializer.rb +23 -0
- data/lib/ledger_sync/ledgers/netsuite/account/operations/create.rb +28 -0
- data/lib/ledger_sync/ledgers/netsuite/account/operations/find.rb +28 -0
- data/lib/ledger_sync/ledgers/netsuite/account/searcher.rb +12 -0
- data/lib/ledger_sync/ledgers/netsuite/account/searcher_deserializer.rb +29 -0
- data/lib/ledger_sync/ledgers/netsuite/account/serializer.rb +21 -0
- data/lib/ledger_sync/ledgers/netsuite/check/deserializer.rb +29 -0
- data/lib/ledger_sync/ledgers/netsuite/check/operations/create.rb +27 -0
- data/lib/ledger_sync/ledgers/netsuite/check/operations/delete.rb +27 -0
- data/lib/ledger_sync/ledgers/netsuite/check/operations/find.rb +27 -0
- data/lib/ledger_sync/ledgers/netsuite/check/operations/update.rb +27 -0
- data/lib/ledger_sync/ledgers/netsuite/check/searcher.rb +15 -0
- data/lib/ledger_sync/ledgers/netsuite/check/searcher_deserializer.rb +16 -0
- data/lib/ledger_sync/ledgers/netsuite/check/serializer.rb +50 -0
- data/lib/ledger_sync/ledgers/netsuite/check_line_item/deserializer.rb +17 -0
- data/lib/ledger_sync/ledgers/netsuite/check_line_item/serializer.rb +25 -0
- data/lib/ledger_sync/ledgers/netsuite/client.rb +184 -0
- data/lib/ledger_sync/ledgers/netsuite/config.rb +5 -0
- data/lib/ledger_sync/ledgers/netsuite/currency/deserializer.rb +23 -0
- data/lib/ledger_sync/ledgers/netsuite/currency/operations/create.rb +25 -0
- data/lib/ledger_sync/ledgers/netsuite/currency/operations/delete.rb +23 -0
- data/lib/ledger_sync/ledgers/netsuite/currency/operations/find.rb +23 -0
- data/lib/ledger_sync/ledgers/netsuite/currency/operations/update.rb +23 -0
- data/lib/ledger_sync/ledgers/netsuite/currency/serializer.rb +21 -0
- data/lib/ledger_sync/ledgers/netsuite/customer/deserializer.rb +22 -0
- data/lib/ledger_sync/ledgers/netsuite/customer/operations/create.rb +26 -0
- data/lib/ledger_sync/ledgers/netsuite/customer/operations/delete.rb +26 -0
- data/lib/ledger_sync/ledgers/netsuite/customer/operations/find.rb +26 -0
- data/lib/ledger_sync/ledgers/netsuite/customer/operations/update.rb +26 -0
- data/lib/ledger_sync/ledgers/netsuite/customer/searcher.rb +12 -0
- data/lib/ledger_sync/ledgers/netsuite/customer/searcher_deserializer.rb +18 -0
- data/lib/ledger_sync/ledgers/netsuite/customer/serializer.rb +29 -0
- data/lib/ledger_sync/ledgers/netsuite/customer_deposit/deserializer.rb +20 -0
- data/lib/ledger_sync/ledgers/netsuite/customer_deposit/operations/create.rb +24 -0
- data/lib/ledger_sync/ledgers/netsuite/customer_deposit/operations/delete.rb +24 -0
- data/lib/ledger_sync/ledgers/netsuite/customer_deposit/operations/find.rb +24 -0
- data/lib/ledger_sync/ledgers/netsuite/customer_deposit/operations/update.rb +24 -0
- data/lib/ledger_sync/ledgers/netsuite/customer_deposit/searcher.rb +12 -0
- data/lib/ledger_sync/ledgers/netsuite/customer_deposit/searcher_deserializer.rb +16 -0
- data/lib/ledger_sync/ledgers/netsuite/customer_deposit/serializer.rb +25 -0
- data/lib/ledger_sync/ledgers/netsuite/dashboard_url_helper.rb +28 -0
- data/lib/ledger_sync/ledgers/netsuite/department/deserializer.rb +15 -0
- data/lib/ledger_sync/ledgers/netsuite/department/operations/create.rb +25 -0
- data/lib/ledger_sync/ledgers/netsuite/department/operations/delete.rb +25 -0
- data/lib/ledger_sync/ledgers/netsuite/department/operations/find.rb +25 -0
- data/lib/ledger_sync/ledgers/netsuite/department/operations/update.rb +25 -0
- data/lib/ledger_sync/ledgers/netsuite/department/searcher.rb +12 -0
- data/lib/ledger_sync/ledgers/netsuite/department/searcher_deserializer.rb +19 -0
- data/lib/ledger_sync/ledgers/netsuite/department/serializer.rb +13 -0
- data/lib/ledger_sync/ledgers/netsuite/deserializer.rb +18 -0
- data/lib/ledger_sync/ledgers/netsuite/error.rb +18 -0
- data/lib/ledger_sync/ledgers/netsuite/journal_entry/deserializer.rb +31 -0
- data/lib/ledger_sync/ledgers/netsuite/journal_entry/operations/create.rb +26 -0
- data/lib/ledger_sync/ledgers/netsuite/journal_entry/operations/delete.rb +26 -0
- data/lib/ledger_sync/ledgers/netsuite/journal_entry/operations/find.rb +26 -0
- data/lib/ledger_sync/ledgers/netsuite/journal_entry/operations/update.rb +30 -0
- data/lib/ledger_sync/ledgers/netsuite/journal_entry/serializer.rb +36 -0
- data/lib/ledger_sync/ledgers/netsuite/journal_entry_line_item/deserializer.rb +23 -0
- data/lib/ledger_sync/ledgers/netsuite/journal_entry_line_item/serializer.rb +21 -0
- data/lib/ledger_sync/ledgers/netsuite/ledger_class/deserializer.rb +15 -0
- data/lib/ledger_sync/ledgers/netsuite/ledger_class/operations/create.rb +25 -0
- data/lib/ledger_sync/ledgers/netsuite/ledger_class/operations/delete.rb +25 -0
- data/lib/ledger_sync/ledgers/netsuite/ledger_class/operations/find.rb +25 -0
- data/lib/ledger_sync/ledgers/netsuite/ledger_class/operations/update.rb +25 -0
- data/lib/ledger_sync/ledgers/netsuite/ledger_class/searcher.rb +12 -0
- data/lib/ledger_sync/ledgers/netsuite/ledger_class/searcher_deserializer.rb +19 -0
- data/lib/ledger_sync/ledgers/netsuite/ledger_class/serializer.rb +13 -0
- data/lib/ledger_sync/ledgers/netsuite/location/deserializer.rb +15 -0
- data/lib/ledger_sync/ledgers/netsuite/location/operations/create.rb +21 -0
- data/lib/ledger_sync/ledgers/netsuite/location/operations/delete.rb +21 -0
- data/lib/ledger_sync/ledgers/netsuite/location/operations/find.rb +21 -0
- data/lib/ledger_sync/ledgers/netsuite/location/operations/update.rb +21 -0
- data/lib/ledger_sync/ledgers/netsuite/location/searcher.rb +12 -0
- data/lib/ledger_sync/ledgers/netsuite/location/serializer.rb +13 -0
- data/lib/ledger_sync/ledgers/netsuite/operation.rb +40 -0
- data/lib/ledger_sync/ledgers/netsuite/operation/create.rb +58 -0
- data/lib/ledger_sync/ledgers/netsuite/operation/delete.rb +49 -0
- data/lib/ledger_sync/ledgers/netsuite/operation/find.rb +60 -0
- data/lib/ledger_sync/ledgers/netsuite/operation/update.rb +61 -0
- data/lib/ledger_sync/ledgers/netsuite/record/http_method.rb +33 -0
- data/lib/ledger_sync/ledgers/netsuite/record/metadata.rb +105 -0
- data/lib/ledger_sync/ledgers/netsuite/record/parameter.rb +20 -0
- data/lib/ledger_sync/ledgers/netsuite/record/property.rb +22 -0
- data/lib/ledger_sync/ledgers/netsuite/reference/serializer.rb +13 -0
- data/lib/ledger_sync/ledgers/netsuite/resource.rb +10 -0
- data/lib/ledger_sync/ledgers/netsuite/resources/account.rb +44 -0
- data/lib/ledger_sync/ledgers/netsuite/resources/check.rb +23 -0
- data/lib/ledger_sync/ledgers/netsuite/resources/check_line_item.rb +15 -0
- data/lib/ledger_sync/ledgers/netsuite/resources/currency.rb +13 -0
- data/lib/ledger_sync/ledgers/netsuite/resources/customer.rb +19 -0
- data/lib/ledger_sync/ledgers/netsuite/resources/customer_deposit.rb +15 -0
- data/lib/ledger_sync/ledgers/netsuite/resources/department.rb +16 -0
- data/lib/ledger_sync/ledgers/netsuite/resources/deposit.rb +28 -0
- data/lib/ledger_sync/ledgers/netsuite/resources/deposit_line_item.rb +25 -0
- data/lib/ledger_sync/ledgers/netsuite/resources/invoice.rb +28 -0
- data/lib/ledger_sync/ledgers/netsuite/resources/invoice_line_item.rb +21 -0
- data/lib/ledger_sync/ledgers/netsuite/resources/item.rb +11 -0
- data/lib/ledger_sync/ledgers/netsuite/resources/journal_entry.rb +26 -0
- data/lib/ledger_sync/ledgers/netsuite/resources/journal_entry_line_item.rb +24 -0
- data/lib/ledger_sync/ledgers/netsuite/resources/ledger_class.rb +16 -0
- data/lib/ledger_sync/ledgers/netsuite/resources/location.rb +11 -0
- data/lib/ledger_sync/ledgers/netsuite/resources/subsidiary.rb +12 -0
- data/lib/ledger_sync/ledgers/netsuite/resources/vendor.rb +23 -0
- data/lib/ledger_sync/ledgers/netsuite/searcher.rb +64 -0
- data/lib/ledger_sync/ledgers/netsuite/serializer.rb +13 -0
- data/lib/ledger_sync/ledgers/netsuite/subsidiary/deserializer.rb +17 -0
- data/lib/ledger_sync/ledgers/netsuite/subsidiary/searcher.rb +12 -0
- data/lib/ledger_sync/ledgers/netsuite/subsidiary/searcher_deserializer.rb +15 -0
- data/lib/ledger_sync/ledgers/netsuite/subsidiary/serializer.rb +15 -0
- data/lib/ledger_sync/ledgers/netsuite/token.rb +158 -0
- data/lib/ledger_sync/ledgers/netsuite/type/deserializer_active_type.rb +32 -0
- data/lib/ledger_sync/ledgers/netsuite/type/deserializer_customer_type.rb +33 -0
- data/lib/ledger_sync/ledgers/netsuite/type/deserializer_entity_type.rb +30 -0
- data/lib/ledger_sync/ledgers/netsuite/type/deserializer_subsidiary_type.rb +33 -0
- data/lib/ledger_sync/ledgers/netsuite/vendor/deserializer.rb +30 -0
- data/lib/ledger_sync/ledgers/netsuite/vendor/operations/create.rb +27 -0
- data/lib/ledger_sync/ledgers/netsuite/vendor/operations/delete.rb +27 -0
- data/lib/ledger_sync/ledgers/netsuite/vendor/operations/find.rb +27 -0
- data/lib/ledger_sync/ledgers/netsuite/vendor/operations/update.rb +27 -0
- data/lib/ledger_sync/ledgers/netsuite/vendor/searcher.rb +12 -0
- data/lib/ledger_sync/ledgers/netsuite/vendor/searcher_deserializer.rb +21 -0
- data/lib/ledger_sync/ledgers/netsuite/vendor/serializer.rb +30 -0
- data/lib/ledger_sync/ledgers/netsuite_soap/client.rb +92 -0
- data/lib/ledger_sync/ledgers/netsuite_soap/config.rb +5 -0
- data/lib/ledger_sync/ledgers/netsuite_soap/customer/operations/create.rb +64 -0
- data/lib/ledger_sync/ledgers/netsuite_soap/customer/operations/find.rb +49 -0
- data/lib/ledger_sync/ledgers/netsuite_soap/operation.rb +40 -0
- data/lib/ledger_sync/ledgers/netsuite_soap/operation/create.rb +29 -0
- data/lib/ledger_sync/ledgers/netsuite_soap/operation/find.rb +15 -0
- data/lib/ledger_sync/ledgers/netsuite_soap/resource.rb +10 -0
- data/lib/ledger_sync/ledgers/netsuite_soap/resources/customer.rb +29 -0
- data/lib/ledger_sync/ledgers/netsuite_soap/resources/subsidiary.rb +12 -0
- data/lib/ledger_sync/ledgers/netsuite_soap/subsidiary/operations/create.rb +42 -0
- data/lib/ledger_sync/ledgers/netsuite_soap/subsidiary/operations/find.rb +38 -0
- data/lib/ledger_sync/ledgers/operation.rb +181 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/account/deserializer.rb +43 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/account/operations/create.rb +26 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/account/operations/find.rb +26 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/account/operations/update.rb +30 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/account/searcher.rb +15 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/account/serializer.rb +37 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/bill/deserializer.rb +45 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/bill/operations/create.rb +27 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/bill/operations/find.rb +27 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/bill/operations/update.rb +27 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/bill/searcher.rb +14 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/bill/serializer.rb +44 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/bill_line_item/deserializer.rb +25 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/bill_line_item/serializer.rb +29 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/bill_payment/deserializer.rb +59 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/bill_payment/operations/create.rb +33 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/bill_payment/operations/find.rb +33 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/bill_payment/operations/update.rb +33 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/bill_payment/serializer.rb +77 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/bill_payment_line_item/deserializer.rb +18 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/bill_payment_line_item/serializer.rb +18 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/client.rb +258 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/config.rb +8 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/currency/deserializer.rb +17 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/currency/serializer.rb +16 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/customer/deserializer.rb +19 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/customer/operations/create.rb +26 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/customer/operations/find.rb +26 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/customer/operations/update.rb +26 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/customer/searcher.rb +13 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/customer/serializer.rb +19 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/dashboard_url_helper.rb +34 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/department/deserializer.rb +28 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/department/operations/create.rb +23 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/department/operations/find.rb +23 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/department/operations/update.rb +25 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/department/searcher.rb +17 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/department/serializer.rb +49 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/deposit/deserializer.rb +39 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/deposit/operations/create.rb +25 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/deposit/operations/find.rb +25 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/deposit/operations/update.rb +27 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/deposit/searcher.rb +13 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/deposit/serializer.rb +39 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/deposit_line_item/deserializer.rb +38 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/deposit_line_item/serializer.rb +41 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/deserializer.rb +98 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/expense/deserializer.rb +58 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/expense/operations/create.rb +28 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/expense/operations/find.rb +28 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/expense/operations/update.rb +28 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/expense/searcher.rb +14 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/expense/serializer.rb +59 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/expense_line_item/deserializer.rb +25 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/expense_line_item/serializer.rb +27 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/invoice/deserializer.rb +35 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/invoice/operations/create.rb +27 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/invoice/operations/find.rb +25 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/invoice/operations/update.rb +25 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/invoice/serializer.rb +35 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/invoice_sales_line_item/deserializer.rb +25 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/invoice_sales_line_item/serializer.rb +29 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/item/deserializer.rb +13 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/item/serializer.rb +12 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry/deserializer.rb +33 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry/operations/create.rb +23 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry/operations/find.rb +23 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry/operations/update.rb +23 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry/searcher.rb +14 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry/serializer.rb +33 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry_line_item/deserializer.rb +32 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry_line_item/serializer.rb +36 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/ledger_class/deserializer.rb +29 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/ledger_class/operations/create.rb +23 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/ledger_class/operations/find.rb +23 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/ledger_class/operations/update.rb +25 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/ledger_class/searcher.rb +15 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/ledger_class/serializer.rb +24 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/oauth_client.rb +93 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/operation.rb +61 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/operation/create.rb +26 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/operation/find.rb +25 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/operation/full_update.rb +44 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/operation/sparse_update.rb +29 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/payment/deserializer.rb +48 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/payment/operations/create.rb +30 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/payment/operations/find.rb +28 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/payment/operations/update.rb +28 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/payment/serializer.rb +48 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/payment_line_item/deserializer.rb +18 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/payment_line_item/serializer.rb +18 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/preferences/deserializer.rb +43 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/preferences/operations/find.rb +30 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/preferences/serializer.rb +43 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/request.rb +98 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resource.rb +10 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/account.rb +355 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/bill.rb +31 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/bill_line_item.rb +21 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/bill_payment.rb +42 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/bill_payment_line_item.rb +19 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/currency.rb +13 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/customer.rb +19 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/department.rb +16 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/deposit.rb +28 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/deposit_line_item.rb +25 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/expense.rb +40 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/expense_line_item.rb +21 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/invoice.rb +28 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/invoice_sales_line_item.rb +21 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/item.rb +11 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/journal_entry.rb +24 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/journal_entry_line_item.rb +29 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/ledger_class.rb +16 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/payment.rb +31 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/payment_line_item.rb +19 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/preferences.rb +24 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/primary_email_addr.rb +11 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/primary_phone.rb +11 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/subsidiary.rb +12 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/transfer.rb +24 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/resources/vendor.rb +23 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/searcher.rb +60 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/serialization/type/amount_float_to_integer_type.rb +21 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/serialization/type/deserialize_transaction_reference_type.rb +30 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/serialization/type/integer_to_amount_float_type.rb +21 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/serialization/type/serialize_transaction_reference_type.rb +30 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/serializer.rb +71 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/serialziation/type/mapping_type.rb +25 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/transfer/deserializer.rb +34 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/transfer/operations/create.rb +24 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/transfer/operations/find.rb +24 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/transfer/operations/update.rb +26 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/transfer/serializer.rb +34 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/util/error_matcher.rb +54 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/util/error_parser.rb +27 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/util/ledger_error_parser.rb +103 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/util/operation_error_parser.rb +99 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/vendor/deserializer.rb +25 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/vendor/operations/create.rb +27 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/vendor/operations/find.rb +27 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/vendor/operations/update.rb +27 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/vendor/searcher.rb +15 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/vendor/serializer.rb +25 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/webhook.rb +58 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/webhook_event.rb +79 -0
- data/lib/ledger_sync/ledgers/quickbooks_online/webhook_notification.rb +42 -0
- data/lib/ledger_sync/ledgers/request.rb +57 -0
- data/lib/ledger_sync/ledgers/response.rb +55 -0
- data/lib/ledger_sync/ledgers/searcher.rb +73 -0
- data/lib/ledger_sync/ledgers/stripe/client.rb +37 -0
- data/lib/ledger_sync/ledgers/stripe/config.rb +5 -0
- data/lib/ledger_sync/ledgers/stripe/customer/operations/create.rb +44 -0
- data/lib/ledger_sync/ledgers/stripe/customer/operations/delete.rb +35 -0
- data/lib/ledger_sync/ledgers/stripe/customer/operations/find.rb +44 -0
- data/lib/ledger_sync/ledgers/stripe/customer/operations/update.rb +43 -0
- data/lib/ledger_sync/ledgers/stripe/dashboard_url_helper.rb +21 -0
- data/lib/ledger_sync/ledgers/stripe/operation.rb +35 -0
- data/lib/ledger_sync/ledgers/stripe/operation/create.rb +17 -0
- data/lib/ledger_sync/ledgers/stripe/operation/delete.rb +17 -0
- data/lib/ledger_sync/ledgers/stripe/operation/find.rb +15 -0
- data/lib/ledger_sync/ledgers/stripe/operation/update.rb +17 -0
- data/lib/ledger_sync/ledgers/stripe/resource.rb +10 -0
- data/lib/ledger_sync/ledgers/stripe/resources/customer.rb +13 -0
- data/lib/ledger_sync/operation.rb +23 -0
- data/lib/ledger_sync/resource.rb +22 -10
- data/lib/ledger_sync/resource_adaptor.rb +52 -0
- data/lib/ledger_sync/resource_attribute.rb +31 -9
- data/lib/ledger_sync/resource_attribute/dirty_mixin.rb +4 -0
- data/lib/ledger_sync/resource_attribute/mixin.rb +14 -24
- data/lib/ledger_sync/resource_attribute/reference/many.rb +21 -23
- data/lib/ledger_sync/resource_attribute/reference/one.rb +16 -5
- data/lib/ledger_sync/resource_attribute_set.rb +3 -7
- data/lib/ledger_sync/result.rb +3 -3
- data/lib/ledger_sync/serialization/attribute.rb +41 -0
- data/lib/ledger_sync/serialization/attribute_set_mixin.rb +27 -0
- data/lib/ledger_sync/serialization/deserializer_attribute.rb +78 -0
- data/lib/ledger_sync/serialization/deserializer_attribute_set.rb +22 -0
- data/lib/ledger_sync/serialization/mixin.rb +70 -0
- data/lib/ledger_sync/serialization/serializer_attribute.rb +64 -0
- data/lib/ledger_sync/serialization/serializer_attribute_set.rb +22 -0
- data/lib/ledger_sync/serialization/type/deserializer_references_many_type.rb +26 -0
- data/lib/ledger_sync/serialization/type/deserializer_references_one_type.rb +12 -0
- data/lib/ledger_sync/serialization/type/deserializer_type.rb +29 -0
- data/lib/ledger_sync/serialization/type/format_date_type.rb +23 -0
- data/lib/ledger_sync/serialization/type/mapping_type.rb +23 -0
- data/lib/ledger_sync/serialization/type/parse_date_type.rb +23 -0
- data/lib/ledger_sync/serialization/type/serializer_references_many_type.rb +21 -0
- data/lib/ledger_sync/serialization/type/serializer_references_one_type.rb +12 -0
- data/lib/ledger_sync/serialization/type/serializer_type.rb +23 -0
- data/lib/ledger_sync/serializer.rb +95 -0
- data/lib/ledger_sync/type/boolean.rb +2 -0
- data/lib/ledger_sync/type/date.rb +3 -1
- data/lib/ledger_sync/type/float.rb +2 -0
- data/lib/ledger_sync/type/hash.rb +38 -0
- data/lib/ledger_sync/type/id.rb +8 -2
- data/lib/ledger_sync/type/integer.rb +2 -0
- data/lib/ledger_sync/type/reference_many.rb +15 -5
- data/lib/ledger_sync/type/reference_one.rb +9 -18
- data/lib/ledger_sync/type/string.rb +2 -0
- data/lib/ledger_sync/type/string_from_set.rb +43 -0
- data/lib/ledger_sync/type/value_mixin.rb +37 -7
- data/lib/ledger_sync/util/mixins/delegate_iterable_methods_mixin.rb +43 -0
- data/lib/ledger_sync/util/mixins/dupable_mixin.rb +13 -0
- data/lib/ledger_sync/util/mixins/resource_registerable_mixin.rb +29 -0
- data/lib/ledger_sync/util/read_only_object.rb +54 -0
- data/lib/ledger_sync/util/resource_converter.rb +113 -0
- data/lib/ledger_sync/util/resource_converter/attribute.rb +131 -0
- data/lib/ledger_sync/util/resource_converter/attribute_set.rb +42 -0
- data/lib/ledger_sync/util/resource_converter/type/references_many_type.rb +27 -0
- data/lib/ledger_sync/util/resource_converter/type/references_one_type.rb +14 -0
- data/lib/ledger_sync/util/resource_converter/type/resource_converter_type.rb +26 -0
- data/lib/ledger_sync/util/resources_builder.rb +19 -11
- data/lib/ledger_sync/util/string_helpers.rb +3 -3
- data/lib/ledger_sync/util/url_helpers.rb +38 -0
- data/lib/ledger_sync/util/validator.rb +3 -1
- data/lib/ledger_sync/version.rb +1 -1
- data/licenses/BSL.txt +97 -0
- data/licenses/documentation_site.txt +7 -0
- metadata +712 -261
- data/_config.yml +0 -1
- data/lib/ledger_sync/adaptor_configuration.rb +0 -61
- data/lib/ledger_sync/adaptor_configuration_store.rb +0 -56
- data/lib/ledger_sync/adaptors/adaptor.rb +0 -74
- data/lib/ledger_sync/adaptors/contract.rb +0 -16
- data/lib/ledger_sync/adaptors/ledger_serializer.rb +0 -121
- data/lib/ledger_sync/adaptors/ledger_serializer_attribute.rb +0 -148
- data/lib/ledger_sync/adaptors/ledger_serializer_attribute_set.rb +0 -51
- data/lib/ledger_sync/adaptors/ledger_serializer_type/mapping_type.rb +0 -41
- data/lib/ledger_sync/adaptors/ledger_serializer_type/references_many_type.rb +0 -24
- data/lib/ledger_sync/adaptors/ledger_serializer_type/value_type.rb +0 -17
- data/lib/ledger_sync/adaptors/mixins/infer_adaptor_class_mixin.rb +0 -24
- data/lib/ledger_sync/adaptors/mixins/infer_ledger_serializer_mixin.rb +0 -31
- data/lib/ledger_sync/adaptors/mixins/infer_resource_class_mixin.rb +0 -22
- data/lib/ledger_sync/adaptors/mixins/offset_and_limit_pagination_searcher_mixin.rb +0 -37
- data/lib/ledger_sync/adaptors/netsuite/account/ledger_deserializer.rb +0 -24
- data/lib/ledger_sync/adaptors/netsuite/account/ledger_serializer.rb +0 -22
- data/lib/ledger_sync/adaptors/netsuite/account/operations/create.rb +0 -28
- data/lib/ledger_sync/adaptors/netsuite/account/operations/find.rb +0 -28
- data/lib/ledger_sync/adaptors/netsuite/account/searcher.rb +0 -28
- data/lib/ledger_sync/adaptors/netsuite/adaptor.rb +0 -145
- data/lib/ledger_sync/adaptors/netsuite/config.rb +0 -6
- data/lib/ledger_sync/adaptors/netsuite/currency/deledger_serializer.rb +0 -28
- data/lib/ledger_sync/adaptors/netsuite/currency/ledger_serializer.rb +0 -25
- data/lib/ledger_sync/adaptors/netsuite/currency/operations/create.rb +0 -25
- data/lib/ledger_sync/adaptors/netsuite/currency/operations/delete.rb +0 -23
- data/lib/ledger_sync/adaptors/netsuite/currency/operations/find.rb +0 -23
- data/lib/ledger_sync/adaptors/netsuite/currency/operations/update.rb +0 -23
- data/lib/ledger_sync/adaptors/netsuite/customer/ledger_deserializer.rb +0 -27
- data/lib/ledger_sync/adaptors/netsuite/customer/ledger_serializer.rb +0 -38
- data/lib/ledger_sync/adaptors/netsuite/customer/operations/create.rb +0 -24
- data/lib/ledger_sync/adaptors/netsuite/customer/operations/delete.rb +0 -24
- data/lib/ledger_sync/adaptors/netsuite/customer/operations/find.rb +0 -24
- data/lib/ledger_sync/adaptors/netsuite/customer/operations/update.rb +0 -24
- data/lib/ledger_sync/adaptors/netsuite/ledger_serializer.rb +0 -30
- data/lib/ledger_sync/adaptors/netsuite/ledger_serializer_type/reference_type.rb +0 -24
- data/lib/ledger_sync/adaptors/netsuite/ledger_serializer_type/subsidiary_type.rb +0 -22
- data/lib/ledger_sync/adaptors/netsuite/operation.rb +0 -25
- data/lib/ledger_sync/adaptors/netsuite/operation/create.rb +0 -65
- data/lib/ledger_sync/adaptors/netsuite/operation/delete.rb +0 -49
- data/lib/ledger_sync/adaptors/netsuite/operation/find.rb +0 -56
- data/lib/ledger_sync/adaptors/netsuite/operation/update.rb +0 -68
- data/lib/ledger_sync/adaptors/netsuite/record/http_method.rb +0 -38
- data/lib/ledger_sync/adaptors/netsuite/record/metadata.rb +0 -75
- data/lib/ledger_sync/adaptors/netsuite/record/property.rb +0 -45
- data/lib/ledger_sync/adaptors/netsuite/searcher.rb +0 -17
- data/lib/ledger_sync/adaptors/netsuite/token.rb +0 -162
- data/lib/ledger_sync/adaptors/netsuite/vendor/ledger_deserializer.rb +0 -32
- data/lib/ledger_sync/adaptors/netsuite/vendor/ledger_serializer.rb +0 -35
- data/lib/ledger_sync/adaptors/netsuite/vendor/operations/create.rb +0 -27
- data/lib/ledger_sync/adaptors/netsuite/vendor/operations/delete.rb +0 -27
- data/lib/ledger_sync/adaptors/netsuite/vendor/operations/find.rb +0 -27
- data/lib/ledger_sync/adaptors/netsuite/vendor/operations/update.rb +0 -27
- data/lib/ledger_sync/adaptors/netsuite_soap/adaptor.rb +0 -92
- data/lib/ledger_sync/adaptors/netsuite_soap/config.rb +0 -5
- data/lib/ledger_sync/adaptors/netsuite_soap/customer/ledger_serializer.rb +0 -13
- data/lib/ledger_sync/adaptors/netsuite_soap/customer/operations/create.rb +0 -64
- data/lib/ledger_sync/adaptors/netsuite_soap/customer/operations/find.rb +0 -49
- data/lib/ledger_sync/adaptors/netsuite_soap/ledger_serializer.rb +0 -25
- data/lib/ledger_sync/adaptors/netsuite_soap/operation.rb +0 -40
- data/lib/ledger_sync/adaptors/netsuite_soap/operation/create.rb +0 -29
- data/lib/ledger_sync/adaptors/netsuite_soap/operation/find.rb +0 -15
- data/lib/ledger_sync/adaptors/netsuite_soap/subsidiary/operations/create.rb +0 -42
- data/lib/ledger_sync/adaptors/netsuite_soap/subsidiary/operations/find.rb +0 -38
- data/lib/ledger_sync/adaptors/operation.rb +0 -215
- data/lib/ledger_sync/adaptors/quickbooks_online/account/ledger_serializer.rb +0 -21
- data/lib/ledger_sync/adaptors/quickbooks_online/account/operations/create.rb +0 -26
- data/lib/ledger_sync/adaptors/quickbooks_online/account/operations/find.rb +0 -26
- data/lib/ledger_sync/adaptors/quickbooks_online/account/operations/update.rb +0 -30
- data/lib/ledger_sync/adaptors/quickbooks_online/account/searcher.rb +0 -15
- data/lib/ledger_sync/adaptors/quickbooks_online/adaptor.rb +0 -258
- data/lib/ledger_sync/adaptors/quickbooks_online/bill/ledger_serializer.rb +0 -40
- data/lib/ledger_sync/adaptors/quickbooks_online/bill/operations/create.rb +0 -26
- data/lib/ledger_sync/adaptors/quickbooks_online/bill/operations/find.rb +0 -26
- data/lib/ledger_sync/adaptors/quickbooks_online/bill/operations/update.rb +0 -26
- data/lib/ledger_sync/adaptors/quickbooks_online/bill/searcher.rb +0 -14
- data/lib/ledger_sync/adaptors/quickbooks_online/bill_line_item/ledger_serializer.rb +0 -27
- data/lib/ledger_sync/adaptors/quickbooks_online/config.rb +0 -8
- data/lib/ledger_sync/adaptors/quickbooks_online/customer/ledger_serializer.rb +0 -23
- data/lib/ledger_sync/adaptors/quickbooks_online/customer/operations/create.rb +0 -22
- data/lib/ledger_sync/adaptors/quickbooks_online/customer/operations/find.rb +0 -22
- data/lib/ledger_sync/adaptors/quickbooks_online/customer/operations/update.rb +0 -24
- data/lib/ledger_sync/adaptors/quickbooks_online/customer/searcher.rb +0 -13
- data/lib/ledger_sync/adaptors/quickbooks_online/dashboard_url_helper.rb +0 -57
- data/lib/ledger_sync/adaptors/quickbooks_online/department/ledger_serializer.rb +0 -38
- data/lib/ledger_sync/adaptors/quickbooks_online/department/operations/create.rb +0 -23
- data/lib/ledger_sync/adaptors/quickbooks_online/department/operations/find.rb +0 -23
- data/lib/ledger_sync/adaptors/quickbooks_online/department/operations/update.rb +0 -25
- data/lib/ledger_sync/adaptors/quickbooks_online/department/searcher.rb +0 -17
- data/lib/ledger_sync/adaptors/quickbooks_online/deposit/ledger_serializer.rb +0 -38
- data/lib/ledger_sync/adaptors/quickbooks_online/deposit/operations/create.rb +0 -25
- data/lib/ledger_sync/adaptors/quickbooks_online/deposit/operations/find.rb +0 -25
- data/lib/ledger_sync/adaptors/quickbooks_online/deposit/operations/update.rb +0 -27
- data/lib/ledger_sync/adaptors/quickbooks_online/deposit/searcher.rb +0 -13
- data/lib/ledger_sync/adaptors/quickbooks_online/deposit_line_item/ledger_serializer.rb +0 -31
- data/lib/ledger_sync/adaptors/quickbooks_online/expense/ledger_serializer.rb +0 -47
- data/lib/ledger_sync/adaptors/quickbooks_online/expense/operations/create.rb +0 -27
- data/lib/ledger_sync/adaptors/quickbooks_online/expense/operations/find.rb +0 -27
- data/lib/ledger_sync/adaptors/quickbooks_online/expense/operations/update.rb +0 -27
- data/lib/ledger_sync/adaptors/quickbooks_online/expense/searcher.rb +0 -14
- data/lib/ledger_sync/adaptors/quickbooks_online/expense_line_item/ledger_serializer.rb +0 -27
- data/lib/ledger_sync/adaptors/quickbooks_online/invoice/ledger_serializer.rb +0 -35
- data/lib/ledger_sync/adaptors/quickbooks_online/invoice/operations/create.rb +0 -27
- data/lib/ledger_sync/adaptors/quickbooks_online/invoice/operations/find.rb +0 -25
- data/lib/ledger_sync/adaptors/quickbooks_online/invoice/operations/update.rb +0 -25
- data/lib/ledger_sync/adaptors/quickbooks_online/invoice_sales_line_item/ledger_serializer.rb +0 -30
- data/lib/ledger_sync/adaptors/quickbooks_online/item/ledger_serializer.rb +0 -13
- data/lib/ledger_sync/adaptors/quickbooks_online/journal_entry/ledger_serializer.rb +0 -32
- data/lib/ledger_sync/adaptors/quickbooks_online/journal_entry/operations/create.rb +0 -23
- data/lib/ledger_sync/adaptors/quickbooks_online/journal_entry/operations/find.rb +0 -23
- data/lib/ledger_sync/adaptors/quickbooks_online/journal_entry/operations/update.rb +0 -23
- data/lib/ledger_sync/adaptors/quickbooks_online/journal_entry/searcher.rb +0 -14
- data/lib/ledger_sync/adaptors/quickbooks_online/journal_entry_line_item/ledger_serializer.rb +0 -31
- data/lib/ledger_sync/adaptors/quickbooks_online/ledger_class/ledger_serializer.rb +0 -25
- data/lib/ledger_sync/adaptors/quickbooks_online/ledger_class/operations/create.rb +0 -23
- data/lib/ledger_sync/adaptors/quickbooks_online/ledger_class/operations/find.rb +0 -23
- data/lib/ledger_sync/adaptors/quickbooks_online/ledger_class/operations/update.rb +0 -25
- data/lib/ledger_sync/adaptors/quickbooks_online/ledger_class/searcher.rb +0 -15
- data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer.rb +0 -131
- data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer_type/account_sub_type.rb +0 -305
- data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer_type/account_type.rb +0 -51
- data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer_type/amount_type.rb +0 -23
- data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer_type/classification_type.rb +0 -23
- data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer_type/date_type.rb +0 -23
- data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer_type/entity_reference_type.rb +0 -49
- data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer_type/journal_entry_line_item_type.rb +0 -20
- data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer_type/payment_type.rb +0 -21
- data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer_type/transaction_reference_type.rb +0 -49
- data/lib/ledger_sync/adaptors/quickbooks_online/oauth_client.rb +0 -93
- data/lib/ledger_sync/adaptors/quickbooks_online/operation.rb +0 -60
- data/lib/ledger_sync/adaptors/quickbooks_online/operation/create.rb +0 -26
- data/lib/ledger_sync/adaptors/quickbooks_online/operation/find.rb +0 -31
- data/lib/ledger_sync/adaptors/quickbooks_online/operation/full_update.rb +0 -45
- data/lib/ledger_sync/adaptors/quickbooks_online/operation/sparse_update.rb +0 -29
- data/lib/ledger_sync/adaptors/quickbooks_online/payment/ledger_serializer.rb +0 -48
- data/lib/ledger_sync/adaptors/quickbooks_online/payment/operations/create.rb +0 -30
- data/lib/ledger_sync/adaptors/quickbooks_online/payment/operations/find.rb +0 -28
- data/lib/ledger_sync/adaptors/quickbooks_online/payment/operations/update.rb +0 -28
- data/lib/ledger_sync/adaptors/quickbooks_online/payment_line_item/ledger_serializer.rb +0 -19
- data/lib/ledger_sync/adaptors/quickbooks_online/request.rb +0 -98
- data/lib/ledger_sync/adaptors/quickbooks_online/searcher.rb +0 -61
- data/lib/ledger_sync/adaptors/quickbooks_online/transfer/ledger_serializer.rb +0 -33
- data/lib/ledger_sync/adaptors/quickbooks_online/transfer/operations/create.rb +0 -24
- data/lib/ledger_sync/adaptors/quickbooks_online/transfer/operations/find.rb +0 -24
- data/lib/ledger_sync/adaptors/quickbooks_online/transfer/operations/update.rb +0 -26
- data/lib/ledger_sync/adaptors/quickbooks_online/util/adaptor_error_parser.rb +0 -103
- data/lib/ledger_sync/adaptors/quickbooks_online/util/error_matcher.rb +0 -54
- data/lib/ledger_sync/adaptors/quickbooks_online/util/error_parser.rb +0 -27
- data/lib/ledger_sync/adaptors/quickbooks_online/util/operation_error_parser.rb +0 -99
- data/lib/ledger_sync/adaptors/quickbooks_online/vendor/ledger_serializer.rb +0 -25
- data/lib/ledger_sync/adaptors/quickbooks_online/vendor/operations/create.rb +0 -27
- data/lib/ledger_sync/adaptors/quickbooks_online/vendor/operations/find.rb +0 -27
- data/lib/ledger_sync/adaptors/quickbooks_online/vendor/operations/update.rb +0 -27
- data/lib/ledger_sync/adaptors/quickbooks_online/vendor/searcher.rb +0 -15
- data/lib/ledger_sync/adaptors/quickbooks_online/webhook.rb +0 -58
- data/lib/ledger_sync/adaptors/quickbooks_online/webhook_event.rb +0 -79
- data/lib/ledger_sync/adaptors/quickbooks_online/webhook_notification.rb +0 -42
- data/lib/ledger_sync/adaptors/request.rb +0 -53
- data/lib/ledger_sync/adaptors/response.rb +0 -55
- data/lib/ledger_sync/adaptors/searcher.rb +0 -68
- data/lib/ledger_sync/adaptors/stripe/adaptor.rb +0 -45
- data/lib/ledger_sync/adaptors/stripe/config.rb +0 -6
- data/lib/ledger_sync/adaptors/stripe/customer/operations/create.rb +0 -44
- data/lib/ledger_sync/adaptors/stripe/customer/operations/delete.rb +0 -35
- data/lib/ledger_sync/adaptors/stripe/customer/operations/find.rb +0 -44
- data/lib/ledger_sync/adaptors/stripe/customer/operations/update.rb +0 -43
- data/lib/ledger_sync/adaptors/stripe/operation.rb +0 -35
- data/lib/ledger_sync/adaptors/stripe/operation/create.rb +0 -17
- data/lib/ledger_sync/adaptors/stripe/operation/delete.rb +0 -17
- data/lib/ledger_sync/adaptors/stripe/operation/find.rb +0 -15
- data/lib/ledger_sync/adaptors/stripe/operation/update.rb +0 -17
- data/lib/ledger_sync/adaptors/test/account/operations/create.rb +0 -57
- data/lib/ledger_sync/adaptors/test/account/operations/find.rb +0 -42
- data/lib/ledger_sync/adaptors/test/account/operations/invalid.rb +0 -26
- data/lib/ledger_sync/adaptors/test/account/operations/update.rb +0 -56
- data/lib/ledger_sync/adaptors/test/account/operations/valid.rb +0 -32
- data/lib/ledger_sync/adaptors/test/account/searcher.rb +0 -40
- data/lib/ledger_sync/adaptors/test/adaptor.rb +0 -47
- data/lib/ledger_sync/adaptors/test/config.rb +0 -6
- data/lib/ledger_sync/adaptors/test/customer/operations/create.rb +0 -52
- data/lib/ledger_sync/adaptors/test/customer/operations/find.rb +0 -38
- data/lib/ledger_sync/adaptors/test/customer/operations/invalid.rb +0 -22
- data/lib/ledger_sync/adaptors/test/customer/operations/update.rb +0 -22
- data/lib/ledger_sync/adaptors/test/customer/operations/valid.rb +0 -24
- data/lib/ledger_sync/adaptors/test/customer/searcher.rb +0 -40
- data/lib/ledger_sync/adaptors/test/error/adaptor_error/operations/throttle_error.rb +0 -28
- data/lib/ledger_sync/adaptors/test/expense/operations/create.rb +0 -29
- data/lib/ledger_sync/adaptors/test/expense/operations/find.rb +0 -29
- data/lib/ledger_sync/adaptors/test/expense/operations/update.rb +0 -27
- data/lib/ledger_sync/adaptors/test/ledger_serializer.rb +0 -64
- data/lib/ledger_sync/adaptors/test/operation/create.rb +0 -27
- data/lib/ledger_sync/adaptors/test/operation/find.rb +0 -29
- data/lib/ledger_sync/adaptors/test/operation/update.rb +0 -34
- data/lib/ledger_sync/adaptors/test/payment/operations/create.rb +0 -51
- data/lib/ledger_sync/adaptors/test/payment/operations/find.rb +0 -44
- data/lib/ledger_sync/adaptors/test/payment/operations/update.rb +0 -28
- data/lib/ledger_sync/adaptors/test/transfer/operations/create.rb +0 -24
- data/lib/ledger_sync/adaptors/test/transfer/operations/find.rb +0 -24
- data/lib/ledger_sync/adaptors/test/transfer/operations/update.rb +0 -24
- data/lib/ledger_sync/adaptors/test/vendor/operations/create.rb +0 -56
- data/lib/ledger_sync/adaptors/test/vendor/operations/find.rb +0 -43
- data/lib/ledger_sync/adaptors/test/vendor/operations/invalid.rb +0 -27
- data/lib/ledger_sync/adaptors/test/vendor/operations/update.rb +0 -27
- data/lib/ledger_sync/adaptors/test/vendor/operations/valid.rb +0 -33
- data/lib/ledger_sync/adaptors/test/vendor/searcher.rb +0 -41
- data/lib/ledger_sync/error/adaptor_errors.rb +0 -72
- data/lib/ledger_sync/resources/account.rb +0 -14
- data/lib/ledger_sync/resources/bill.rb +0 -24
- data/lib/ledger_sync/resources/bill_line_item.rb +0 -15
- data/lib/ledger_sync/resources/currency.rb +0 -9
- data/lib/ledger_sync/resources/customer.rb +0 -25
- data/lib/ledger_sync/resources/department.rb +0 -14
- data/lib/ledger_sync/resources/deposit.rb +0 -23
- data/lib/ledger_sync/resources/deposit_line_item.rb +0 -19
- data/lib/ledger_sync/resources/expense.rb +0 -30
- data/lib/ledger_sync/resources/expense_line_item.rb +0 -15
- data/lib/ledger_sync/resources/invoice.rb +0 -23
- data/lib/ledger_sync/resources/invoice_sales_line_item.rb +0 -17
- data/lib/ledger_sync/resources/item.rb +0 -5
- data/lib/ledger_sync/resources/journal_entry.rb +0 -18
- data/lib/ledger_sync/resources/journal_entry_line_item.rb +0 -16
- data/lib/ledger_sync/resources/ledger_class.rb +0 -14
- data/lib/ledger_sync/resources/payment.rb +0 -26
- data/lib/ledger_sync/resources/payment_line_item.rb +0 -15
- data/lib/ledger_sync/resources/subsidiary.rb +0 -8
- data/lib/ledger_sync/resources/transfer.rb +0 -19
- data/lib/ledger_sync/resources/vendor.rb +0 -19
- data/lib/ledger_sync/util/debug.rb +0 -16
- data/qa/env_spec.rb +0 -5
- data/qa/netsuite/account_spec.rb +0 -20
- data/qa/netsuite/currency_spec.rb +0 -16
- data/qa/netsuite/customer.rb +0 -76
- data/qa/netsuite/customer_spec.rb +0 -21
- data/qa/netsuite/vendor.rb +0 -76
- data/qa/netsuite/vendor_spec.rb +0 -23
- data/qa/netsuite_soap/customer_spec.rb +0 -21
- data/qa/netsuite_soap/subsidiary_spec.rb +0 -0
- data/qa/netsuite_test.rb +0 -42
- data/qa/qa_helper.rb +0 -58
- data/qa/quickbooks_online/account_spec.rb +0 -14
- data/qa/quickbooks_online/customer_spec.rb +0 -13
- data/qa/quickbooks_online/expense_spec.rb +0 -31
- data/qa/quickbooks_online/vendor_spec.rb +0 -13
- data/qa/stripe/customers_spec.rb +0 -15
- data/qa/support/adaptor_helpers.rb +0 -99
- data/qa/support/adaptor_support_setup.rb +0 -23
- data/qa/support/netsuite_helpers.rb +0 -33
- data/qa/support/netsuite_shared_examples.rb +0 -30
- data/qa/support/netsuite_soap_helpers.rb +0 -33
- data/qa/support/netsuite_soap_shared_examples.rb +0 -10
- data/qa/support/quickbooks_online_helpers.rb +0 -42
- data/qa/support/quickbooks_online_shared_examples.rb +0 -82
- data/qa/support/shared_examples.rb +0 -127
- data/qa/support/stripe_helpers.rb +0 -22
- data/qa/support/stripe_shared_examples.rb +0 -10
- data/qa/test.rb +0 -67
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bdb7e0b41f99399eb3e925430d3b26062cd2b065ab9fff94dd7e223fda8ce0ce
|
4
|
+
data.tar.gz: aa9f1aa2a45fbbfddde1fec0907b766a0ad7f737fe54e858920f79a0081841f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad461a494e300b434a340259dfb3452868c774bbc4b803cee77879c8df67b9a8ae6e2a252100d5b0b15fc99b16c49a2f0fcc79e8e8f457b4bc17c1f6793e7d01
|
7
|
+
data.tar.gz: df9082d23560e8b1fcc19b64a5459fb10aabada94801f4b5406bb1289ad5b848556d5d214b0c7b41da7800e5f56dfcf37f8e7b541e0f6dbbe41294543bc759b4
|
data/.gitignore
CHANGED
@@ -10,9 +10,20 @@
|
|
10
10
|
# rspec failure tracking
|
11
11
|
.rspec_status
|
12
12
|
|
13
|
+
### Jekyll ###
|
14
|
+
_site/
|
15
|
+
.sass-cache/
|
16
|
+
.jekyll-cache/
|
17
|
+
.jekyll-metadata
|
18
|
+
|
19
|
+
# byebug
|
13
20
|
.byebug_history
|
14
|
-
.qa_config.yml
|
15
21
|
|
22
|
+
# Mac
|
16
23
|
.DS_Store
|
17
24
|
|
18
|
-
|
25
|
+
# dotenv
|
26
|
+
.env
|
27
|
+
|
28
|
+
.tool-versions
|
29
|
+
.ruby-version
|
data/.rubocop.yml
CHANGED
@@ -1,4 +1,17 @@
|
|
1
1
|
inherit_from: .rubocop_todo.yml
|
2
2
|
|
3
3
|
AllCops:
|
4
|
-
TargetRubyVersion: 2.6
|
4
|
+
TargetRubyVersion: 2.6
|
5
|
+
|
6
|
+
Layout/LineLength:
|
7
|
+
Enabled: True
|
8
|
+
Max: 120
|
9
|
+
|
10
|
+
Style/HashEachMethods:
|
11
|
+
Enabled: True
|
12
|
+
|
13
|
+
Style/HashTransformKeys:
|
14
|
+
Enabled: True
|
15
|
+
|
16
|
+
Style/HashTransformValues:
|
17
|
+
Enabled: True
|
data/.rubocop_todo.yml
CHANGED
data/.travis.yml
CHANGED
data/Dockerfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ledger_sync (1.
|
4
|
+
ledger_sync (1.4.0)
|
5
5
|
activemodel
|
6
6
|
colorize
|
7
7
|
coveralls
|
@@ -15,21 +15,22 @@ PATH
|
|
15
15
|
netsuite
|
16
16
|
nokogiri
|
17
17
|
oauth2
|
18
|
+
pd_ruby
|
18
19
|
resonad
|
19
|
-
simply_serializable (>= 1.
|
20
|
+
simply_serializable (>= 1.5.1)
|
20
21
|
stripe
|
21
22
|
|
22
23
|
GEM
|
23
24
|
remote: https://rubygems.org/
|
24
25
|
specs:
|
25
|
-
activemodel (6.0.1)
|
26
|
-
activesupport (= 6.0.1)
|
27
|
-
activesupport (6.0.1)
|
26
|
+
activemodel (6.0.3.1)
|
27
|
+
activesupport (= 6.0.3.1)
|
28
|
+
activesupport (6.0.3.1)
|
28
29
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
29
30
|
i18n (>= 0.7, < 2)
|
30
31
|
minitest (~> 5.1)
|
31
32
|
tzinfo (~> 1.1)
|
32
|
-
zeitwerk (~> 2.2)
|
33
|
+
zeitwerk (~> 2.2, >= 2.2.2)
|
33
34
|
addressable (2.7.0)
|
34
35
|
public_suffix (>= 2.0.2, < 5.0)
|
35
36
|
akami (1.3.1)
|
@@ -38,10 +39,10 @@ GEM
|
|
38
39
|
ast (2.4.0)
|
39
40
|
awesome_print (1.8.0)
|
40
41
|
builder (3.2.4)
|
41
|
-
bump (0.
|
42
|
-
byebug (11.
|
42
|
+
bump (0.9.0)
|
43
|
+
byebug (11.1.1)
|
43
44
|
colorize (0.8.1)
|
44
|
-
concurrent-ruby (1.1.
|
45
|
+
concurrent-ruby (1.1.6)
|
45
46
|
coveralls (0.8.23)
|
46
47
|
json (>= 1.8, < 3)
|
47
48
|
simplecov (~> 0.16.1)
|
@@ -53,9 +54,10 @@ GEM
|
|
53
54
|
diff-lcs (1.3)
|
54
55
|
docile (1.3.2)
|
55
56
|
dotenv (2.7.5)
|
56
|
-
dry-configurable (0.
|
57
|
+
dry-configurable (0.11.5)
|
57
58
|
concurrent-ruby (~> 1.0)
|
58
59
|
dry-core (~> 0.4, >= 0.4.7)
|
60
|
+
dry-equalizer (~> 0.2)
|
59
61
|
dry-container (0.7.2)
|
60
62
|
concurrent-ruby (~> 1.0)
|
61
63
|
dry-configurable (~> 0.1, >= 0.1.3)
|
@@ -64,95 +66,99 @@ GEM
|
|
64
66
|
dry-equalizer (0.3.0)
|
65
67
|
dry-inflector (0.2.0)
|
66
68
|
dry-initializer (3.0.3)
|
67
|
-
dry-logic (1.0.
|
69
|
+
dry-logic (1.0.6)
|
68
70
|
concurrent-ruby (~> 1.0)
|
69
71
|
dry-core (~> 0.2)
|
70
72
|
dry-equalizer (~> 0.2)
|
71
|
-
dry-schema (1.
|
73
|
+
dry-schema (1.5.1)
|
72
74
|
concurrent-ruby (~> 1.0)
|
73
75
|
dry-configurable (~> 0.8, >= 0.8.3)
|
74
76
|
dry-core (~> 0.4)
|
75
77
|
dry-equalizer (~> 0.2)
|
76
78
|
dry-initializer (~> 3.0)
|
77
79
|
dry-logic (~> 1.0)
|
78
|
-
dry-types (~> 1.
|
79
|
-
dry-types (1.
|
80
|
+
dry-types (~> 1.4)
|
81
|
+
dry-types (1.4.0)
|
80
82
|
concurrent-ruby (~> 1.0)
|
81
83
|
dry-container (~> 0.3)
|
82
84
|
dry-core (~> 0.4, >= 0.4.4)
|
83
85
|
dry-equalizer (~> 0.3)
|
84
86
|
dry-inflector (~> 0.1, >= 0.1.2)
|
85
87
|
dry-logic (~> 1.0, >= 1.0.2)
|
86
|
-
dry-validation (1.
|
88
|
+
dry-validation (1.5.0)
|
87
89
|
concurrent-ruby (~> 1.0)
|
88
90
|
dry-container (~> 0.7, >= 0.7.1)
|
89
91
|
dry-core (~> 0.4)
|
90
92
|
dry-equalizer (~> 0.2)
|
91
93
|
dry-initializer (~> 3.0)
|
92
|
-
dry-schema (~> 1.
|
93
|
-
factory_bot (
|
94
|
-
activesupport (>=
|
95
|
-
faraday (0.
|
94
|
+
dry-schema (~> 1.5)
|
95
|
+
factory_bot (5.1.1)
|
96
|
+
activesupport (>= 4.2.0)
|
97
|
+
faraday (1.0.1)
|
96
98
|
multipart-post (>= 1.2, < 3)
|
97
|
-
faraday-detailed_logger (2.
|
99
|
+
faraday-detailed_logger (2.3.0)
|
98
100
|
faraday (>= 0.8, < 2)
|
99
|
-
faraday_middleware (0.
|
100
|
-
faraday (
|
101
|
+
faraday_middleware (1.0.0)
|
102
|
+
faraday (~> 1.0)
|
101
103
|
fingerprintable (1.2.1)
|
102
104
|
colorize
|
103
105
|
gyoku (1.3.1)
|
104
106
|
builder (>= 2.1.2)
|
105
|
-
hashdiff (1.0.
|
107
|
+
hashdiff (1.0.1)
|
106
108
|
httpi (2.4.4)
|
107
109
|
rack
|
108
110
|
socksify
|
109
|
-
i18n (1.
|
111
|
+
i18n (1.8.2)
|
110
112
|
concurrent-ruby (~> 1.0)
|
111
|
-
jaro_winkler (1.5.
|
113
|
+
jaro_winkler (1.5.4)
|
112
114
|
json (2.3.0)
|
113
115
|
jwt (2.2.1)
|
114
116
|
mini_portile2 (2.4.0)
|
115
|
-
minitest (5.
|
117
|
+
minitest (5.14.1)
|
116
118
|
multi_json (1.14.1)
|
117
119
|
multi_xml (0.6.0)
|
118
120
|
multipart-post (2.1.1)
|
119
121
|
netsuite (0.8.5)
|
120
122
|
savon (>= 2.3.0)
|
121
|
-
nokogiri (1.10.
|
123
|
+
nokogiri (1.10.9)
|
122
124
|
mini_portile2 (~> 2.4.0)
|
123
125
|
nori (2.6.0)
|
124
|
-
oauth2 (1.4.
|
126
|
+
oauth2 (1.4.4)
|
125
127
|
faraday (>= 0.8, < 2.0)
|
126
128
|
jwt (>= 1.0, < 3.0)
|
127
129
|
multi_json (~> 1.3)
|
128
130
|
multi_xml (~> 0.5)
|
129
131
|
rack (>= 1.2, < 3)
|
130
|
-
parallel (1.
|
131
|
-
parser (2.
|
132
|
+
parallel (1.19.1)
|
133
|
+
parser (2.7.0.3)
|
132
134
|
ast (~> 2.4.0)
|
133
|
-
|
134
|
-
|
135
|
+
pd_ruby (0.2.3)
|
136
|
+
colorize
|
137
|
+
public_suffix (4.0.3)
|
138
|
+
rack (2.2.2)
|
135
139
|
rainbow (3.0.0)
|
136
|
-
rake (
|
140
|
+
rake (13.0.1)
|
137
141
|
resonad (1.2.0)
|
138
|
-
|
139
|
-
|
140
|
-
rspec-
|
141
|
-
rspec-
|
142
|
-
|
143
|
-
|
144
|
-
|
142
|
+
rexml (3.2.4)
|
143
|
+
rspec (3.9.0)
|
144
|
+
rspec-core (~> 3.9.0)
|
145
|
+
rspec-expectations (~> 3.9.0)
|
146
|
+
rspec-mocks (~> 3.9.0)
|
147
|
+
rspec-core (3.9.1)
|
148
|
+
rspec-support (~> 3.9.1)
|
149
|
+
rspec-expectations (3.9.0)
|
145
150
|
diff-lcs (>= 1.2.0, < 2.0)
|
146
|
-
rspec-support (~> 3.
|
147
|
-
rspec-mocks (3.
|
151
|
+
rspec-support (~> 3.9.0)
|
152
|
+
rspec-mocks (3.9.1)
|
148
153
|
diff-lcs (>= 1.2.0, < 2.0)
|
149
|
-
rspec-support (~> 3.
|
150
|
-
rspec-support (3.
|
151
|
-
rubocop (0.
|
154
|
+
rspec-support (~> 3.9.0)
|
155
|
+
rspec-support (3.9.2)
|
156
|
+
rubocop (0.80.0)
|
152
157
|
jaro_winkler (~> 1.5.1)
|
153
158
|
parallel (~> 1.10)
|
154
|
-
parser (>= 2.
|
159
|
+
parser (>= 2.7.0.1)
|
155
160
|
rainbow (>= 2.2.2, < 4.0)
|
161
|
+
rexml
|
156
162
|
ruby-progressbar (~> 1.7)
|
157
163
|
unicode-display_width (>= 1.4.0, < 1.7)
|
158
164
|
ruby-progressbar (1.10.1)
|
@@ -170,29 +176,29 @@ GEM
|
|
170
176
|
json (>= 1.8, < 3)
|
171
177
|
simplecov-html (~> 0.10.0)
|
172
178
|
simplecov-html (0.10.2)
|
173
|
-
simply_serializable (1.
|
179
|
+
simply_serializable (1.5.1)
|
174
180
|
fingerprintable (>= 1.2.1)
|
175
181
|
socksify (1.7.1)
|
176
|
-
stripe (5.
|
182
|
+
stripe (5.22.0)
|
177
183
|
sync (0.5.0)
|
178
184
|
term-ansicolor (1.7.1)
|
179
185
|
tins (~> 1.0)
|
180
186
|
thor (1.0.1)
|
181
187
|
thread_safe (0.3.6)
|
182
|
-
tins (1.
|
188
|
+
tins (1.25.0)
|
183
189
|
sync
|
184
|
-
tzinfo (1.2.
|
190
|
+
tzinfo (1.2.7)
|
185
191
|
thread_safe (~> 0.1)
|
186
|
-
unicode-display_width (1.6.
|
187
|
-
vcr (5.
|
192
|
+
unicode-display_width (1.6.1)
|
193
|
+
vcr (5.1.0)
|
188
194
|
wasabi (3.5.0)
|
189
195
|
httpi (~> 2.0)
|
190
196
|
nokogiri (>= 1.4.2)
|
191
|
-
webmock (3.
|
197
|
+
webmock (3.8.2)
|
192
198
|
addressable (>= 2.3.6)
|
193
199
|
crack (>= 0.3.2)
|
194
200
|
hashdiff (>= 0.4.0, < 2.0.0)
|
195
|
-
zeitwerk (2.
|
201
|
+
zeitwerk (2.3.0)
|
196
202
|
|
197
203
|
PLATFORMS
|
198
204
|
ruby
|
@@ -204,7 +210,7 @@ DEPENDENCIES
|
|
204
210
|
byebug
|
205
211
|
factory_bot
|
206
212
|
ledger_sync!
|
207
|
-
rake (~>
|
213
|
+
rake (~> 13.0)
|
208
214
|
rspec (~> 3.2)
|
209
215
|
rubocop
|
210
216
|
vcr
|
data/LICENSE.txt
CHANGED
@@ -1,21 +1,5 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
7
|
-
in the Software without restriction, including without limitation the rights
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
10
|
-
furnished to do so, subject to the following conditions:
|
11
|
-
|
12
|
-
The above copyright notice and this permission notice shall be included in
|
13
|
-
all copies or substantial portions of the Software.
|
14
|
-
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
-
THE SOFTWARE.
|
1
|
+
Source code in this repository is variously licensed under the Business Source
|
2
|
+
License 1.1 (BSL) and other licenses. A copy of each license can be found in the licenses
|
3
|
+
directory or the relative directories. Source code in a given file is licensed under the BSL and the
|
4
|
+
copyright belongs to Modern Treasury Inc. unless otherwise noted at the
|
5
|
+
beginning of the file or in a specific license file.
|
data/README.md
CHANGED
@@ -4,407 +4,23 @@
|
|
4
4
|
[![Gem Version](https://badge.fury.io/rb/ledger_sync.svg)](https://badge.fury.io/rb/ledger_sync)
|
5
5
|
[![Coverage Status](https://coveralls.io/repos/github/LedgerSync/ledger_sync/badge.svg?branch=master)](https://coveralls.io/github/LedgerSync/ledger_sync?branch=master)
|
6
6
|
|
7
|
-
##
|
7
|
+
## Join the Conversation
|
8
8
|
|
9
|
-
|
9
|
+
[Click here](https://join.slack.com/t/ledger-sync/shared_invite/zt-e5nbl8qc-eOA~5k7bg3p16_l3J7OS~Q) to join our public Slack group.
|
10
10
|
|
11
|
-
|
12
|
-
gem 'ledger_sync'
|
13
|
-
```
|
11
|
+
## Documentation
|
14
12
|
|
15
|
-
|
13
|
+
The most up-to-date documentation can be found at [www.ledgersync.dev](http://www.ledgersync.dev)
|
16
14
|
|
17
|
-
|
18
|
-
$ bundle
|
19
|
-
```
|
15
|
+
## License
|
20
16
|
|
21
|
-
|
17
|
+
The gem is available as open source under the terms of the licenses detailed in `LICENSE.txt`.
|
22
18
|
|
23
|
-
|
24
|
-
$ gem install ledger_sync
|
25
|
-
```
|
26
|
-
|
27
|
-
## Usage
|
28
|
-
|
29
|
-
To use LedgerSync, you must create an `Operation`. The operation will be ledger-specific and will require the following:
|
30
|
-
|
31
|
-
1. Adaptor
|
32
|
-
2. Resource(s)
|
33
|
-
|
34
|
-
The code may look like the following:
|
35
|
-
|
36
|
-
```ruby
|
37
|
-
# First we create an adaptor, which is our connection to a ledger.
|
38
|
-
# Each ledger may require different keys, so check the
|
39
|
-
# documentation below for specifics.
|
40
|
-
adaptor = LedgerSync::Adaptors::QuickBooksOnline::Adaptor.new(
|
41
|
-
access_token: access_token, # assuming this is defined
|
42
|
-
client_id: ENV['QUICKBOOKS_ONLINE_CLIENT_ID'],
|
43
|
-
client_secret: ENV['QUICKBOOKS_ONLINE_CLIENT_SECRET'],
|
44
|
-
realm_id: ENV['QUICKBOOKS_ONLINE_REALM_ID'],
|
45
|
-
refresh_token: refresh_token, # assuming this is defined
|
46
|
-
)
|
47
|
-
|
48
|
-
# Create a resource on which to operate. Some resources have
|
49
|
-
# relationships with other resources. You can use
|
50
|
-
# `Util::ResourcesBuilder` to create resources and relationships from
|
51
|
-
# a structured hash.
|
52
|
-
resource = LedgerSync::Customer.new(
|
53
|
-
name: 'Sample Customer',
|
54
|
-
email: 'test@example.com'
|
55
|
-
)
|
56
|
-
|
57
|
-
# Create the operation we want to perform.
|
58
|
-
operation = LedgerSync::Adaptors::QuickBooksOnline::Customer::Operations::Create.new(
|
59
|
-
adaptor: adaptor,
|
60
|
-
resource: resource
|
61
|
-
)
|
62
|
-
|
63
|
-
result = operation.perform # Returns a LedgerSync::OperationResult
|
64
|
-
|
65
|
-
if result.success?
|
66
|
-
resource = result.operation.resource
|
67
|
-
# Do something with resource
|
68
|
-
else # result.failure?
|
69
|
-
raise result.error
|
70
|
-
end
|
71
|
-
|
72
|
-
# Because QuickBooks Online uses Oauth 2, you must always be sure to
|
73
|
-
# save the access_token, refresh_token, and expirations as they can
|
74
|
-
# change with any API call.
|
75
|
-
result.operation.adaptor.ledger_attributes_to_save.each do |key, value|
|
76
|
-
# save values
|
77
|
-
end
|
78
|
-
```
|
79
|
-
|
80
|
-
## How it Works
|
81
|
-
|
82
|
-
### The Library Structure
|
83
|
-
|
84
|
-
This library consists of two important layers:
|
85
|
-
|
86
|
-
1. Resources
|
87
|
-
2. Adaptors
|
88
|
-
|
89
|
-
#### Resources
|
90
|
-
|
91
|
-
Resources are named ruby objects (e.g. `Customer`, `Payment`, etc.) with strict attributes (e.g. `name`, `amount`, etc.). They are a layer between your application and an adaptor. They can be validated using an adaptor. You can create and use the resources, and an adaptor will update resources as needed based on the intention and outcome of that operation.
|
92
|
-
|
93
|
-
You can find supported resources by calling `LedgerSync.resources`.
|
94
|
-
|
95
|
-
Resources have defined attributes. Attributes are explicitly defined. An error is thrown if an unknown attribute is passed to it. You can retrieve the attributes of a resource by calling `LedgerSync::Customer.attributes`.
|
96
|
-
|
97
|
-
A subset of these `attributes` may be a `reference`, which is simply a special type of attribute that references another resource. You can retrieve the references of a resource by calling `LedgerSync::Customer.references`.
|
98
|
-
|
99
|
-
### Adaptors
|
100
|
-
|
101
|
-
Adaptors are ledger-specific ruby objects that contain all the logic to authenticate to a ledger, perform ledger-specific operations, and validate resources based on the requirements of the ledger. Adaptors contain a number of useful objects:
|
102
|
-
|
103
|
-
- adaptor
|
104
|
-
- operations
|
105
|
-
- searchers
|
106
|
-
|
107
|
-
#### Adaptor
|
108
|
-
|
109
|
-
The adaptor handles authentication and requests to the ledger. Each adaptors initializer will vary based on the needs of that ledger.
|
110
|
-
|
111
|
-
#### Operation
|
112
|
-
|
113
|
-
Each adaptor defines operations that can be performed on specific resources (e.g. `Customer::Operations::Update`, `Payment::Operations::Create`). The operation defines two key things:
|
114
|
-
|
115
|
-
- a `Contract` class which is used to validate the resource using the `dry-validation` gem
|
116
|
-
- a `perform` instance method, which handles the actual API requests and response/error handling.
|
117
|
-
|
118
|
-
Note: Adaptors may support different operations for each resource type.
|
119
|
-
|
120
|
-
#### Searcher
|
121
|
-
|
122
|
-
Searchers are used to search objects in the ledger. A searcher takes an `adaptor`, `query` string and optional `pagination` hash. For example, to search customer's by name:
|
123
|
-
|
124
|
-
```ruby
|
125
|
-
searcher = LedgerSync::Adaptors::QuickBooksOnline::Customer::Searcher.new(
|
126
|
-
adaptor: adaptor # assuming this is defined,
|
127
|
-
query: 'test'
|
128
|
-
)
|
129
|
-
|
130
|
-
result = searcher.search # returns a LedgerSync::SearchResult
|
131
|
-
|
132
|
-
if result.success?
|
133
|
-
resources = result.resources
|
134
|
-
# Do something with found resources
|
135
|
-
else # result.failure?
|
136
|
-
raise result.error
|
137
|
-
end
|
138
|
-
|
139
|
-
# Different ledgers may use different pagination strategies. In order
|
140
|
-
# to get the next and previous set of results, you can use the following:
|
141
|
-
next_searcher = searcher.next_searcher
|
142
|
-
previous_searcher = searcher.previous_searcher
|
143
|
-
```
|
144
|
-
|
145
|
-
## NetSuite
|
146
|
-
|
147
|
-
The NetSuite adaptor leverages NetSuite's REST API.
|
148
|
-
|
149
|
-
### Resource Metadata and Schemas
|
150
|
-
|
151
|
-
Due to NetSuites granular user permissions and custom attributes, resources and methods for those resources can vary from one user (a.k.a. token) to another. Because of this variance, there are some helper classes that allow you to retrieve NetSuite records, allowed methods, attributes/parameters, etc.
|
152
|
-
|
153
|
-
To retrieve the metadata for a record:
|
154
|
-
|
155
|
-
```ruby
|
156
|
-
metadata = LedgerSync::Adaptors::NetSuite::Record::Metadata.new(
|
157
|
-
adaptor: netsuite_adaptor, # Assuming this is previous defined
|
158
|
-
record: :customer
|
159
|
-
)
|
160
|
-
|
161
|
-
puts metadata.http_methods # Returns a list of LedgerSync::Adaptors::NetSuite::Record::HTTPMethod objects
|
162
|
-
puts metadata.properties # Returns a list of LedgerSync::Adaptors::NetSuite::Record::Property objects
|
163
|
-
```
|
164
|
-
|
165
|
-
### Reference
|
166
|
-
|
167
|
-
- [NetSuite REST API Documentation](https://docs.oracle.com/cloud/latest/netsuitecs_gs/NSTRW/NSTRW.pdf)
|
168
|
-
|
169
|
-
## NetSuite SOAP
|
170
|
-
|
171
|
-
LedgerSync supports the NetSuite SOAP adaptor, leveraging [the NetSuite gem](https://github.com/NetSweet/netsuite). The adaptor and sample operations are provided, though the main NetSuite adaptor uses the REST API.
|
172
|
-
|
173
|
-
### Reference
|
174
|
-
|
175
|
-
- [NetSuite SOAP API Documentation](https://docs.oracle.com/cloud/latest/netsuitecs_gs/NSTWR/NSTWR.pdf)
|
176
|
-
|
177
|
-
|
178
|
-
## QuickBooks Online
|
179
|
-
|
180
|
-
### OAuth
|
181
|
-
|
182
|
-
QuickBooks Online utilizes OAuth 2.0, which requires frequent refreshing of the access token. The adaptor will handle this automatically, attempting a single token refresh on any single request authentication failure. Depending on how you use the library, every adaptor has implements a class method `ledger_attributes_to_save`, which is an array of attributes that may change as the adaptor is used. You can also call the instance method `ledger_attributes_to_save` which will be a hash of these values. It is a good practice to always store these attributes if you are saving access tokens in your database.
|
183
|
-
|
184
|
-
The adaptor also implements some helper methods for getting tokens. For example, you can set up an adaptor using the following:
|
185
|
-
|
186
|
-
```ruby
|
187
|
-
# Retrieve the following values from Intuit app settings
|
188
|
-
client_id = 'ID'
|
189
|
-
client_secret = 'SECRET'
|
190
|
-
redirect_uri = 'http://localhost:3000'
|
191
|
-
|
192
|
-
oauth_client = LedgerSync::Adaptors::QuickBooksOnline::OAuthClientHelper.new(
|
193
|
-
client_id: client_id,
|
194
|
-
client_secret: client_secret
|
195
|
-
)
|
196
|
-
|
197
|
-
puts oauth_client.authorization_url(redirect_uri: redirect_uri)
|
198
|
-
|
199
|
-
# Visit on the output URL and authorize a company.
|
200
|
-
# You will be redirected back to the redirect_uri.
|
201
|
-
# Copy the full url from your browser:
|
202
|
-
|
203
|
-
uri = 'https://localhost:3000/?code=FOO&state=BAR&realm_id=BAZ'
|
204
|
-
|
205
|
-
adaptor = LedgerSync::Adaptors::QuickBooksOnline::Adaptor.new_from_oauth_client_uri(
|
206
|
-
oauth_client: oauth_client,
|
207
|
-
uri: uri
|
208
|
-
)
|
209
|
-
|
210
|
-
# You can test that the auth works:
|
211
|
-
|
212
|
-
adaptor.refresh!
|
213
|
-
```
|
214
|
-
|
215
|
-
**Note: If you have a `.env` file storing your secrets, the adaptor will automatically update the variables and record previous values whenever values change**
|
216
|
-
|
217
|
-
### Webhooks
|
218
|
-
|
219
|
-
Reference: [QuickBooks Online Webhook Documentation](https://developer.intuit.com/app/developer/qbo/docs/develop/webhooks/managing-webhooks-notifications#validating-the-notification)
|
220
|
-
|
221
|
-
LedgerSync offers an easy way to validate and parse webhook payloads. It also allows you to easily fetch the resources referenced. You can create and use a webhook with the following:
|
222
|
-
|
223
|
-
```ruby
|
224
|
-
# Assuming `request` is the webhook request received from Quickbooks Online
|
225
|
-
webhook = LedgerSync::Adaptors::QuickBooksOnline::Webhook.new(
|
226
|
-
payload: request.body.read # It accepts a JSON string or hash
|
227
|
-
)
|
228
|
-
|
229
|
-
verification_token = WEBHOOK_VERIFICATION_TOKEN # You get this token when you create webhooks in the QuickBooks Online dashboard
|
230
|
-
signature = request.headers['intuit-signature']
|
231
|
-
raise 'Not valid' unless webhook.valid?(signature: signature, verification_token: verification_token)
|
232
|
-
|
233
|
-
# Although not yet used, webhooks may include notifications for multiple realms
|
234
|
-
webhook.notifications.each do |notification|
|
235
|
-
puts notification.realm_id
|
236
|
-
|
237
|
-
# Multiple events may be referenced.
|
238
|
-
notification.events.each do |event|
|
239
|
-
puts event.resource # Returns a LedgerSync resource with the `ledger_id` set
|
240
|
-
|
241
|
-
# Other helpful methods
|
242
|
-
notification.find_operation_class(adaptor: your_quickbooks_adaptor_instance) # The respective Find class
|
243
|
-
notification.find_operation(adaptor: your_quickbooks_adaptor_instance) # The initialized respective Find operation
|
244
|
-
notification.find(adaptor: your_quickbooks_adaptor_instance) # Performs a Find operation for the resource retrieving the latest version from QuickBooks Online
|
245
|
-
end
|
246
|
-
|
247
|
-
# Other helpful methods
|
248
|
-
notification.resources # All resources for a given webhook across all events
|
249
|
-
end
|
250
|
-
|
251
|
-
# Other helpful methods
|
252
|
-
webhook.events # All events for a given webhook across all realms
|
253
|
-
webhook.resources # All events for a given webhook across all realms and events
|
254
|
-
```
|
255
|
-
|
256
|
-
### Errors
|
257
|
-
|
258
|
-
- [QuickBooks Online Error Documentation](https://developer.intuit.com/app/developer/qbo/docs/develop/troubleshooting/error-codes)
|
259
|
-
|
260
|
-
## Tips and More
|
261
|
-
|
262
|
-
### Keyword Arguments
|
263
|
-
|
264
|
-
LedgerSync heavily uses ruby keyword arguments so as to make it clear what values are being passed and which attributes are required. When this README says something like "the `fun_function` function takes the argument `foo`" that translates to `fun_function(foo: :some_value)`.
|
265
|
-
|
266
|
-
### Fingerprints
|
267
|
-
|
268
|
-
Most objects in LedgerSync can be fingerprinted by calling the instance method `fingerprint`. For example:
|
269
|
-
|
270
|
-
```ruby
|
271
|
-
puts LedgerSync::Customer.new.fingerprint # "b3eab7ec00431a4ae0468fee72e5ba8f"
|
272
|
-
|
273
|
-
puts LedgerSync::Customer.new.fingerprint == LedgerSync::Customer.new.fingerprint # true
|
274
|
-
puts LedgerSync::Customer.new.fingerprint == LedgerSync::Customer.new(name: :foo).fingerprint # false
|
275
|
-
puts LedgerSync::Customer.new.fingerprint == LedgerSync::Payment.new.fingerprint # false
|
276
|
-
```
|
277
|
-
|
278
|
-
Fingerprints are used to compare objects. This method is used in de-duping objects, as it only considers the data inside and not the instance itself (as shown above).
|
279
|
-
|
280
|
-
### Serialization
|
281
|
-
|
282
|
-
Most objects in LedgerSync can be serialized by calling the instance method `serialize`. For example:
|
283
|
-
|
284
|
-
```ruby
|
285
|
-
puts LedgerSync::Payment.new(
|
286
|
-
customer: LedgerSync::Customer.new
|
287
|
-
)
|
288
|
-
|
289
|
-
{
|
290
|
-
root: "LedgerSync::Payment/8eed81c0177801a001f2544f0c85e21d",
|
291
|
-
objects: {
|
292
|
-
"LedgerSync::Payment/8eed81c0177801a001f2544f0c85e21d": {
|
293
|
-
id: "LedgerSync::Payment/8eed81c0177801a001f2544f0c85e21d",
|
294
|
-
object: "LedgerSync::Payment",
|
295
|
-
fingeprint: "8eed81c0177801a001f2544f0c85e21d",
|
296
|
-
data: {
|
297
|
-
currency: nil,
|
298
|
-
amount: nil,
|
299
|
-
customer: {
|
300
|
-
object: "reference",
|
301
|
-
id: "LedgerSync::Customer/b3eab7ec00431a4ae0468fee72e5ba8f"
|
302
|
-
},
|
303
|
-
external_id: "",
|
304
|
-
ledger_id: nil,
|
305
|
-
|
306
|
-
}
|
307
|
-
},
|
308
|
-
"LedgerSync::Customer/b3eab7ec00431a4ae0468fee72e5ba8f": {
|
309
|
-
id: "LedgerSync::Customer/b3eab7ec00431a4ae0468fee72e5ba8f",
|
310
|
-
object: "LedgerSync::Customer",
|
311
|
-
fingeprint: "b3eab7ec00431a4ae0468fee72e5ba8f",
|
312
|
-
data: {
|
313
|
-
name: nil,
|
314
|
-
email: nil,
|
315
|
-
phone_number: nil,
|
316
|
-
external_id: "",
|
317
|
-
ledger_id: nil
|
318
|
-
}
|
319
|
-
}
|
320
|
-
}
|
321
|
-
}
|
322
|
-
```
|
323
|
-
|
324
|
-
The serialization of any object follows the same structure. There is a `:root` key that holds the ID of the root object. There is also an `:objects` hash that contains all of the objects for this serialization. As you can see, unique nested objects listed in the `:objects` hash and referenced using a "reference object", in this case:
|
325
|
-
|
326
|
-
```ruby
|
327
|
-
{
|
328
|
-
object: "reference",
|
329
|
-
id: "LedgerSync::Customer/b3eab7ec00431a4ae0468fee72e5ba8f"
|
330
|
-
}
|
331
|
-
```
|
332
|
-
|
333
|
-
## Test Adaptor
|
334
|
-
|
335
|
-
LedgerSync offers a test adaptor `LedgerSync::Adaptors::Test::Adaptor` that you can easily use and stub without requiring API requests. For example:
|
336
|
-
|
337
|
-
```ruby
|
338
|
-
|
339
|
-
operation = LedgerSync::Adaptors::Test::Customer::Operations::Create.new(
|
340
|
-
adaptor: LedgerSync::Adaptors::Test::Adaptor.new,
|
341
|
-
resource: LedgerSync::Customer.new(name: 'Test Customer')
|
342
|
-
)
|
343
|
-
|
344
|
-
expect(operation).to be_valid
|
345
|
-
|
346
|
-
result = operation.perform
|
347
|
-
expect(result).to be_a(LedgerSync::OperationResult::Success)
|
348
|
-
expect(result).to be_success
|
349
|
-
|
350
|
-
expect { operation.perform }.to raise_error(PerformedOperationError)
|
351
|
-
```
|
352
|
-
|
353
|
-
## Development
|
354
|
-
|
355
|
-
After checking out the repo, run `bin/setup` to install dependencies.
|
356
|
-
|
357
|
-
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org)
|
358
|
-
|
359
|
-
### Testing
|
360
|
-
|
361
|
-
Run `bundle exec rspec` to run all unit, feature, and integration tests. Unlike QA Tests, all external HTTP requests and responses are stubbed.
|
362
|
-
|
363
|
-
### QA Testing
|
364
|
-
|
365
|
-
**BE SURE TO USE A TEST ENVIRONMENT ON YOUR LEDGER.**
|
366
|
-
|
367
|
-
To fully test the library against the actual ledgers, you can run `bin/qa` which will run all tests in the `qa/` directory. QA Tests are written in RSpec. Unlike tests in the `spec/` directory, QA tests allow external HTTP requests.
|
368
|
-
|
369
|
-
As these interact with real ledgers, you will need to provide secrets. You can do so in a `.env` file in the root directory. Copy the `.env.template` file to get started.
|
370
|
-
|
371
|
-
**WARNINGS:**
|
372
|
-
|
373
|
-
- **BE SURE TO USE A TEST ENVIRONMENT ON YOUR LEDGER.**
|
374
|
-
- **NEVER CHECK IN YOUR SECRETS (e.g. the `.env` file).**
|
375
|
-
- Because these tests actually create and modify resources, they attempt to do "cleanup" by deleting any newly created resources. This process could fail, and you may need to delete these resources manually.
|
376
|
-
|
377
|
-
### Console
|
378
|
-
|
379
|
-
Run `bundle console` to start and interactive console with the library already loaded. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
380
|
-
|
381
|
-
## Deployment
|
382
|
-
|
383
|
-
To deploy a new version of the gem to RubyGems, you can use the `release.sh` script in the root. The script takes advantage of [the bump gem](https://github.com/gregorym/bump). So you may call the script using any of the following:
|
384
|
-
|
385
|
-
```bash
|
386
|
-
# Version Format: MAJOR.MINOR.PATCH
|
387
|
-
./release.sh patch # to bump X in 1.1.X
|
388
|
-
./release.sh minor # to bump X in 1.X.1
|
389
|
-
./release.sh major # to bump X in X.1.1
|
390
|
-
```
|
391
|
-
|
392
|
-
### Contributing
|
393
|
-
|
394
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/LedgerSync/ledger_sync. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
395
|
-
|
396
|
-
### License
|
397
|
-
|
398
|
-
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
399
|
-
|
400
|
-
### Code of Conduct
|
401
|
-
|
402
|
-
Everyone interacting in the LedgerSync project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/LedgerSync/ledger_sync/blob/master/CODE_OF_CONDUCT.md).
|
403
|
-
|
404
|
-
# Maintainers
|
19
|
+
## Maintainers
|
405
20
|
|
406
21
|
A big thank you to our maintainers:
|
407
22
|
|
408
23
|
- [@ryanwjackson](https://github.com/ryanwjackson)
|
409
24
|
- [@jozefvaclavik](https://github.com/jozefvaclavik)
|
410
|
-
-
|
25
|
+
- [@SeanBolt](https://github.com/SeanBolt)
|
26
|
+
- And the whole [Modern Treasury](https://www.moderntreasury.com) team
|