xero-ruby 1.2.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +26 -1
  3. data/build_notes.md +17 -0
  4. data/docs/accounting/AccountingApi.md +23 -11
  5. data/docs/accounting/ManualJournalLine.md +2 -0
  6. data/docs/accounting/Organisation.md +1 -1
  7. data/docs/accounting/Report.md +1 -1
  8. data/docs/accounting/{TenNinteyNineContact.md → TenNinetyNineContact.md} +2 -2
  9. data/lib/xero-ruby.rb +2 -2
  10. data/lib/xero-ruby/api/accounting_api.rb +21 -7
  11. data/lib/xero-ruby/api/asset_api.rb +1 -1
  12. data/lib/xero-ruby/api/project_api.rb +1 -1
  13. data/lib/xero-ruby/api_client.rb +66 -31
  14. data/lib/xero-ruby/api_error.rb +1 -1
  15. data/lib/xero-ruby/configuration.rb +1 -4
  16. data/lib/xero-ruby/models/accounting/account.rb +7 -2
  17. data/lib/xero-ruby/models/accounting/account_type.rb +1 -1
  18. data/lib/xero-ruby/models/accounting/accounts.rb +5 -1
  19. data/lib/xero-ruby/models/accounting/accounts_payable.rb +7 -3
  20. data/lib/xero-ruby/models/accounting/accounts_receivable.rb +7 -3
  21. data/lib/xero-ruby/models/accounting/address.rb +5 -1
  22. data/lib/xero-ruby/models/accounting/allocation.rb +6 -2
  23. data/lib/xero-ruby/models/accounting/allocations.rb +5 -1
  24. data/lib/xero-ruby/models/accounting/attachment.rb +5 -1
  25. data/lib/xero-ruby/models/accounting/attachments.rb +5 -1
  26. data/lib/xero-ruby/models/accounting/balances.rb +5 -1
  27. data/lib/xero-ruby/models/accounting/bank_transaction.rb +9 -5
  28. data/lib/xero-ruby/models/accounting/bank_transactions.rb +5 -1
  29. data/lib/xero-ruby/models/accounting/bank_transfer.rb +7 -3
  30. data/lib/xero-ruby/models/accounting/bank_transfers.rb +5 -1
  31. data/lib/xero-ruby/models/accounting/batch_payment.rb +6 -2
  32. data/lib/xero-ruby/models/accounting/batch_payment_details.rb +5 -1
  33. data/lib/xero-ruby/models/accounting/batch_payments.rb +5 -1
  34. data/lib/xero-ruby/models/accounting/bill.rb +5 -1
  35. data/lib/xero-ruby/models/accounting/branding_theme.rb +5 -1
  36. data/lib/xero-ruby/models/accounting/branding_themes.rb +5 -1
  37. data/lib/xero-ruby/models/accounting/cis_org_setting.rb +5 -1
  38. data/lib/xero-ruby/models/accounting/cis_setting.rb +5 -1
  39. data/lib/xero-ruby/models/accounting/cis_settings.rb +5 -1
  40. data/lib/xero-ruby/models/accounting/contact.rb +6 -2
  41. data/lib/xero-ruby/models/accounting/contact_group.rb +5 -1
  42. data/lib/xero-ruby/models/accounting/contact_groups.rb +5 -1
  43. data/lib/xero-ruby/models/accounting/contact_person.rb +5 -1
  44. data/lib/xero-ruby/models/accounting/contacts.rb +5 -1
  45. data/lib/xero-ruby/models/accounting/country_code.rb +1 -1
  46. data/lib/xero-ruby/models/accounting/credit_note.rb +10 -6
  47. data/lib/xero-ruby/models/accounting/credit_notes.rb +5 -1
  48. data/lib/xero-ruby/models/accounting/currencies.rb +5 -1
  49. data/lib/xero-ruby/models/accounting/currency.rb +5 -1
  50. data/lib/xero-ruby/models/accounting/currency_code.rb +1 -1
  51. data/lib/xero-ruby/models/accounting/element.rb +5 -1
  52. data/lib/xero-ruby/models/accounting/employee.rb +5 -1
  53. data/lib/xero-ruby/models/accounting/employees.rb +5 -1
  54. data/lib/xero-ruby/models/accounting/error.rb +5 -1
  55. data/lib/xero-ruby/models/accounting/expense_claim.rb +8 -4
  56. data/lib/xero-ruby/models/accounting/expense_claims.rb +5 -1
  57. data/lib/xero-ruby/models/accounting/external_link.rb +5 -1
  58. data/lib/xero-ruby/models/accounting/history_record.rb +5 -1
  59. data/lib/xero-ruby/models/accounting/history_records.rb +5 -1
  60. data/lib/xero-ruby/models/accounting/invoice.rb +14 -10
  61. data/lib/xero-ruby/models/accounting/invoice_reminder.rb +5 -1
  62. data/lib/xero-ruby/models/accounting/invoice_reminders.rb +5 -1
  63. data/lib/xero-ruby/models/accounting/invoices.rb +5 -1
  64. data/lib/xero-ruby/models/accounting/item.rb +7 -3
  65. data/lib/xero-ruby/models/accounting/items.rb +5 -1
  66. data/lib/xero-ruby/models/accounting/journal.rb +5 -1
  67. data/lib/xero-ruby/models/accounting/journal_line.rb +8 -4
  68. data/lib/xero-ruby/models/accounting/journals.rb +5 -1
  69. data/lib/xero-ruby/models/accounting/line_amount_types.rb +1 -1
  70. data/lib/xero-ruby/models/accounting/line_item.rb +11 -7
  71. data/lib/xero-ruby/models/accounting/line_item_tracking.rb +5 -1
  72. data/lib/xero-ruby/models/accounting/linked_transaction.rb +5 -1
  73. data/lib/xero-ruby/models/accounting/linked_transactions.rb +5 -1
  74. data/lib/xero-ruby/models/accounting/manual_journal.rb +5 -1
  75. data/lib/xero-ruby/models/accounting/manual_journal_line.rb +18 -4
  76. data/lib/xero-ruby/models/accounting/manual_journals.rb +5 -1
  77. data/lib/xero-ruby/models/accounting/online_invoice.rb +5 -1
  78. data/lib/xero-ruby/models/accounting/online_invoices.rb +5 -1
  79. data/lib/xero-ruby/models/accounting/organisation.rb +33 -3
  80. data/lib/xero-ruby/models/accounting/organisations.rb +5 -1
  81. data/lib/xero-ruby/models/accounting/overpayment.rb +10 -6
  82. data/lib/xero-ruby/models/accounting/overpayments.rb +5 -1
  83. data/lib/xero-ruby/models/accounting/payment.rb +7 -3
  84. data/lib/xero-ruby/models/accounting/payment_delete.rb +5 -1
  85. data/lib/xero-ruby/models/accounting/payment_service.rb +5 -1
  86. data/lib/xero-ruby/models/accounting/payment_services.rb +5 -1
  87. data/lib/xero-ruby/models/accounting/payment_term.rb +5 -1
  88. data/lib/xero-ruby/models/accounting/payment_term_type.rb +1 -1
  89. data/lib/xero-ruby/models/accounting/payments.rb +5 -1
  90. data/lib/xero-ruby/models/accounting/phone.rb +5 -1
  91. data/lib/xero-ruby/models/accounting/prepayment.rb +10 -6
  92. data/lib/xero-ruby/models/accounting/prepayments.rb +5 -1
  93. data/lib/xero-ruby/models/accounting/purchase.rb +6 -2
  94. data/lib/xero-ruby/models/accounting/purchase_order.rb +10 -6
  95. data/lib/xero-ruby/models/accounting/purchase_orders.rb +5 -1
  96. data/lib/xero-ruby/models/accounting/quote.rb +9 -5
  97. data/lib/xero-ruby/models/accounting/quote_line_amount_types.rb +1 -1
  98. data/lib/xero-ruby/models/accounting/quote_status_codes.rb +2 -1
  99. data/lib/xero-ruby/models/accounting/quotes.rb +5 -1
  100. data/lib/xero-ruby/models/accounting/receipt.rb +8 -4
  101. data/lib/xero-ruby/models/accounting/receipts.rb +5 -1
  102. data/lib/xero-ruby/models/accounting/repeating_invoice.rb +8 -4
  103. data/lib/xero-ruby/models/accounting/repeating_invoices.rb +5 -1
  104. data/lib/xero-ruby/models/accounting/report.rb +6 -2
  105. data/lib/xero-ruby/models/accounting/report_attribute.rb +5 -1
  106. data/lib/xero-ruby/models/accounting/report_cell.rb +5 -1
  107. data/lib/xero-ruby/models/accounting/report_fields.rb +5 -1
  108. data/lib/xero-ruby/models/accounting/report_row.rb +5 -1
  109. data/lib/xero-ruby/models/accounting/report_rows.rb +5 -1
  110. data/lib/xero-ruby/models/accounting/report_with_row.rb +5 -1
  111. data/lib/xero-ruby/models/accounting/report_with_rows.rb +5 -1
  112. data/lib/xero-ruby/models/accounting/reports.rb +5 -1
  113. data/lib/xero-ruby/models/accounting/request_empty.rb +5 -1
  114. data/lib/xero-ruby/models/accounting/row_type.rb +1 -1
  115. data/lib/xero-ruby/models/accounting/sales_tracking_category.rb +5 -1
  116. data/lib/xero-ruby/models/accounting/schedule.rb +5 -1
  117. data/lib/xero-ruby/models/accounting/tax_component.rb +6 -2
  118. data/lib/xero-ruby/models/accounting/tax_rate.rb +7 -3
  119. data/lib/xero-ruby/models/accounting/tax_rates.rb +5 -1
  120. data/lib/xero-ruby/models/accounting/tax_type.rb +1 -1
  121. data/lib/xero-ruby/models/accounting/{ten_nintey_nine_contact.rb → ten_ninety_nine_contact.rb} +21 -17
  122. data/lib/xero-ruby/models/accounting/time_zone.rb +1 -1
  123. data/lib/xero-ruby/models/accounting/tracking_categories.rb +5 -1
  124. data/lib/xero-ruby/models/accounting/tracking_category.rb +5 -1
  125. data/lib/xero-ruby/models/accounting/tracking_option.rb +5 -1
  126. data/lib/xero-ruby/models/accounting/tracking_options.rb +5 -1
  127. data/lib/xero-ruby/models/accounting/user.rb +5 -1
  128. data/lib/xero-ruby/models/accounting/users.rb +5 -1
  129. data/lib/xero-ruby/models/accounting/validation_error.rb +5 -1
  130. data/lib/xero-ruby/models/assets/asset.rb +8 -4
  131. data/lib/xero-ruby/models/assets/asset_status.rb +1 -1
  132. data/lib/xero-ruby/models/assets/asset_status_query_param.rb +1 -1
  133. data/lib/xero-ruby/models/assets/asset_type.rb +5 -1
  134. data/lib/xero-ruby/models/assets/assets.rb +5 -1
  135. data/lib/xero-ruby/models/assets/book_depreciation_detail.rb +11 -7
  136. data/lib/xero-ruby/models/assets/book_depreciation_setting.rb +6 -2
  137. data/lib/xero-ruby/models/assets/error.rb +5 -1
  138. data/lib/xero-ruby/models/assets/field_validation_errors_element.rb +5 -1
  139. data/lib/xero-ruby/models/assets/pagination.rb +5 -1
  140. data/lib/xero-ruby/models/assets/resource_validation_errors_element.rb +5 -1
  141. data/lib/xero-ruby/models/assets/setting.rb +5 -1
  142. data/lib/xero-ruby/models/projects/amount.rb +6 -2
  143. data/lib/xero-ruby/models/projects/charge_type.rb +1 -1
  144. data/lib/xero-ruby/models/projects/currency_code.rb +1 -1
  145. data/lib/xero-ruby/models/projects/error.rb +5 -1
  146. data/lib/xero-ruby/models/projects/pagination.rb +5 -1
  147. data/lib/xero-ruby/models/projects/project.rb +5 -1
  148. data/lib/xero-ruby/models/projects/project_create_or_update.rb +6 -2
  149. data/lib/xero-ruby/models/projects/project_patch.rb +5 -1
  150. data/lib/xero-ruby/models/projects/project_status.rb +1 -1
  151. data/lib/xero-ruby/models/projects/project_user.rb +5 -1
  152. data/lib/xero-ruby/models/projects/project_users.rb +5 -1
  153. data/lib/xero-ruby/models/projects/projects.rb +5 -1
  154. data/lib/xero-ruby/models/projects/task.rb +5 -1
  155. data/lib/xero-ruby/models/projects/task_create_or_update.rb +5 -1
  156. data/lib/xero-ruby/models/projects/tasks.rb +5 -1
  157. data/lib/xero-ruby/models/projects/time_entries.rb +5 -1
  158. data/lib/xero-ruby/models/projects/time_entry.rb +5 -1
  159. data/lib/xero-ruby/models/projects/time_entry_create_or_update.rb +5 -1
  160. data/lib/xero-ruby/version.rb +2 -2
  161. data/spec/accounting/models/ten_nintey_nine_contact_spec.rb +6 -6
  162. data/spec/api_client_spec.rb +8 -10
  163. data/xero-ruby.gemspec +1 -2
  164. metadata +5 -5
  165. data/xero-ruby.gem +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b7e332228c5727298e0b8c261d41c8045836097801b3394df3e4162113ddcac1
4
- data.tar.gz: f140c421f16483696de6b103c9a56abdb38719174a11ac8d64aa14bf3c29a41b
3
+ metadata.gz: c469455936635d16067b4269ad96bda3ae65b7d8f9a34399532b380a7f34d72b
4
+ data.tar.gz: '039093400b943441b6f987a279cc981c23052e6575047f301ba9527192b26d34'
5
5
  SHA512:
6
- metadata.gz: 23448878790a25e553a847cab323c44b8588d18bd365a5dd0c9f32fefad1c38cdad24647fbd84935c4d75e15d725829ba8a12072561615c1ff90635b69ce098c
7
- data.tar.gz: a63e52f263263545f63e1b402ffb29d1ada1d5dff9bdb7ccc9ba0a728458d8e18643f144590f41948f356b9b00b32135a00e06aefe4bc57cbddb41efc5876c7d
6
+ metadata.gz: bcc87f93d7203239d688b12e4d0f7496953fb1563cd4d3865384f3d9a51342d18b44029c8c2af4670d55e71c27e0561df1c4e24d05bea7afd64da1ac679d0610
7
+ data.tar.gz: 9362cfe1d6822dc0caedad0213ec31c35172503bf8da0af3c145e80c5794dbed5122fc739d02ed7ce4234db8d9e159d7458cea082efe42152a31be4106a7b377
data/README.md CHANGED
@@ -7,13 +7,13 @@ Xero Ruby SDK for OAuth 2.0 generated from [Xero API OpenAPI Spec](https://githu
7
7
  Xero Ruby SDK supports Xero's OAuth2.0 authentication (token generation & refresh) and supports the following Xero API sets.
8
8
  * [accounting](https://developer.xero.com/documentation/api/api-overview)
9
9
  * [assets](https://developer.xero.com/documentation/assets-api/overview)
10
+ * [projects](https://developer.xero.com/documentation/projects/overview-projects)
10
11
 
11
12
  Coming soon
12
13
  * bank feeds
13
14
  * payroll (AU))
14
15
  * payroll (NZ/UK)
15
16
  * files
16
- * projects
17
17
  * xero hq
18
18
 
19
19
  ## Looking for OAuth 1.0a support?
@@ -119,6 +119,10 @@ token_set = xero_client.token_set
119
119
  ```
120
120
 
121
121
  ## API Usage
122
+ > Comprehensive xero-ruby API usage is showcased here: https://github.com/XeroAPI/xero-ruby-oauth2-app
123
+
124
+ Here is the basic workflow of using SDK once you have a valid `access_token` (and `token_set`) stored on an instance of the `xero_client`
125
+
122
126
  ```ruby
123
127
  require 'xero-ruby'
124
128
 
@@ -126,10 +130,28 @@ token_set = xero_client.token_set
126
130
  xero_client.refresh_token_set(user.token_set)
127
131
 
128
132
  # Accounting API set (https://github.com/XeroAPI/xero-ruby/blob/master/accounting/lib/xero-ruby/api/accounting_api.rb)
133
+
134
+ # Examples
129
135
  invoices = xero_client.accounting_api.get_invoices(user.active_tenant_id).invoices
130
136
  accounts = xero_client.accounting_api.get_accounts(user.active_tenant_id).accounts
131
137
  contacts = xero_client.accounting_api.get_contacts(user.active_tenant_id).contacts
132
138
 
139
+ contacts = xero_client.accounting_api.get_contacts(current_user.active_tenant_id).contacts
140
+ invoices = { invoices: [{ type: XeroRuby::Accounting::Invoice::ACCREC, contact: { contact_id: contacts[0].contact_id }, line_items: [{ description: "Acme Tires", quantity: BigDecimal("2.0"), unit_amount: BigDecimal("20.99"), account_code: "600", tax_type: XeroRuby::Accounting::TaxType::NONE }], date: "2019-03-11", due_date: "2018-12-10", reference: "Website Design", status: XeroRuby::Accounting::Invoice::DRAFT }]}
141
+ invoice = xero_client.accounting_api.create_invoices(current_user.active_tenant_id, invoices).invoices.first
142
+
143
+ payment = xero_client.accounting_api.get_payments(current_user.active_tenant_id).payments.first
144
+ history_records = { history_records:[ { details: "This payment now has some History #{rand(10000)}" } ]}
145
+ payment_history = xero_client.accounting_api.create_payment_history(user.active_tenant_id, payment.payment_id, history_records)
146
+
147
+ account = xero_client.accounting_api.get_accounts(current_user.active_tenant_id).accounts.first
148
+ file_name = "an-account-filename.png"
149
+ opts = {
150
+ include_online: true # Boolean | Allows an attachment to be seen by the end customer within their online invoice
151
+ }
152
+ file = File.read(Rails.root.join('app/assets/images/xero-api.png'))
153
+ attachment = xero_client.accounting_api.create_account_attachment_by_file_name(current_user.active_tenant_id, @account.account_id, file_name, file, opts)
154
+
133
155
  # Asset API set (https://github.com/XeroAPI/xero-ruby/blob/master/accounting/lib/xero-ruby/api/asset_api.rb)
134
156
  asset = {
135
157
  "assetName": "AssetName: #{rand(10000)}",
@@ -137,6 +159,9 @@ token_set = xero_client.token_set
137
159
  "assetStatus": "DRAFT"
138
160
  }
139
161
  asset = xero_client.asset_api.create_asset(current_user.active_tenant_id, asset)
162
+
163
+ # Project API set (https://github.com/XeroAPI/xero-ruby/blob/master/docs/projects/ProjectApi.md)
164
+ projects = xero_client.project_api.get_projects(current_user.active_tenant_id).items
140
165
  ```
141
166
 
142
167
  If you have use cases outside of these examples or this readmy, please let us know!
@@ -0,0 +1,17 @@
1
+ Developing gem locally
2
+
3
+ > xero-ruby
4
+ ```bash
5
+ gem build
6
+ mv xero-ruby-<vsn>.gem xero-ruby.gem
7
+ ```
8
+
9
+ > xero-ruby-oauth2-app
10
+
11
+ Replace gem file with local path:
12
+ `gem 'xero-ruby', path: '/Users/chris.knight/code/sdks/xero-ruby/'`
13
+ ```bash
14
+ bundle install
15
+ ```
16
+
17
+ Deploying to Rubygems
@@ -6,7 +6,7 @@ Method | HTTP request | Description
6
6
  ------------- | ------------- | -------------
7
7
  [**create_account**](AccountingApi.md#create_account) | **PUT** /Accounts | Allows you to create a new chart of accounts
8
8
  [**create_account_attachment_by_file_name**](AccountingApi.md#create_account_attachment_by_file_name) | **PUT** /Accounts/{AccountID}/Attachments/{FileName} | Allows you to create Attachment on Account
9
- [**create_bank_transaction_attachment_by_file_name**](AccountingApi.md#create_bank_transaction_attachment_by_file_name) | **PUT** /BankTransactions/{BankTransactionID}/Attachments/{FileName} | Allows you to createa an Attachment on BankTransaction by Filename
9
+ [**create_bank_transaction_attachment_by_file_name**](AccountingApi.md#create_bank_transaction_attachment_by_file_name) | **PUT** /BankTransactions/{BankTransactionID}/Attachments/{FileName} | Allows you to create an Attachment on BankTransaction by Filename
10
10
  [**create_bank_transaction_history_record**](AccountingApi.md#create_bank_transaction_history_record) | **PUT** /BankTransactions/{BankTransactionID}/History | Allows you to create history record for a bank transactions
11
11
  [**create_bank_transactions**](AccountingApi.md#create_bank_transactions) | **PUT** /BankTransactions | Allows you to create one or more spend or receive money transaction
12
12
  [**create_bank_transfer**](AccountingApi.md#create_bank_transfer) | **PUT** /BankTransfers | Allows you to create a bank transfers
@@ -186,7 +186,7 @@ Method | HTTP request | Description
186
186
  [**get_users**](AccountingApi.md#get_users) | **GET** /Users | Allows you to retrieve users
187
187
  [**update_account**](AccountingApi.md#update_account) | **POST** /Accounts/{AccountID} | Allows you to update a chart of accounts
188
188
  [**update_account_attachment_by_file_name**](AccountingApi.md#update_account_attachment_by_file_name) | **POST** /Accounts/{AccountID}/Attachments/{FileName} | Allows you to update Attachment on Account by Filename
189
- [**update_bank_transaction**](AccountingApi.md#update_bank_transaction) | **POST** /BankTransactions/{BankTransactionID} |
189
+ [**update_bank_transaction**](AccountingApi.md#update_bank_transaction) | **POST** /BankTransactions/{BankTransactionID} | Allows you to update a single spend or receive money transaction
190
190
  [**update_bank_transaction_attachment_by_file_name**](AccountingApi.md#update_bank_transaction_attachment_by_file_name) | **POST** /BankTransactions/{BankTransactionID}/Attachments/{FileName} | Allows you to update an Attachment on BankTransaction by Filename
191
191
  [**update_bank_transfer_attachment_by_file_name**](AccountingApi.md#update_bank_transfer_attachment_by_file_name) | **POST** /BankTransfers/{BankTransferID}/Attachments/{FileName} |
192
192
  [**update_contact**](AccountingApi.md#update_contact) | **POST** /Contacts/{ContactID} |
@@ -360,7 +360,7 @@ Name | Type | Description | Notes
360
360
 
361
361
  > Attachments create_bank_transaction_attachment_by_file_name(xero_tenant_id, bank_transaction_id, file_name, body)
362
362
 
363
- Allows you to createa an Attachment on BankTransaction by Filename
363
+ Allows you to create an Attachment on BankTransaction by Filename
364
364
 
365
365
  ### Example
366
366
 
@@ -394,7 +394,7 @@ bank_transaction_id = '00000000-0000-0000-000-000000000000' # String | Xero gene
394
394
  file_name = 'xero-dev.jpg' # String | The name of the file being attached
395
395
  body = 'body_example' # String | Byte array of file in body of request
396
396
  begin
397
- #Allows you to createa an Attachment on BankTransaction by Filename
397
+ #Allows you to create an Attachment on BankTransaction by Filename
398
398
  result = api_instance.create_bank_transaction_attachment_by_file_name(xero_tenant_id, bank_transaction_id, file_name, body)
399
399
  p result
400
400
  rescue XeroRuby::Accounting::ApiError => e
@@ -1132,7 +1132,7 @@ api_instance = xero_client.accounting_api
1132
1132
  api_instance = xero_client.asset_api
1133
1133
  # :projects_api
1134
1134
  api_instance = xero_client.projects_api
1135
- contacts = { contacts: [{ contactID: "a3675fc4-f8dd-4f03-ba5b-f1870566bcd7" }, { contactID: "4e1753b9-018a-4775-b6aa-1bc7871cfee3" }]}
1135
+ contacts = { contacts: [{ contact_id: "a3675fc4-f8dd-4f03-ba5b-f1870566bcd7" }, { contact_id: "4e1753b9-018a-4775-b6aa-1bc7871cfee3" }]}
1136
1136
 
1137
1137
  begin
1138
1138
  #Allows you to add Contacts to a Contact Group
@@ -1305,7 +1305,7 @@ Name | Type | Description | Notes
1305
1305
 
1306
1306
  ## create_credit_note_allocation
1307
1307
 
1308
- > Allocations create_credit_note_allocation(xero_tenant_id, credit_note_id, allocations)
1308
+ > Allocations create_credit_note_allocation(xero_tenant_id, credit_note_id, allocations, opts)
1309
1309
 
1310
1310
  Allows you to create Allocation on CreditNote
1311
1311
 
@@ -1336,9 +1336,13 @@ api_instance = xero_client.asset_api
1336
1336
  api_instance = xero_client.projects_api
1337
1337
  allocations = { allocations: [{ amount: 1.0, date: "2019-03-05", invoice: { invoice_id: "c45720a1-ade3-4a38-a064-d15489be6841", line_items: [], type: XeroRuby::Accounting::Invoice::ACCPAY, contact: {} }}]}
1338
1338
 
1339
+ opts = {
1340
+ summarize_errors: false # Boolean | If false return 200 OK and mix of successfully created obejcts and any with validation errors
1341
+ }
1342
+
1339
1343
  begin
1340
1344
  #Allows you to create Allocation on CreditNote
1341
- result = api_instance.create_credit_note_allocation(xero_tenant_id, credit_note_id, allocations)
1345
+ result = api_instance.create_credit_note_allocation(xero_tenant_id, credit_note_id, allocations, opts)
1342
1346
  p result
1343
1347
  rescue XeroRuby::Accounting::ApiError => e
1344
1348
  puts "Exception when calling AccountingApi->create_credit_note_allocation: #{e}"
@@ -1353,6 +1357,7 @@ Name | Type | Description | Notes
1353
1357
  **xero_tenant_id** | **String**| Xero identifier for Tenant |
1354
1358
  **credit_note_id** | [**String**](.md)| Unique identifier for a Credit Note |
1355
1359
  **allocations** | [**Allocations**](Allocations.md)| Allocations with array of Allocation object in body of request. |
1360
+ **summarize_errors** | **Boolean**| If false return 200 OK and mix of successfully created obejcts and any with validation errors | [optional] [default to false]
1356
1361
 
1357
1362
  ### Return type
1358
1363
 
@@ -12874,9 +12879,9 @@ Name | Type | Description | Notes
12874
12879
 
12875
12880
  ## update_bank_transaction
12876
12881
 
12877
- > BankTransactions update_bank_transaction(xero_tenant_id, bank_transactions)
12878
-
12882
+ > BankTransactions update_bank_transaction(xero_tenant_id, bank_transaction_id, bank_transactions, opts)
12879
12883
 
12884
+ Allows you to update a single spend or receive money transaction
12880
12885
 
12881
12886
  ### Example
12882
12887
 
@@ -12903,10 +12908,15 @@ api_instance = xero_client.accounting_api
12903
12908
  api_instance = xero_client.asset_api
12904
12909
  # :projects_api
12905
12910
  api_instance = xero_client.projects_api
12906
- { bank_transactions: [{ type: XeroRuby::Accounting::BankTransaction::SPEND, date: "2019-02-25", reference: "You just updated", status: XeroRuby::Accounting::BankTransaction::AUTHORISED, bank_transaction_id: "00000000-0000-0000-000-000000000000", line_items: [], contact: {}, bank_account: { account_id: "00000000-0000-0000-000-000000000000" }}]} summary: Allows you to update a single spend or receive money transaction parameters: - required: true in: path name: BankTransactionID description: Xero generated unique identifier for a bank transaction example: "00000000-0000-0000-000-000000000000" schema: type: string format: uuid - $ref:
12911
+ { bank_transactions: [{ type: XeroRuby::Accounting::BankTransaction::SPEND, date: "2019-02-25", reference: "You just updated", status: XeroRuby::Accounting::BankTransaction::AUTHORISED, bank_transaction_id: "00000000-0000-0000-000-000000000000", line_items: [], contact: {}, bank_account: { account_id: "00000000-0000-0000-000-000000000000" }}]}
12912
+
12913
+ opts = {
12914
+ unitdp: 4 # Integer | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
12915
+ }
12907
12916
 
12908
12917
  begin
12909
- result = api_instance.update_bank_transaction(xero_tenant_id, bank_transactions)
12918
+ #Allows you to update a single spend or receive money transaction
12919
+ result = api_instance.update_bank_transaction(xero_tenant_id, bank_transaction_id, bank_transactions, opts)
12910
12920
  p result
12911
12921
  rescue XeroRuby::Accounting::ApiError => e
12912
12922
  puts "Exception when calling AccountingApi->update_bank_transaction: #{e}"
@@ -12919,7 +12929,9 @@ end
12919
12929
  Name | Type | Description | Notes
12920
12930
  ------------- | ------------- | ------------- | -------------
12921
12931
  **xero_tenant_id** | **String**| Xero identifier for Tenant |
12932
+ **bank_transaction_id** | [**String**](.md)| Xero generated unique identifier for a bank transaction |
12922
12933
  **bank_transactions** | [**BankTransactions**](BankTransactions.md)| |
12934
+ **unitdp** | **Integer**| e.g. unitdp&#x3D;4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts | [optional]
12923
12935
 
12924
12936
  ### Return type
12925
12937
 
@@ -6,6 +6,7 @@ Name | Type | Description | Notes
6
6
  ------------ | ------------- | ------------- | -------------
7
7
  **line_amount** | **Float** | total for line. Debits are positive, credits are negative value | [optional]
8
8
  **account_code** | **String** | See Accounts | [optional]
9
+ **account_id** | **String** | See Accounts | [optional]
9
10
  **description** | **String** | Description for journal line | [optional]
10
11
  **tax_type** | **String** | The tax type from TaxRates | [optional]
11
12
  **tracking** | [**Array&lt;TrackingCategory&gt;**](TrackingCategory.md) | Optional Tracking Category – see Tracking. Any JournalLine can have a maximum of 2 &lt;TrackingCategory&gt; elements. | [optional]
@@ -19,6 +20,7 @@ require 'XeroRuby::Accounting'
19
20
 
20
21
  instance = XeroRuby::Accounting::ManualJournalLine.new(line_amount: -2569.0,
21
22
  account_code: 720,
23
+ account_id: null,
22
24
  description: Coded incorrectly Office Equipment should be Computer Equipment,
23
25
  tax_type: null,
24
26
  tracking: null,
@@ -28,7 +28,7 @@ Name | Type | Description | Notes
28
28
  **end_of_year_lock_date** | **Date** | Shown if set. See lock dates | [optional]
29
29
  **created_date_utc** | **DateTime** | Timestamp when the organisation was created in Xero | [optional]
30
30
  **timezone** | [**TimeZone**](TimeZone.md) | | [optional]
31
- **organisation_entity_type** | **String** | Organisation Type | [optional]
31
+ **organisation_entity_type** | **String** | Organisation Entity Type | [optional]
32
32
  **short_code** | **String** | A unique identifier for the organisation. Potential uses. | [optional]
33
33
  **_class** | **String** | Organisation Classes describe which plan the Xero organisation is on (e.g. DEMO, TRIAL, PREMIUM) | [optional]
34
34
  **edition** | **String** | BUSINESS or PARTNER. Partner edition organisations are sold exclusively through accounting partners and have restricted functionality (e.g. no access to invoicing) | [optional]
@@ -10,7 +10,7 @@ Name | Type | Description | Notes
10
10
  **report_title** | **String** | See Prepayment Types | [optional]
11
11
  **report_date** | **String** | Date of report | [optional]
12
12
  **updated_date_utc** | **DateTime** | Updated Date | [optional]
13
- **contacts** | [**Array&lt;TenNinteyNineContact&gt;**](TenNinteyNineContact.md) | | [optional]
13
+ **contacts** | [**Array&lt;TenNinetyNineContact&gt;**](TenNinetyNineContact.md) | | [optional]
14
14
 
15
15
  ## Code Sample
16
16
 
@@ -1,4 +1,4 @@
1
- # XeroRuby::Accounting::TenNinteyNineContact
1
+ # XeroRuby::Accounting::TenNinetyNineContact
2
2
 
3
3
  ## Properties
4
4
 
@@ -32,7 +32,7 @@ Name | Type | Description | Notes
32
32
  ```ruby
33
33
  require 'XeroRuby::Accounting'
34
34
 
35
- instance = XeroRuby::Accounting::TenNinteyNineContact.new(box1: null,
35
+ instance = XeroRuby::Accounting::TenNinetyNineContact.new(box1: null,
36
36
  box2: null,
37
37
  box3: null,
38
38
  box4: null,
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 2.2.2
6
+ The version of the OpenAPI document: 2.2.11
7
7
  Contact: api@xero.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 4.3.1
@@ -152,7 +152,7 @@ require 'xero-ruby/models/accounting/tax_component'
152
152
  require 'xero-ruby/models/accounting/tax_rate'
153
153
  require 'xero-ruby/models/accounting/tax_rates'
154
154
  require 'xero-ruby/models/accounting/tax_type'
155
- require 'xero-ruby/models/accounting/ten_nintey_nine_contact'
155
+ require 'xero-ruby/models/accounting/ten_ninety_nine_contact'
156
156
  require 'xero-ruby/models/accounting/time_zone'
157
157
  require 'xero-ruby/models/accounting/tracking_categories'
158
158
  require 'xero-ruby/models/accounting/tracking_category'
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 2.2.2
6
+ The version of the OpenAPI document: 2.2.11
7
7
  Contact: api@xero.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 4.3.1
@@ -169,7 +169,7 @@ module XeroRuby
169
169
  return data, status_code, headers
170
170
  end
171
171
 
172
- # Allows you to createa an Attachment on BankTransaction by Filename
172
+ # Allows you to create an Attachment on BankTransaction by Filename
173
173
  # @param xero_tenant_id [String] Xero identifier for Tenant
174
174
  # @param bank_transaction_id [String] Xero generated unique identifier for a bank transaction
175
175
  # @param file_name [String] The name of the file being attached
@@ -181,7 +181,7 @@ module XeroRuby
181
181
  data
182
182
  end
183
183
 
184
- # Allows you to createa an Attachment on BankTransaction by Filename
184
+ # Allows you to create an Attachment on BankTransaction by Filename
185
185
  # @param xero_tenant_id [String] Xero identifier for Tenant
186
186
  # @param bank_transaction_id [String] Xero generated unique identifier for a bank transaction
187
187
  # @param file_name [String] The name of the file being attached
@@ -1218,6 +1218,7 @@ module XeroRuby
1218
1218
  # @param credit_note_id [String] Unique identifier for a Credit Note
1219
1219
  # @param allocations [Allocations] Allocations with array of Allocation object in body of request.
1220
1220
  # @param [Hash] opts the optional parameters
1221
+ # @option opts [Boolean] :summarize_errors If false return 200 OK and mix of successfully created obejcts and any with validation errors (default to false)
1221
1222
  # @return [Allocations]
1222
1223
  def create_credit_note_allocation(xero_tenant_id, credit_note_id, allocations, opts = {})
1223
1224
  data, _status_code, _headers = create_credit_note_allocation_with_http_info(xero_tenant_id, credit_note_id, allocations, opts)
@@ -1229,6 +1230,7 @@ module XeroRuby
1229
1230
  # @param credit_note_id [String] Unique identifier for a Credit Note
1230
1231
  # @param allocations [Allocations] Allocations with array of Allocation object in body of request.
1231
1232
  # @param [Hash] opts the optional parameters
1233
+ # @option opts [Boolean] :summarize_errors If false return 200 OK and mix of successfully created obejcts and any with validation errors
1232
1234
  # @return [Array<(Allocations, Integer, Hash)>] Allocations data, response status code and response headers
1233
1235
  def create_credit_note_allocation_with_http_info(xero_tenant_id, credit_note_id, allocations, opts = {})
1234
1236
  if @api_client.config.debugging
@@ -1251,6 +1253,7 @@ module XeroRuby
1251
1253
 
1252
1254
  # query parameters
1253
1255
  query_params = opts[:query_params] || {}
1256
+ query_params[:'summarizeErrors'] = opts[:'summarize_errors'] if !opts[:'summarize_errors'].nil?
1254
1257
 
1255
1258
  # header parameters
1256
1259
  header_params = opts[:header_params] || {}
@@ -13149,20 +13152,26 @@ module XeroRuby
13149
13152
  return data, status_code, headers
13150
13153
  end
13151
13154
 
13155
+ # Allows you to update a single spend or receive money transaction
13152
13156
  # @param xero_tenant_id [String] Xero identifier for Tenant
13157
+ # @param bank_transaction_id [String] Xero generated unique identifier for a bank transaction
13153
13158
  # @param bank_transactions [BankTransactions]
13154
13159
  # @param [Hash] opts the optional parameters
13160
+ # @option opts [Integer] :unitdp e.g. unitdp&#x3D;4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
13155
13161
  # @return [BankTransactions]
13156
- def update_bank_transaction(xero_tenant_id, bank_transactions, opts = {})
13157
- data, _status_code, _headers = update_bank_transaction_with_http_info(xero_tenant_id, bank_transactions, opts)
13162
+ def update_bank_transaction(xero_tenant_id, bank_transaction_id, bank_transactions, opts = {})
13163
+ data, _status_code, _headers = update_bank_transaction_with_http_info(xero_tenant_id, bank_transaction_id, bank_transactions, opts)
13158
13164
  data
13159
13165
  end
13160
13166
 
13167
+ # Allows you to update a single spend or receive money transaction
13161
13168
  # @param xero_tenant_id [String] Xero identifier for Tenant
13169
+ # @param bank_transaction_id [String] Xero generated unique identifier for a bank transaction
13162
13170
  # @param bank_transactions [BankTransactions]
13163
13171
  # @param [Hash] opts the optional parameters
13172
+ # @option opts [Integer] :unitdp e.g. unitdp&#x3D;4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts
13164
13173
  # @return [Array<(BankTransactions, Integer, Hash)>] BankTransactions data, response status code and response headers
13165
- def update_bank_transaction_with_http_info(xero_tenant_id, bank_transactions, opts = {})
13174
+ def update_bank_transaction_with_http_info(xero_tenant_id, bank_transaction_id, bank_transactions, opts = {})
13166
13175
  if @api_client.config.debugging
13167
13176
  @api_client.config.logger.debug 'Calling API: AccountingApi.update_bank_transaction ...'
13168
13177
  end
@@ -13170,15 +13179,20 @@ module XeroRuby
13170
13179
  if @api_client.config.client_side_validation && xero_tenant_id.nil?
13171
13180
  fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling AccountingApi.update_bank_transaction"
13172
13181
  end
13182
+ # verify the required parameter 'bank_transaction_id' is set
13183
+ if @api_client.config.client_side_validation && bank_transaction_id.nil?
13184
+ fail ArgumentError, "Missing the required parameter 'bank_transaction_id' when calling AccountingApi.update_bank_transaction"
13185
+ end
13173
13186
  # verify the required parameter 'bank_transactions' is set
13174
13187
  if @api_client.config.client_side_validation && bank_transactions.nil?
13175
13188
  fail ArgumentError, "Missing the required parameter 'bank_transactions' when calling AccountingApi.update_bank_transaction"
13176
13189
  end
13177
13190
  # resource path
13178
- local_var_path = '/BankTransactions/{BankTransactionID}'
13191
+ local_var_path = '/BankTransactions/{BankTransactionID}'.sub('{' + 'BankTransactionID' + '}', bank_transaction_id.to_s)
13179
13192
 
13180
13193
  # query parameters
13181
13194
  query_params = opts[:query_params] || {}
13195
+ query_params[:'unitdp'] = opts[:'unitdp'] if !opts[:'unitdp'].nil?
13182
13196
 
13183
13197
  # header parameters
13184
13198
  header_params = opts[:header_params] || {}
@@ -3,7 +3,7 @@
3
3
 
4
4
  #This is the Xero Assets API
5
5
 
6
- The version of the OpenAPI document: 2.2.6
6
+ The version of the OpenAPI document: 2.2.11
7
7
  Contact: api@xero.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 4.3.1
@@ -3,7 +3,7 @@
3
3
 
4
4
  #This is the Xero Projects API
5
5
 
6
- The version of the OpenAPI document: 2.2.6
6
+ The version of the OpenAPI document: 2.2.11
7
7
  Contact: api@xero.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 4.3.1
@@ -3,7 +3,7 @@
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
6
- The version of the OpenAPI document: 2.2.2
6
+ The version of the OpenAPI document: 2.2.11
7
7
  Contact: api@xero.com
8
8
  Generated by: https://openapi-generator.tech
9
9
  OpenAPI Generator version: 4.3.1
@@ -176,6 +176,7 @@ module XeroRuby
176
176
  end
177
177
 
178
178
  if opts[:return_type]
179
+ prepare_file(response) if opts[:return_type] == 'File'
179
180
  data = deserialize(response, opts[:return_type])
180
181
  else
181
182
  data = nil
@@ -222,7 +223,6 @@ module XeroRuby
222
223
  request.body = req_body
223
224
  request.url url
224
225
  request.params = query_params
225
- download_file(request) if opts[:return_type] == 'File'
226
226
  request
227
227
  end
228
228
 
@@ -376,33 +376,24 @@ module XeroRuby
376
376
  # process can use.
377
377
  #
378
378
  # @see Configuration#temp_folder_path
379
- def download_file(request)
380
- tempfile = nil
381
- encoding = nil
382
- request.on_headers do |response|
383
- content_disposition = response.headers['Content-Disposition']
384
- if content_disposition && content_disposition =~ /filename=/i
385
- filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
386
- prefix = sanitize_filename(filename)
387
- else
388
- prefix = 'download-'
389
- end
390
- prefix = prefix + '-' unless prefix.end_with?('-')
391
- encoding = response.body.encoding
392
- tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
393
- @tempfile = tempfile
394
- end
395
- request.on_body do |chunk|
396
- chunk.force_encoding(encoding)
397
- tempfile.write(chunk)
398
- end
399
- request.on_complete do |response|
400
- tempfile.close if tempfile
401
- @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
402
- "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
403
- "will be deleted automatically with GC. It's also recommended to delete the temp file "\
404
- "explicitly with `tempfile.delete`"
379
+ def prepare_file(response)
380
+ content_disposition = response.headers['Content-Disposition']
381
+ if content_disposition && content_disposition =~ /filename=/i
382
+ filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
383
+ prefix = sanitize_filename(filename)
384
+ else
385
+ prefix = 'download-'
405
386
  end
387
+ prefix = prefix + '-' unless prefix.end_with?('-')
388
+ encoding = response.body.encoding
389
+ tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
390
+ @tempfile = tempfile
391
+ tempfile.write(response.body)
392
+ tempfile.close if tempfile
393
+ @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
394
+ "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
395
+ "will be deleted automatically with GC. It's also recommended to delete the temp file "\
396
+ "explicitly with `tempfile.delete`"
406
397
  end
407
398
 
408
399
  # Sanitize filename by removing path.
@@ -485,11 +476,55 @@ module XeroRuby
485
476
  # @return [String] JSON string representation of the object
486
477
  def object_to_hash(obj)
487
478
  if obj.respond_to?(:to_hash)
488
- obj.to_hash
479
+ to_camel_keys(obj).to_hash
480
+ else
481
+ to_camel_keys(obj)
482
+ end
483
+ end
484
+
485
+ # START - Re-serializes snake_cased params to PascalCase required by XeroAPI
486
+ def to_camel_keys(value = self)
487
+ case value
488
+ when Array
489
+ value.map { |v| to_camel_keys(v) }
490
+ when Hash
491
+ Hash[value.map { |k, v| [camelize_key(k), to_camel_keys(v)] }]
492
+ else
493
+ value
494
+ end
495
+ end
496
+
497
+ def camelize_key(key, first_upper = true)
498
+ if key.is_a? Symbol
499
+ camelize(key.to_s, first_upper).to_sym
500
+ elsif key.is_a? String
501
+ camelize(key, first_upper)
502
+ else
503
+ key # Awrence can't camelize anything except strings and symbols
504
+ end
505
+ end
506
+
507
+ def camelize(snake_word, first_upper = true)
508
+ if first_upper
509
+ str = snake_word.to_s
510
+ str = gsubbed(str, /(?:^|_)([^_\s]+)/)
511
+ str = gsubbed(str, %r{/([^/]*)}, "::")
512
+ str
489
513
  else
490
- obj
514
+ parts = snake_word.split("_", 2)
515
+ parts[0] << camelize(parts[1]) if parts.size > 1
516
+ parts[0] || ""
517
+ end
518
+ end
519
+
520
+ def gsubbed(str, pattern, extra = "")
521
+ key_map_scronyms = { "id" => "ID" }
522
+ str = str.gsub(pattern) do
523
+ extra + (key_map_scronyms[Regexp.last_match(1)] || Regexp.last_match(1).capitalize)
491
524
  end
525
+ str
492
526
  end
527
+ # END - Re-serializes snake_cased params to PascalCase required by XeroAPI
493
528
 
494
529
  # Build parameter value according to the given collection format.
495
530
  # @param [String] collection_format one of :csv, :ssv, :tsv, :pipes and :multi
@@ -504,7 +539,7 @@ module XeroRuby
504
539
  when :pipes
505
540
  param.join('|')
506
541
  when :multi
507
- # return the array directly as typhoeus will handle it as expected
542
+ # return the array directly as http client will handle it as expected
508
543
  param
509
544
  else
510
545
  fail "unknown collection format: #{collection_format.inspect}"