xero-ruby 2.6.2 → 2.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +47 -46
  3. data/lib/xero-ruby.rb +5 -3
  4. data/lib/xero-ruby/api/accounting_api.rb +568 -568
  5. data/lib/xero-ruby/api/asset_api.rb +3 -7
  6. data/lib/xero-ruby/api/files_api.rb +172 -69
  7. data/lib/xero-ruby/api/payroll_au_api.rb +63 -63
  8. data/lib/xero-ruby/api/payroll_nz_api.rb +171 -171
  9. data/lib/xero-ruby/api/payroll_uk_api.rb +177 -183
  10. data/lib/xero-ruby/api/project_api.rb +45 -45
  11. data/lib/xero-ruby/api_client.rb +25 -88
  12. data/lib/xero-ruby/api_error.rb +1 -1
  13. data/lib/xero-ruby/configuration.rb +3 -3
  14. data/lib/xero-ruby/models/accounting/account.rb +2 -2
  15. data/lib/xero-ruby/models/accounting/account_type.rb +1 -1
  16. data/lib/xero-ruby/models/accounting/accounts.rb +2 -2
  17. data/lib/xero-ruby/models/accounting/accounts_payable.rb +2 -2
  18. data/lib/xero-ruby/models/accounting/accounts_receivable.rb +2 -2
  19. data/lib/xero-ruby/models/accounting/action.rb +2 -2
  20. data/lib/xero-ruby/models/accounting/actions.rb +2 -2
  21. data/lib/xero-ruby/models/accounting/address.rb +2 -2
  22. data/lib/xero-ruby/models/accounting/address_for_organisation.rb +2 -2
  23. data/lib/xero-ruby/models/accounting/allocation.rb +2 -2
  24. data/lib/xero-ruby/models/accounting/allocations.rb +2 -2
  25. data/lib/xero-ruby/models/accounting/attachment.rb +2 -2
  26. data/lib/xero-ruby/models/accounting/attachments.rb +2 -2
  27. data/lib/xero-ruby/models/accounting/balance_details.rb +2 -2
  28. data/lib/xero-ruby/models/accounting/balances.rb +2 -2
  29. data/lib/xero-ruby/models/accounting/bank_transaction.rb +2 -2
  30. data/lib/xero-ruby/models/accounting/bank_transactions.rb +2 -2
  31. data/lib/xero-ruby/models/accounting/bank_transfer.rb +2 -2
  32. data/lib/xero-ruby/models/accounting/bank_transfers.rb +2 -2
  33. data/lib/xero-ruby/models/accounting/batch_payment.rb +18 -6
  34. data/lib/xero-ruby/models/accounting/batch_payment_details.rb +2 -2
  35. data/lib/xero-ruby/models/accounting/batch_payments.rb +2 -2
  36. data/lib/xero-ruby/models/accounting/bill.rb +2 -2
  37. data/lib/xero-ruby/models/accounting/branding_theme.rb +2 -2
  38. data/lib/xero-ruby/models/accounting/branding_themes.rb +2 -2
  39. data/lib/xero-ruby/models/accounting/cis_org_setting.rb +2 -2
  40. data/lib/xero-ruby/models/{files/file_response204.rb → accounting/cis_org_settings.rb} +17 -15
  41. data/lib/xero-ruby/models/accounting/cis_setting.rb +2 -2
  42. data/lib/xero-ruby/models/accounting/cis_settings.rb +2 -2
  43. data/lib/xero-ruby/models/accounting/contact.rb +2 -2
  44. data/lib/xero-ruby/models/accounting/contact_group.rb +2 -2
  45. data/lib/xero-ruby/models/accounting/contact_groups.rb +2 -2
  46. data/lib/xero-ruby/models/accounting/contact_person.rb +2 -2
  47. data/lib/xero-ruby/models/accounting/contacts.rb +2 -2
  48. data/lib/xero-ruby/models/accounting/conversion_balances.rb +2 -2
  49. data/lib/xero-ruby/models/accounting/conversion_date.rb +2 -2
  50. data/lib/xero-ruby/models/accounting/country_code.rb +1 -1
  51. data/lib/xero-ruby/models/accounting/credit_note.rb +19 -7
  52. data/lib/xero-ruby/models/accounting/credit_notes.rb +2 -2
  53. data/lib/xero-ruby/models/accounting/currencies.rb +2 -2
  54. data/lib/xero-ruby/models/accounting/currency.rb +2 -2
  55. data/lib/xero-ruby/models/accounting/currency_code.rb +1 -1
  56. data/lib/xero-ruby/models/accounting/element.rb +2 -2
  57. data/lib/xero-ruby/models/accounting/employee.rb +2 -2
  58. data/lib/xero-ruby/models/accounting/employees.rb +2 -2
  59. data/lib/xero-ruby/models/accounting/error.rb +2 -2
  60. data/lib/xero-ruby/models/accounting/expense_claim.rb +2 -2
  61. data/lib/xero-ruby/models/accounting/expense_claims.rb +2 -2
  62. data/lib/xero-ruby/models/accounting/external_link.rb +2 -2
  63. data/lib/xero-ruby/models/accounting/history_record.rb +2 -2
  64. data/lib/xero-ruby/models/accounting/history_records.rb +2 -2
  65. data/lib/xero-ruby/models/accounting/import_summary.rb +2 -2
  66. data/lib/xero-ruby/models/accounting/import_summary_accounts.rb +10 -10
  67. data/lib/xero-ruby/models/accounting/import_summary_object.rb +2 -2
  68. data/lib/xero-ruby/models/accounting/import_summary_organisation.rb +2 -2
  69. data/lib/xero-ruby/models/accounting/invoice.rb +2 -2
  70. data/lib/xero-ruby/models/accounting/invoice_reminder.rb +2 -2
  71. data/lib/xero-ruby/models/accounting/invoice_reminders.rb +2 -2
  72. data/lib/xero-ruby/models/accounting/invoices.rb +2 -2
  73. data/lib/xero-ruby/models/accounting/item.rb +2 -2
  74. data/lib/xero-ruby/models/accounting/items.rb +2 -2
  75. data/lib/xero-ruby/models/accounting/journal.rb +2 -2
  76. data/lib/xero-ruby/models/accounting/journal_line.rb +2 -2
  77. data/lib/xero-ruby/models/accounting/journals.rb +2 -2
  78. data/lib/xero-ruby/models/accounting/line_amount_types.rb +1 -1
  79. data/lib/xero-ruby/models/accounting/line_item.rb +2 -2
  80. data/lib/xero-ruby/models/accounting/line_item_tracking.rb +2 -2
  81. data/lib/xero-ruby/models/accounting/linked_transaction.rb +2 -2
  82. data/lib/xero-ruby/models/accounting/linked_transactions.rb +2 -2
  83. data/lib/xero-ruby/models/accounting/manual_journal.rb +2 -2
  84. data/lib/xero-ruby/models/accounting/manual_journal_line.rb +2 -2
  85. data/lib/xero-ruby/models/accounting/manual_journals.rb +2 -2
  86. data/lib/xero-ruby/models/accounting/online_invoice.rb +2 -2
  87. data/lib/xero-ruby/models/accounting/online_invoices.rb +2 -2
  88. data/lib/xero-ruby/models/accounting/organisation.rb +2 -2
  89. data/lib/xero-ruby/models/accounting/organisations.rb +2 -2
  90. data/lib/xero-ruby/models/accounting/overpayment.rb +2 -2
  91. data/lib/xero-ruby/models/accounting/overpayments.rb +2 -2
  92. data/lib/xero-ruby/models/accounting/payment.rb +13 -3
  93. data/lib/xero-ruby/models/accounting/payment_delete.rb +2 -2
  94. data/lib/xero-ruby/models/accounting/payment_service.rb +2 -2
  95. data/lib/xero-ruby/models/accounting/payment_services.rb +2 -2
  96. data/lib/xero-ruby/models/accounting/payment_term.rb +2 -2
  97. data/lib/xero-ruby/models/accounting/payment_term_type.rb +1 -1
  98. data/lib/xero-ruby/models/accounting/payments.rb +2 -2
  99. data/lib/xero-ruby/models/accounting/phone.rb +2 -2
  100. data/lib/xero-ruby/models/accounting/prepayment.rb +2 -2
  101. data/lib/xero-ruby/models/accounting/prepayments.rb +2 -2
  102. data/lib/xero-ruby/models/accounting/purchase.rb +2 -2
  103. data/lib/xero-ruby/models/accounting/purchase_order.rb +2 -2
  104. data/lib/xero-ruby/models/accounting/purchase_orders.rb +2 -2
  105. data/lib/xero-ruby/models/accounting/quote.rb +2 -2
  106. data/lib/xero-ruby/models/accounting/quote_line_amount_types.rb +1 -1
  107. data/lib/xero-ruby/models/accounting/quote_status_codes.rb +1 -1
  108. data/lib/xero-ruby/models/accounting/quotes.rb +2 -2
  109. data/lib/xero-ruby/models/accounting/receipt.rb +2 -2
  110. data/lib/xero-ruby/models/accounting/receipts.rb +2 -2
  111. data/lib/xero-ruby/models/accounting/repeating_invoice.rb +2 -2
  112. data/lib/xero-ruby/models/accounting/repeating_invoices.rb +2 -2
  113. data/lib/xero-ruby/models/accounting/report.rb +2 -2
  114. data/lib/xero-ruby/models/accounting/report_attribute.rb +2 -2
  115. data/lib/xero-ruby/models/accounting/report_cell.rb +2 -2
  116. data/lib/xero-ruby/models/accounting/report_fields.rb +2 -2
  117. data/lib/xero-ruby/models/accounting/report_row.rb +2 -2
  118. data/lib/xero-ruby/models/accounting/report_rows.rb +2 -2
  119. data/lib/xero-ruby/models/accounting/report_with_row.rb +2 -2
  120. data/lib/xero-ruby/models/accounting/report_with_rows.rb +2 -2
  121. data/lib/xero-ruby/models/accounting/reports.rb +2 -2
  122. data/lib/xero-ruby/models/accounting/request_empty.rb +2 -2
  123. data/lib/xero-ruby/models/accounting/row_type.rb +1 -1
  124. data/lib/xero-ruby/models/accounting/sales_tracking_category.rb +2 -2
  125. data/lib/xero-ruby/models/accounting/schedule.rb +2 -2
  126. data/lib/xero-ruby/models/accounting/setup.rb +2 -2
  127. data/lib/xero-ruby/models/accounting/tax_component.rb +2 -2
  128. data/lib/xero-ruby/models/accounting/tax_rate.rb +2 -2
  129. data/lib/xero-ruby/models/accounting/tax_rates.rb +2 -2
  130. data/lib/xero-ruby/models/accounting/tax_type.rb +1 -1
  131. data/lib/xero-ruby/models/accounting/ten_ninety_nine_contact.rb +2 -2
  132. data/lib/xero-ruby/models/accounting/time_zone.rb +1 -1
  133. data/lib/xero-ruby/models/accounting/tracking_categories.rb +2 -2
  134. data/lib/xero-ruby/models/accounting/tracking_category.rb +2 -2
  135. data/lib/xero-ruby/models/accounting/tracking_option.rb +2 -2
  136. data/lib/xero-ruby/models/accounting/tracking_options.rb +2 -2
  137. data/lib/xero-ruby/models/accounting/user.rb +2 -2
  138. data/lib/xero-ruby/models/accounting/users.rb +2 -2
  139. data/lib/xero-ruby/models/accounting/validation_error.rb +2 -2
  140. data/lib/xero-ruby/models/assets/asset.rb +2 -2
  141. data/lib/xero-ruby/models/assets/asset_status.rb +1 -1
  142. data/lib/xero-ruby/models/assets/asset_status_query_param.rb +1 -1
  143. data/lib/xero-ruby/models/assets/asset_type.rb +2 -2
  144. data/lib/xero-ruby/models/assets/assets.rb +2 -2
  145. data/lib/xero-ruby/models/assets/book_depreciation_detail.rb +2 -2
  146. data/lib/xero-ruby/models/assets/book_depreciation_setting.rb +2 -2
  147. data/lib/xero-ruby/models/assets/error.rb +2 -2
  148. data/lib/xero-ruby/models/assets/field_validation_errors_element.rb +3 -3
  149. data/lib/xero-ruby/models/assets/pagination.rb +2 -2
  150. data/lib/xero-ruby/models/assets/resource_validation_errors_element.rb +3 -3
  151. data/lib/xero-ruby/models/assets/setting.rb +2 -2
  152. data/lib/xero-ruby/models/files/association.rb +2 -2
  153. data/lib/xero-ruby/models/files/file_object.rb +2 -2
  154. data/lib/xero-ruby/models/files/files.rb +2 -2
  155. data/lib/xero-ruby/models/files/folder.rb +2 -2
  156. data/lib/xero-ruby/models/files/folders.rb +2 -2
  157. data/lib/xero-ruby/models/files/object_group.rb +1 -1
  158. data/lib/xero-ruby/models/files/object_type.rb +1 -1
  159. data/lib/xero-ruby/models/files/{inline_object.rb → upload_object.rb} +20 -5
  160. data/lib/xero-ruby/models/files/user.rb +2 -2
  161. data/lib/xero-ruby/models/payroll_au/account.rb +2 -2
  162. data/lib/xero-ruby/models/payroll_au/account_type.rb +1 -1
  163. data/lib/xero-ruby/models/payroll_au/allowance_type.rb +1 -1
  164. data/lib/xero-ruby/models/payroll_au/api_exception.rb +2 -2
  165. data/lib/xero-ruby/models/payroll_au/bank_account.rb +2 -2
  166. data/lib/xero-ruby/models/payroll_au/calendar_type.rb +1 -1
  167. data/lib/xero-ruby/models/payroll_au/deduction_line.rb +2 -2
  168. data/lib/xero-ruby/models/payroll_au/deduction_type.rb +2 -2
  169. data/lib/xero-ruby/models/payroll_au/deduction_type_calculation_type.rb +1 -1
  170. data/lib/xero-ruby/models/payroll_au/earnings_line.rb +2 -2
  171. data/lib/xero-ruby/models/payroll_au/earnings_rate.rb +2 -2
  172. data/lib/xero-ruby/models/payroll_au/earnings_rate_calculation_type.rb +1 -1
  173. data/lib/xero-ruby/models/payroll_au/earnings_type.rb +1 -1
  174. data/lib/xero-ruby/models/payroll_au/employee.rb +2 -2
  175. data/lib/xero-ruby/models/payroll_au/employee_status.rb +1 -1
  176. data/lib/xero-ruby/models/payroll_au/employees.rb +2 -2
  177. data/lib/xero-ruby/models/payroll_au/employment_basis.rb +1 -1
  178. data/lib/xero-ruby/models/payroll_au/employment_termination_payment_type.rb +1 -1
  179. data/lib/xero-ruby/models/payroll_au/entitlement_final_pay_payout_type.rb +1 -1
  180. data/lib/xero-ruby/models/payroll_au/home_address.rb +2 -2
  181. data/lib/xero-ruby/models/payroll_au/leave_accrual_line.rb +2 -2
  182. data/lib/xero-ruby/models/payroll_au/leave_application.rb +2 -2
  183. data/lib/xero-ruby/models/payroll_au/leave_applications.rb +2 -2
  184. data/lib/xero-ruby/models/payroll_au/leave_balance.rb +2 -2
  185. data/lib/xero-ruby/models/payroll_au/leave_earnings_line.rb +2 -2
  186. data/lib/xero-ruby/models/payroll_au/leave_line.rb +2 -2
  187. data/lib/xero-ruby/models/payroll_au/leave_line_calculation_type.rb +1 -1
  188. data/lib/xero-ruby/models/payroll_au/leave_lines.rb +2 -2
  189. data/lib/xero-ruby/models/payroll_au/leave_period.rb +2 -2
  190. data/lib/xero-ruby/models/payroll_au/leave_period_status.rb +1 -1
  191. data/lib/xero-ruby/models/payroll_au/leave_type.rb +2 -2
  192. data/lib/xero-ruby/models/payroll_au/leave_type_contribution_type.rb +1 -1
  193. data/lib/xero-ruby/models/payroll_au/manual_tax_type.rb +1 -1
  194. data/lib/xero-ruby/models/payroll_au/opening_balances.rb +2 -2
  195. data/lib/xero-ruby/models/payroll_au/pay_item.rb +2 -2
  196. data/lib/xero-ruby/models/payroll_au/pay_items.rb +2 -2
  197. data/lib/xero-ruby/models/payroll_au/pay_run.rb +2 -2
  198. data/lib/xero-ruby/models/payroll_au/pay_run_status.rb +1 -1
  199. data/lib/xero-ruby/models/payroll_au/pay_runs.rb +2 -2
  200. data/lib/xero-ruby/models/payroll_au/pay_template.rb +2 -2
  201. data/lib/xero-ruby/models/payroll_au/payment_frequency_type.rb +1 -1
  202. data/lib/xero-ruby/models/payroll_au/payroll_calendar.rb +2 -2
  203. data/lib/xero-ruby/models/payroll_au/payroll_calendars.rb +2 -2
  204. data/lib/xero-ruby/models/payroll_au/payslip.rb +2 -2
  205. data/lib/xero-ruby/models/payroll_au/payslip_lines.rb +2 -2
  206. data/lib/xero-ruby/models/payroll_au/payslip_object.rb +2 -2
  207. data/lib/xero-ruby/models/payroll_au/payslip_summary.rb +2 -2
  208. data/lib/xero-ruby/models/payroll_au/payslips.rb +2 -2
  209. data/lib/xero-ruby/models/payroll_au/rate_type.rb +1 -1
  210. data/lib/xero-ruby/models/payroll_au/reimbursement_line.rb +2 -2
  211. data/lib/xero-ruby/models/payroll_au/reimbursement_lines.rb +2 -2
  212. data/lib/xero-ruby/models/payroll_au/reimbursement_type.rb +2 -2
  213. data/lib/xero-ruby/models/payroll_au/residency_status.rb +1 -1
  214. data/lib/xero-ruby/models/payroll_au/settings.rb +2 -2
  215. data/lib/xero-ruby/models/payroll_au/settings_object.rb +2 -2
  216. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories.rb +2 -2
  217. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_employee_groups.rb +2 -2
  218. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_timesheet_categories.rb +2 -2
  219. data/lib/xero-ruby/models/payroll_au/state.rb +1 -1
  220. data/lib/xero-ruby/models/payroll_au/super_fund.rb +2 -2
  221. data/lib/xero-ruby/models/payroll_au/super_fund_product.rb +2 -2
  222. data/lib/xero-ruby/models/payroll_au/super_fund_products.rb +2 -2
  223. data/lib/xero-ruby/models/payroll_au/super_fund_type.rb +1 -1
  224. data/lib/xero-ruby/models/payroll_au/super_funds.rb +2 -2
  225. data/lib/xero-ruby/models/payroll_au/super_line.rb +3 -3
  226. data/lib/xero-ruby/models/payroll_au/super_membership.rb +3 -3
  227. data/lib/xero-ruby/models/payroll_au/superannuation_calculation_type.rb +1 -1
  228. data/lib/xero-ruby/models/payroll_au/superannuation_contribution_type.rb +1 -1
  229. data/lib/xero-ruby/models/payroll_au/superannuation_line.rb +2 -2
  230. data/lib/xero-ruby/models/payroll_au/tax_declaration.rb +2 -2
  231. data/lib/xero-ruby/models/payroll_au/tax_line.rb +2 -2
  232. data/lib/xero-ruby/models/payroll_au/tfn_exemption_type.rb +1 -1
  233. data/lib/xero-ruby/models/payroll_au/timesheet.rb +2 -2
  234. data/lib/xero-ruby/models/payroll_au/timesheet_line.rb +2 -2
  235. data/lib/xero-ruby/models/payroll_au/timesheet_object.rb +2 -2
  236. data/lib/xero-ruby/models/payroll_au/timesheet_status.rb +1 -1
  237. data/lib/xero-ruby/models/payroll_au/timesheets.rb +2 -2
  238. data/lib/xero-ruby/models/payroll_au/validation_error.rb +2 -2
  239. data/lib/xero-ruby/models/payroll_nz/account.rb +1 -1
  240. data/lib/xero-ruby/models/payroll_nz/accounts.rb +1 -1
  241. data/lib/xero-ruby/models/payroll_nz/address.rb +1 -1
  242. data/lib/xero-ruby/models/payroll_nz/bank_account.rb +1 -1
  243. data/lib/xero-ruby/models/payroll_nz/benefit.rb +1 -1
  244. data/lib/xero-ruby/models/payroll_nz/deduction.rb +1 -1
  245. data/lib/xero-ruby/models/payroll_nz/deduction_line.rb +1 -1
  246. data/lib/xero-ruby/models/payroll_nz/deduction_object.rb +1 -1
  247. data/lib/xero-ruby/models/payroll_nz/deductions.rb +1 -1
  248. data/lib/xero-ruby/models/payroll_nz/earnings_line.rb +2 -2
  249. data/lib/xero-ruby/models/payroll_nz/earnings_order.rb +1 -1
  250. data/lib/xero-ruby/models/payroll_nz/earnings_order_object.rb +1 -1
  251. data/lib/xero-ruby/models/payroll_nz/earnings_orders.rb +1 -1
  252. data/lib/xero-ruby/models/payroll_nz/earnings_rate.rb +1 -1
  253. data/lib/xero-ruby/models/payroll_nz/earnings_rate_object.rb +1 -1
  254. data/lib/xero-ruby/models/payroll_nz/earnings_rates.rb +1 -1
  255. data/lib/xero-ruby/models/payroll_nz/earnings_template.rb +1 -1
  256. data/lib/xero-ruby/models/payroll_nz/earnings_template_object.rb +1 -1
  257. data/lib/xero-ruby/models/payroll_nz/employee.rb +1 -1
  258. data/lib/xero-ruby/models/payroll_nz/employee_earnings_templates.rb +1 -1
  259. data/lib/xero-ruby/models/payroll_nz/employee_leave.rb +1 -1
  260. data/lib/xero-ruby/models/payroll_nz/employee_leave_balance.rb +1 -1
  261. data/lib/xero-ruby/models/payroll_nz/employee_leave_balances.rb +1 -1
  262. data/lib/xero-ruby/models/payroll_nz/employee_leave_object.rb +1 -1
  263. data/lib/xero-ruby/models/payroll_nz/employee_leave_setup.rb +1 -1
  264. data/lib/xero-ruby/models/payroll_nz/employee_leave_setup_object.rb +1 -1
  265. data/lib/xero-ruby/models/payroll_nz/employee_leave_type.rb +1 -1
  266. data/lib/xero-ruby/models/payroll_nz/employee_leave_type_object.rb +1 -1
  267. data/lib/xero-ruby/models/payroll_nz/employee_leave_types.rb +1 -1
  268. data/lib/xero-ruby/models/payroll_nz/employee_leaves.rb +1 -1
  269. data/lib/xero-ruby/models/payroll_nz/employee_object.rb +1 -1
  270. data/lib/xero-ruby/models/payroll_nz/employee_opening_balance.rb +1 -1
  271. data/lib/xero-ruby/models/payroll_nz/employee_opening_balances_object.rb +1 -1
  272. data/lib/xero-ruby/models/payroll_nz/employee_pay_template.rb +1 -1
  273. data/lib/xero-ruby/models/payroll_nz/employee_pay_template_object.rb +1 -1
  274. data/lib/xero-ruby/models/payroll_nz/employee_pay_templates.rb +1 -1
  275. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance.rb +1 -1
  276. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance_object.rb +1 -1
  277. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_summary.rb +1 -1
  278. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leaves_summaries.rb +1 -1
  279. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave.rb +2 -2
  280. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave_object.rb +1 -1
  281. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leaves.rb +1 -1
  282. data/lib/xero-ruby/models/payroll_nz/employee_tax.rb +1 -1
  283. data/lib/xero-ruby/models/payroll_nz/employee_tax_object.rb +1 -1
  284. data/lib/xero-ruby/models/payroll_nz/employees.rb +1 -1
  285. data/lib/xero-ruby/models/payroll_nz/employment.rb +1 -1
  286. data/lib/xero-ruby/models/payroll_nz/employment_object.rb +1 -1
  287. data/lib/xero-ruby/models/payroll_nz/gross_earnings_history.rb +1 -1
  288. data/lib/xero-ruby/models/payroll_nz/invalid_field.rb +1 -1
  289. data/lib/xero-ruby/models/payroll_nz/leave_accrual_line.rb +1 -1
  290. data/lib/xero-ruby/models/payroll_nz/leave_earnings_line.rb +2 -2
  291. data/lib/xero-ruby/models/payroll_nz/leave_period.rb +1 -1
  292. data/lib/xero-ruby/models/payroll_nz/leave_periods.rb +1 -1
  293. data/lib/xero-ruby/models/payroll_nz/leave_type.rb +1 -1
  294. data/lib/xero-ruby/models/payroll_nz/leave_type_object.rb +1 -1
  295. data/lib/xero-ruby/models/payroll_nz/leave_types.rb +1 -1
  296. data/lib/xero-ruby/models/payroll_nz/pagination.rb +1 -1
  297. data/lib/xero-ruby/models/payroll_nz/pay_run.rb +1 -1
  298. data/lib/xero-ruby/models/payroll_nz/pay_run_calendar.rb +1 -1
  299. data/lib/xero-ruby/models/payroll_nz/pay_run_calendar_object.rb +1 -1
  300. data/lib/xero-ruby/models/payroll_nz/pay_run_calendars.rb +1 -1
  301. data/lib/xero-ruby/models/payroll_nz/pay_run_object.rb +1 -1
  302. data/lib/xero-ruby/models/payroll_nz/pay_runs.rb +1 -1
  303. data/lib/xero-ruby/models/payroll_nz/pay_slip.rb +1 -1
  304. data/lib/xero-ruby/models/payroll_nz/pay_slip_object.rb +1 -1
  305. data/lib/xero-ruby/models/payroll_nz/pay_slips.rb +1 -1
  306. data/lib/xero-ruby/models/payroll_nz/payment_line.rb +1 -1
  307. data/lib/xero-ruby/models/payroll_nz/payment_method.rb +1 -1
  308. data/lib/xero-ruby/models/payroll_nz/payment_method_object.rb +1 -1
  309. data/lib/xero-ruby/models/payroll_nz/problem.rb +1 -1
  310. data/lib/xero-ruby/models/payroll_nz/reimbursement.rb +1 -1
  311. data/lib/xero-ruby/models/payroll_nz/reimbursement_line.rb +1 -1
  312. data/lib/xero-ruby/models/payroll_nz/reimbursement_object.rb +1 -1
  313. data/lib/xero-ruby/models/payroll_nz/reimbursements.rb +1 -1
  314. data/lib/xero-ruby/models/payroll_nz/salary_and_wage.rb +4 -3
  315. data/lib/xero-ruby/models/payroll_nz/salary_and_wage_object.rb +1 -1
  316. data/lib/xero-ruby/models/payroll_nz/salary_and_wages.rb +1 -1
  317. data/lib/xero-ruby/models/payroll_nz/settings.rb +1 -1
  318. data/lib/xero-ruby/models/payroll_nz/statutory_deduction.rb +1 -1
  319. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_line.rb +1 -1
  320. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_object.rb +1 -1
  321. data/lib/xero-ruby/models/payroll_nz/statutory_deductions.rb +1 -1
  322. data/lib/xero-ruby/models/payroll_nz/superannuation_line.rb +2 -2
  323. data/lib/xero-ruby/models/payroll_nz/superannuation_object.rb +1 -1
  324. data/lib/xero-ruby/models/payroll_nz/superannuations.rb +1 -1
  325. data/lib/xero-ruby/models/payroll_nz/tax_line.rb +1 -1
  326. data/lib/xero-ruby/models/payroll_nz/tax_settings.rb +1 -1
  327. data/lib/xero-ruby/models/payroll_nz/timesheet.rb +5 -4
  328. data/lib/xero-ruby/models/payroll_nz/timesheet_earnings_line.rb +2 -2
  329. data/lib/xero-ruby/models/payroll_nz/timesheet_line.rb +1 -1
  330. data/lib/xero-ruby/models/payroll_nz/timesheet_line_object.rb +1 -1
  331. data/lib/xero-ruby/models/payroll_nz/timesheet_object.rb +1 -1
  332. data/lib/xero-ruby/models/payroll_nz/timesheets.rb +1 -1
  333. data/lib/xero-ruby/models/payroll_nz/tracking_categories.rb +1 -1
  334. data/lib/xero-ruby/models/payroll_nz/tracking_category.rb +1 -1
  335. data/lib/xero-ruby/models/payroll_uk/account.rb +1 -1
  336. data/lib/xero-ruby/models/payroll_uk/accounts.rb +1 -1
  337. data/lib/xero-ruby/models/payroll_uk/address.rb +1 -1
  338. data/lib/xero-ruby/models/payroll_uk/bank_account.rb +1 -1
  339. data/lib/xero-ruby/models/payroll_uk/benefit.rb +1 -1
  340. data/lib/xero-ruby/models/payroll_uk/benefit_line.rb +1 -1
  341. data/lib/xero-ruby/models/payroll_uk/benefit_object.rb +1 -1
  342. data/lib/xero-ruby/models/payroll_uk/benefits.rb +1 -1
  343. data/lib/xero-ruby/models/payroll_uk/court_order_line.rb +1 -1
  344. data/lib/xero-ruby/models/payroll_uk/deduction.rb +1 -1
  345. data/lib/xero-ruby/models/payroll_uk/deduction_line.rb +1 -1
  346. data/lib/xero-ruby/models/payroll_uk/deduction_object.rb +1 -1
  347. data/lib/xero-ruby/models/payroll_uk/deductions.rb +1 -1
  348. data/lib/xero-ruby/models/payroll_uk/earnings_line.rb +1 -1
  349. data/lib/xero-ruby/models/payroll_uk/earnings_order.rb +1 -1
  350. data/lib/xero-ruby/models/payroll_uk/earnings_order_object.rb +1 -1
  351. data/lib/xero-ruby/models/payroll_uk/earnings_orders.rb +1 -1
  352. data/lib/xero-ruby/models/payroll_uk/earnings_rate.rb +10 -3
  353. data/lib/xero-ruby/models/payroll_uk/earnings_rate_object.rb +1 -1
  354. data/lib/xero-ruby/models/payroll_uk/earnings_rates.rb +1 -1
  355. data/lib/xero-ruby/models/payroll_uk/earnings_template.rb +1 -1
  356. data/lib/xero-ruby/models/payroll_uk/earnings_template_object.rb +1 -1
  357. data/lib/xero-ruby/models/payroll_uk/employee.rb +1 -1
  358. data/lib/xero-ruby/models/payroll_uk/employee_leave.rb +1 -1
  359. data/lib/xero-ruby/models/payroll_uk/employee_leave_balance.rb +1 -1
  360. data/lib/xero-ruby/models/payroll_uk/employee_leave_balances.rb +1 -1
  361. data/lib/xero-ruby/models/payroll_uk/employee_leave_object.rb +1 -1
  362. data/lib/xero-ruby/models/payroll_uk/employee_leave_type.rb +1 -1
  363. data/lib/xero-ruby/models/payroll_uk/employee_leave_type_object.rb +1 -1
  364. data/lib/xero-ruby/models/payroll_uk/employee_leave_types.rb +1 -1
  365. data/lib/xero-ruby/models/payroll_uk/employee_leaves.rb +1 -1
  366. data/lib/xero-ruby/models/payroll_uk/employee_object.rb +1 -1
  367. data/lib/xero-ruby/models/payroll_uk/employee_opening_balances.rb +1 -1
  368. data/lib/xero-ruby/models/payroll_uk/employee_opening_balances_object.rb +1 -1
  369. data/lib/xero-ruby/models/payroll_uk/employee_pay_template.rb +1 -1
  370. data/lib/xero-ruby/models/payroll_uk/employee_pay_template_object.rb +1 -1
  371. data/lib/xero-ruby/models/payroll_uk/employee_pay_templates.rb +1 -1
  372. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance.rb +1 -1
  373. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance_object.rb +1 -1
  374. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_summary.rb +1 -1
  375. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leaves_summaries.rb +1 -1
  376. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave.rb +2 -2
  377. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave_object.rb +1 -1
  378. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leaves.rb +1 -1
  379. data/lib/xero-ruby/models/payroll_uk/employee_tax.rb +1 -1
  380. data/lib/xero-ruby/models/payroll_uk/employee_tax_object.rb +1 -1
  381. data/lib/xero-ruby/models/payroll_uk/employees.rb +1 -1
  382. data/lib/xero-ruby/models/payroll_uk/employment.rb +1 -1
  383. data/lib/xero-ruby/models/payroll_uk/employment_object.rb +1 -1
  384. data/lib/xero-ruby/models/payroll_uk/invalid_field.rb +1 -1
  385. data/lib/xero-ruby/models/payroll_uk/leave_accrual_line.rb +1 -1
  386. data/lib/xero-ruby/models/payroll_uk/leave_earnings_line.rb +1 -1
  387. data/lib/xero-ruby/models/payroll_uk/leave_period.rb +1 -1
  388. data/lib/xero-ruby/models/payroll_uk/leave_periods.rb +1 -1
  389. data/lib/xero-ruby/models/payroll_uk/leave_type.rb +1 -1
  390. data/lib/xero-ruby/models/payroll_uk/leave_type_object.rb +1 -1
  391. data/lib/xero-ruby/models/payroll_uk/leave_types.rb +1 -1
  392. data/lib/xero-ruby/models/payroll_uk/pagination.rb +1 -1
  393. data/lib/xero-ruby/models/payroll_uk/pay_run.rb +1 -1
  394. data/lib/xero-ruby/models/payroll_uk/pay_run_calendar.rb +1 -1
  395. data/lib/xero-ruby/models/payroll_uk/pay_run_calendar_object.rb +1 -1
  396. data/lib/xero-ruby/models/payroll_uk/pay_run_calendars.rb +1 -1
  397. data/lib/xero-ruby/models/payroll_uk/pay_run_object.rb +1 -1
  398. data/lib/xero-ruby/models/payroll_uk/pay_runs.rb +1 -1
  399. data/lib/xero-ruby/models/payroll_uk/payment_line.rb +1 -1
  400. data/lib/xero-ruby/models/payroll_uk/payment_method.rb +1 -1
  401. data/lib/xero-ruby/models/payroll_uk/payment_method_object.rb +1 -1
  402. data/lib/xero-ruby/models/payroll_uk/payslip.rb +1 -1
  403. data/lib/xero-ruby/models/payroll_uk/payslip_object.rb +1 -1
  404. data/lib/xero-ruby/models/payroll_uk/payslips.rb +1 -1
  405. data/lib/xero-ruby/models/payroll_uk/problem.rb +1 -1
  406. data/lib/xero-ruby/models/payroll_uk/reimbursement.rb +1 -1
  407. data/lib/xero-ruby/models/payroll_uk/reimbursement_line.rb +1 -1
  408. data/lib/xero-ruby/models/payroll_uk/reimbursement_object.rb +1 -1
  409. data/lib/xero-ruby/models/payroll_uk/reimbursements.rb +1 -1
  410. data/lib/xero-ruby/models/payroll_uk/salary_and_wage.rb +1 -1
  411. data/lib/xero-ruby/models/payroll_uk/salary_and_wage_object.rb +1 -1
  412. data/lib/xero-ruby/models/payroll_uk/salary_and_wages.rb +1 -1
  413. data/lib/xero-ruby/models/payroll_uk/settings.rb +1 -1
  414. data/lib/xero-ruby/models/payroll_uk/statutory_deduction.rb +1 -1
  415. data/lib/xero-ruby/models/payroll_uk/tax_line.rb +1 -1
  416. data/lib/xero-ruby/models/payroll_uk/timesheet.rb +2 -2
  417. data/lib/xero-ruby/models/payroll_uk/timesheet_earnings_line.rb +1 -1
  418. data/lib/xero-ruby/models/payroll_uk/timesheet_line.rb +1 -1
  419. data/lib/xero-ruby/models/payroll_uk/timesheet_line_object.rb +1 -1
  420. data/lib/xero-ruby/models/payroll_uk/timesheet_object.rb +1 -1
  421. data/lib/xero-ruby/models/payroll_uk/timesheets.rb +1 -1
  422. data/lib/xero-ruby/models/payroll_uk/tracking_categories.rb +1 -1
  423. data/lib/xero-ruby/models/payroll_uk/tracking_category.rb +1 -1
  424. data/lib/xero-ruby/models/projects/amount.rb +1 -1
  425. data/lib/xero-ruby/models/projects/error.rb +1 -1
  426. data/lib/xero-ruby/models/projects/pagination.rb +1 -1
  427. data/lib/xero-ruby/models/projects/project.rb +1 -1
  428. data/lib/xero-ruby/models/projects/project_create_or_update.rb +1 -1
  429. data/lib/xero-ruby/models/projects/project_patch.rb +1 -1
  430. data/lib/xero-ruby/models/projects/project_user.rb +1 -1
  431. data/lib/xero-ruby/models/projects/project_users.rb +1 -1
  432. data/lib/xero-ruby/models/projects/projects.rb +1 -1
  433. data/lib/xero-ruby/models/projects/task.rb +1 -1
  434. data/lib/xero-ruby/models/projects/task_create_or_update.rb +1 -1
  435. data/lib/xero-ruby/models/projects/tasks.rb +1 -1
  436. data/lib/xero-ruby/models/projects/time_entries.rb +1 -1
  437. data/lib/xero-ruby/models/projects/time_entry.rb +1 -1
  438. data/lib/xero-ruby/models/projects/time_entry_create_or_update.rb +1 -1
  439. data/lib/xero-ruby/string_serialization.rb +52 -0
  440. data/lib/xero-ruby/version.rb +3 -3
  441. data/lib/xero-ruby/where.rb +65 -0
  442. data/spec/api_client_spec.rb +3 -3
  443. data/spec/api_error_spec.rb +1 -1
  444. data/spec/configuration_spec.rb +1 -1
  445. data/spec/files/models/inline_object_spec.rb +3 -3
  446. data/spec/helper_methods_spec.rb +4 -4
  447. data/spec/where_spec.rb +82 -0
  448. metadata +9 -7
  449. data/spec/files/models/file_response204_spec.rb +0 -41
@@ -204,7 +204,7 @@ module XeroRuby::PayrollUk
204
204
  end
205
205
 
206
206
  # Returns the object in the form of hash with snake_case
207
- def attributes
207
+ def to_attributes
208
208
  to_hash(downcase: true)
209
209
  end
210
210
 
@@ -202,7 +202,7 @@ module XeroRuby::PayrollUk
202
202
  end
203
203
 
204
204
  # Returns the object in the form of hash with snake_case
205
- def attributes
205
+ def to_attributes
206
206
  to_hash(downcase: true)
207
207
  end
208
208
 
@@ -192,7 +192,7 @@ module XeroRuby::PayrollUk
192
192
  end
193
193
 
194
194
  # Returns the object in the form of hash with snake_case
195
- def attributes
195
+ def to_attributes
196
196
  to_hash(downcase: true)
197
197
  end
198
198
 
@@ -192,7 +192,7 @@ module XeroRuby::Projects
192
192
  end
193
193
 
194
194
  # Returns the object in the form of hash with snake_case
195
- def attributes
195
+ def to_attributes
196
196
  to_hash(downcase: true)
197
197
  end
198
198
 
@@ -192,7 +192,7 @@ module XeroRuby::Projects
192
192
  end
193
193
 
194
194
  # Returns the object in the form of hash with snake_case
195
- def attributes
195
+ def to_attributes
196
196
  to_hash(downcase: true)
197
197
  end
198
198
 
@@ -212,7 +212,7 @@ module XeroRuby::Projects
212
212
  end
213
213
 
214
214
  # Returns the object in the form of hash with snake_case
215
- def attributes
215
+ def to_attributes
216
216
  to_hash(downcase: true)
217
217
  end
218
218
 
@@ -397,7 +397,7 @@ module XeroRuby::Projects
397
397
  end
398
398
 
399
399
  # Returns the object in the form of hash with snake_case
400
- def attributes
400
+ def to_attributes
401
401
  to_hash(downcase: true)
402
402
  end
403
403
 
@@ -217,7 +217,7 @@ module XeroRuby::Projects
217
217
  end
218
218
 
219
219
  # Returns the object in the form of hash with snake_case
220
- def attributes
220
+ def to_attributes
221
221
  to_hash(downcase: true)
222
222
  end
223
223
 
@@ -187,7 +187,7 @@ module XeroRuby::Projects
187
187
  end
188
188
 
189
189
  # Returns the object in the form of hash with snake_case
190
- def attributes
190
+ def to_attributes
191
191
  to_hash(downcase: true)
192
192
  end
193
193
 
@@ -202,7 +202,7 @@ module XeroRuby::Projects
202
202
  end
203
203
 
204
204
  # Returns the object in the form of hash with snake_case
205
- def attributes
205
+ def to_attributes
206
206
  to_hash(downcase: true)
207
207
  end
208
208
 
@@ -194,7 +194,7 @@ module XeroRuby::Projects
194
194
  end
195
195
 
196
196
  # Returns the object in the form of hash with snake_case
197
- def attributes
197
+ def to_attributes
198
198
  to_hash(downcase: true)
199
199
  end
200
200
 
@@ -194,7 +194,7 @@ module XeroRuby::Projects
194
194
  end
195
195
 
196
196
  # Returns the object in the form of hash with snake_case
197
- def attributes
197
+ def to_attributes
198
198
  to_hash(downcase: true)
199
199
  end
200
200
 
@@ -359,7 +359,7 @@ module XeroRuby::Projects
359
359
  end
360
360
 
361
361
  # Returns the object in the form of hash with snake_case
362
- def attributes
362
+ def to_attributes
363
363
  to_hash(downcase: true)
364
364
  end
365
365
 
@@ -227,7 +227,7 @@ module XeroRuby::Projects
227
227
  end
228
228
 
229
229
  # Returns the object in the form of hash with snake_case
230
- def attributes
230
+ def to_attributes
231
231
  to_hash(downcase: true)
232
232
  end
233
233
 
@@ -194,7 +194,7 @@ module XeroRuby::Projects
194
194
  end
195
195
 
196
196
  # Returns the object in the form of hash with snake_case
197
- def attributes
197
+ def to_attributes
198
198
  to_hash(downcase: true)
199
199
  end
200
200
 
@@ -194,7 +194,7 @@ module XeroRuby::Projects
194
194
  end
195
195
 
196
196
  # Returns the object in the form of hash with snake_case
197
- def attributes
197
+ def to_attributes
198
198
  to_hash(downcase: true)
199
199
  end
200
200
 
@@ -298,7 +298,7 @@ module XeroRuby::Projects
298
298
  end
299
299
 
300
300
  # Returns the object in the form of hash with snake_case
301
- def attributes
301
+ def to_attributes
302
302
  to_hash(downcase: true)
303
303
  end
304
304
 
@@ -242,7 +242,7 @@ module XeroRuby::Projects
242
242
  end
243
243
 
244
244
  # Returns the object in the form of hash with snake_case
245
- def attributes
245
+ def to_attributes
246
246
  to_hash(downcase: true)
247
247
  end
248
248
 
@@ -0,0 +1,52 @@
1
+ module XeroRuby
2
+ module StringSerialization
3
+ # START - Re-serializes snake_cased params to PascalCase required by XeroAPI
4
+ def to_camel_keys(value = self)
5
+ case value
6
+ when Array
7
+ value.map { |v| to_camel_keys(v) }
8
+ when Hash
9
+ Hash[value.map { |k, v| [camelize_key(k), to_camel_keys(v)] }]
10
+ else
11
+ value
12
+ end
13
+ end
14
+
15
+ def camelize_key(key, first_upper = true)
16
+ if key.is_a? Symbol
17
+ camelize(key.to_s, first_upper).to_sym
18
+ elsif key.is_a? String
19
+ camelize(key, first_upper)
20
+ else
21
+ key # can't camelize anything except strings and symbols
22
+ end
23
+ end
24
+
25
+ def camelize(word, first_upper = true)
26
+ if first_upper
27
+ str = word.to_s
28
+ str = gsubbed(str, /(?:^|_)([^_\s]+)/)
29
+ str = gsubbed(str, %r{/([^/]*)}, "::")
30
+ str
31
+ else
32
+ parts = word.split("_", 2)
33
+ parts[0] << camelize(parts[1]) if parts.size > 1
34
+ parts[0] || ""
35
+ end
36
+ end
37
+
38
+ def gsubbed(str, pattern, extra = "")
39
+ key_map_scronyms = {}
40
+ str = str.gsub(pattern) do
41
+ extra + (key_map_scronyms[Regexp.last_match(1)] || capitalize_first(Regexp.last_match(1)))
42
+ end
43
+ str
44
+ end
45
+
46
+ def capitalize_first(word)
47
+ split = word.split('')
48
+ "#{split[0].capitalize}#{split[1..-1].join}"
49
+ end
50
+ # END - Re-serializes snake_cased params to PascalCase required by XeroAPI
51
+ end
52
+ end
@@ -1,5 +1,5 @@
1
1
  =begin
2
- #Accounting API
2
+ #Xero Accounting API
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
@@ -7,9 +7,9 @@ Contact: api@xero.com
7
7
  Generated by: https://openapi-generator.tech
8
8
  OpenAPI Generator version: 4.3.1
9
9
 
10
- The version of the XeroOpenAPI document: 2.8.3
10
+ The version of the XeroOpenAPI document: 2.10.4
11
11
  =end
12
12
 
13
13
  module XeroRuby
14
- VERSION = '2.6.2'
14
+ VERSION = '2.8.2'
15
15
  end
@@ -0,0 +1,65 @@
1
+ module XeroRuby
2
+ class Where
3
+ include StringSerialization
4
+
5
+ UUID_REGEXP = /\A[0-9a-f]{8}\b-[0-9a-f]{4}\b-[0-9a-f]{4}\b-[0-9a-f]{4}\b-[0-9a-f]{12}\Z/i
6
+ STRING_FUNCTIONS = %w(Contains StartsWith EndsWith)
7
+
8
+ attr_reader :where_opts
9
+
10
+ def initialize(where_opts)
11
+ @where_opts = where_opts
12
+ end
13
+
14
+ def to_param
15
+ where_opts.map { |key, value| parameterize_option(key, value) }.join(' AND ')
16
+ end
17
+
18
+ private
19
+
20
+ def parameterize_option(key, value)
21
+ quoted_key = quote_key(key)
22
+
23
+ case value
24
+ when Array
25
+ operator, query = value
26
+
27
+ if STRING_FUNCTIONS.include?(camelize_key(operator))
28
+ "#{quoted_key}.#{camelize_key(operator)}(#{quote_value(query)})"
29
+ else
30
+ "#{quoted_key} #{operator} #{quote_value(query)}"
31
+ end
32
+ when Range
33
+ "#{quoted_key} >= #{quote_value(value.first)} AND #{quoted_key} <= #{quote_value(value.last)}"
34
+ when /^\./
35
+ "#{quoted_key}#{value}"
36
+ else
37
+ "#{quoted_key} #{value}"
38
+ end
39
+ end
40
+
41
+ def quote_key(key)
42
+ case key
43
+ when :contact_id
44
+ 'Contact.ContactID'
45
+ when :contact_number
46
+ 'Contact.ContactNumber'
47
+ else
48
+ camelize_key(key)
49
+ end
50
+ end
51
+
52
+ def quote_value(value)
53
+ case value
54
+ when DateTime, Date, Time
55
+ "DateTime(#{value.strftime("%Y,%m,%d")})"
56
+ when Numeric, false, true
57
+ value.to_s
58
+ when UUID_REGEXP
59
+ %{guid("#{value}")}
60
+ else
61
+ %{"#{value.to_s.gsub('"', '""')}"}
62
+ end
63
+ end
64
+ end
65
+ end
@@ -1,4 +1,4 @@
1
- require './spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe XeroRuby::ApiClient do
4
4
  context 'initialization' do
@@ -47,7 +47,7 @@ describe XeroRuby::ApiClient do
47
47
  state: 'i-am-customer-state'
48
48
  }
49
49
  api_client = XeroRuby::ApiClient.new(credentials: creds)
50
- expect(api_client.authorization_url).to eq('https://login.xero.com/identity/connect/authorize?response_type=code&client_id=abc&redirect_uri=https://mydomain.com/callback&scope=openid profile email accounting.transactions accounting.settings&state=i-am-customer-state')
50
+ expect(api_client.authorization_url).to eq('https://login.xero.com/identity/connect/authorize?response_type=code&client_id=abc&redirect_uri=https://mydomain.com/callback&scope=openid+profile+email+accounting.transactions+accounting.settings&state=i-am-customer-state')
51
51
  end
52
52
 
53
53
  it "Does not append state if it is not provided" do
@@ -58,7 +58,7 @@ describe XeroRuby::ApiClient do
58
58
  scopes: 'openid profile email accounting.transactions accounting.settings'
59
59
  }
60
60
  api_client = XeroRuby::ApiClient.new(credentials: creds)
61
- expect(api_client.authorization_url).to eq('https://login.xero.com/identity/connect/authorize?response_type=code&client_id=abc&redirect_uri=https://mydomain.com/callback&scope=openid profile email accounting.transactions accounting.settings')
61
+ expect(api_client.authorization_url).to eq('https://login.xero.com/identity/connect/authorize?response_type=code&client_id=abc&redirect_uri=https://mydomain.com/callback&scope=openid+profile+email+accounting.transactions+accounting.settings')
62
62
  end
63
63
  end
64
64
  end
@@ -1,4 +1,4 @@
1
- require './spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe XeroRuby::ApiError do
4
4
  context 'initialization' do
@@ -6,7 +6,7 @@ describe XeroRuby::Configuration do
6
6
  describe 'urls' do
7
7
  it 'should have the default value' do
8
8
  expect(config.login_url).to eq('https://login.xero.com/identity/connect/authorize')
9
- expect(config.token_url).to eq('https://identity.xero.com/connect/token')
9
+ expect(config.token_url).to eq('https://identity.xero.com/connect')
10
10
  expect(config.accounting_url).to eq('https://api.xero.com/api.xro/2.0')
11
11
  expect(config.asset_url).to eq('https://api.xero.com/assets.xro/1.0')
12
12
  expect(config.project_url).to eq('https://api.xero.com/projects.xro/2.0/')
@@ -14,13 +14,13 @@ require 'spec_helper'
14
14
  require 'json'
15
15
  require 'date'
16
16
 
17
- # Unit tests for XeroRuby::Files::InlineObject
17
+ # Unit tests for XeroRuby::Files::FileObject
18
18
  # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
19
  # Please update as you see appropriate
20
20
  describe 'InlineObject' do
21
21
  before do
22
22
  # run before each test
23
- @instance = XeroRuby::Files::InlineObject.new
23
+ @instance = XeroRuby::Files::FileObject.new
24
24
  end
25
25
 
26
26
  after do
@@ -29,7 +29,7 @@ describe 'InlineObject' do
29
29
 
30
30
  describe 'test an instance of InlineObject' do
31
31
  it 'should create an instance of InlineObject' do
32
- expect(@instance).to be_instance_of(XeroRuby::Files::InlineObject)
32
+ expect(@instance).to be_instance_of(XeroRuby::Files::FileObject)
33
33
  end
34
34
  end
35
35
  describe 'test attribute "body"' do
@@ -1,6 +1,6 @@
1
- require './spec_helper'
1
+ require 'spec_helper'
2
2
 
3
- describe 'shared helper methdods' do
3
+ describe 'shared helper methods' do
4
4
 
5
5
  describe '#parse_date' do
6
6
  let(:model_instance) {XeroRuby::Accounting::Account.new}
@@ -71,11 +71,11 @@ describe 'shared helper methdods' do
71
71
 
72
72
  describe '#attributes' do
73
73
  it 'can serialize invoice attributes into a snake_case hash' do
74
- expect(invoice.attributes).to eq({currency_code: "USD", has_attachments: false, has_errors: false, invoice_number: "abc-123", total_discount: 100, type: "ACCPAY"})
74
+ expect(invoice.to_attributes).to eq({currency_code: "USD", has_attachments: false, has_errors: false, invoice_number: "abc-123", total_discount: 100, type: "ACCPAY"})
75
75
  end
76
76
 
77
77
  it 'can serialize contact attributes into a snake_case hash' do
78
- expect(contact.attributes).to eq({account_number: "abc-123", contact_status: "ACTIVE", email_address: "email@gmail.com", first_name: 'Contact', has_attachments: false, has_validation_errors: false, last_name: "Name", name: "Contact Name"})
78
+ expect(contact.to_attributes).to eq({account_number: "abc-123", contact_status: "ACTIVE", email_address: "email@gmail.com", first_name: 'Contact', has_attachments: false, has_validation_errors: false, last_name: "Name", name: "Contact Name"})
79
79
  end
80
80
  end
81
81
  end
@@ -0,0 +1,82 @@
1
+ require 'spec_helper'
2
+
3
+ describe XeroRuby::Where do
4
+ let(:query) { described_class.new(opts) }
5
+
6
+ subject { query.to_param }
7
+
8
+ describe "arrays" do
9
+ describe "a simple equality test" do
10
+ let(:opts) { { test_field: ['=', 'test'] } }
11
+
12
+ it { is_expected.to eq %{TestField = "test"} }
13
+ end
14
+
15
+ describe "a test with a date" do
16
+ let(:opts) { { test: ['=', Date.parse('2020-02-01')] } }
17
+
18
+ it { is_expected.to eq %{Test = DateTime(2020,02,01)} }
19
+ end
20
+
21
+ describe "multiple options" do
22
+ let(:opts) { { a: ['=', 1], b: ['=', 2] } }
23
+
24
+ it { is_expected.to eq %{A = 1 AND B = 2} }
25
+ end
26
+
27
+ describe "special keys" do
28
+ let(:opts) { { contact_id: 3, contact_number: 4 } }
29
+
30
+ it { is_expected.to eq %{Contact.ContactID 3 AND Contact.ContactNumber 4} }
31
+ end
32
+
33
+ describe "string functions" do
34
+ let(:opts) { { name: ['Contains', 'ero'] } }
35
+
36
+ it { is_expected.to eq %{Name.Contains("ero")} }
37
+ end
38
+
39
+ describe "special characters in the search string" do
40
+ let(:opts) { { a: ['=', 'quote"quote'] } }
41
+
42
+ it { is_expected.to eq %{A = "quote""quote"} }
43
+ end
44
+
45
+ describe "numbers" do
46
+ let(:opts) { { a: ['=', 10], b: ['=', 20.5] } }
47
+
48
+ it { is_expected.to eq %{A = 10 AND B = 20.5} }
49
+ end
50
+
51
+ describe "booleans" do
52
+ let(:opts) { { a: ['=', false], b: ['=', true] } }
53
+
54
+ it { is_expected.to eq %{A = false AND B = true} }
55
+ end
56
+
57
+ describe "UUIDs" do
58
+ let (:opts) { { a: ['=', '62c54cf8-eb9a-450e-8ca2-bb1fa9237940'] } }
59
+
60
+ it { is_expected.to eq %{A = guid("62c54cf8-eb9a-450e-8ca2-bb1fa9237940")} }
61
+ end
62
+ end
63
+
64
+ describe "ranges" do
65
+ let(:range) { Date.parse('2020-02-01')..Date.parse('2020-02-15') }
66
+ let(:opts) { { a: range } }
67
+
68
+ it { is_expected.to eq %{A >= DateTime(2020,02,01) AND A <= DateTime(2020,02,15)} }
69
+ end
70
+
71
+ describe "operators starting with a dot" do
72
+ let(:opts) { {a: '.Test("Hello")' } }
73
+
74
+ it { is_expected.to eq %{A.Test("Hello")} }
75
+ end
76
+
77
+ describe "unmatched operators" do
78
+ let(:opts) { {a: 'something unusual'} }
79
+
80
+ it { is_expected.to eq %{A something unusual} }
81
+ end
82
+ end