xero-ruby 2.6.0 → 2.8.0

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 (446) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +28 -9
  3. data/lib/xero-ruby.rb +4 -2
  4. data/lib/xero-ruby/api/accounting_api.rb +446 -446
  5. data/lib/xero-ruby/api/asset_api.rb +3 -7
  6. data/lib/xero-ruby/api/files_api.rb +49 -55
  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 +173 -173
  10. data/lib/xero-ruby/api/project_api.rb +45 -45
  11. data/lib/xero-ruby/api_client.rb +25 -89
  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 +7 -2
  15. data/lib/xero-ruby/models/accounting/account_type.rb +1 -1
  16. data/lib/xero-ruby/models/accounting/accounts.rb +7 -2
  17. data/lib/xero-ruby/models/accounting/accounts_payable.rb +7 -2
  18. data/lib/xero-ruby/models/accounting/accounts_receivable.rb +7 -2
  19. data/lib/xero-ruby/models/accounting/action.rb +7 -2
  20. data/lib/xero-ruby/models/accounting/actions.rb +7 -2
  21. data/lib/xero-ruby/models/accounting/address.rb +7 -2
  22. data/lib/xero-ruby/models/accounting/address_for_organisation.rb +7 -2
  23. data/lib/xero-ruby/models/accounting/allocation.rb +7 -2
  24. data/lib/xero-ruby/models/accounting/allocations.rb +7 -2
  25. data/lib/xero-ruby/models/accounting/attachment.rb +7 -2
  26. data/lib/xero-ruby/models/accounting/attachments.rb +7 -2
  27. data/lib/xero-ruby/models/accounting/balance_details.rb +7 -2
  28. data/lib/xero-ruby/models/accounting/balances.rb +7 -2
  29. data/lib/xero-ruby/models/accounting/bank_transaction.rb +7 -2
  30. data/lib/xero-ruby/models/accounting/bank_transactions.rb +7 -2
  31. data/lib/xero-ruby/models/accounting/bank_transfer.rb +7 -2
  32. data/lib/xero-ruby/models/accounting/bank_transfers.rb +7 -2
  33. data/lib/xero-ruby/models/accounting/batch_payment.rb +7 -2
  34. data/lib/xero-ruby/models/accounting/batch_payment_details.rb +7 -2
  35. data/lib/xero-ruby/models/accounting/batch_payments.rb +7 -2
  36. data/lib/xero-ruby/models/accounting/bill.rb +7 -2
  37. data/lib/xero-ruby/models/accounting/branding_theme.rb +7 -2
  38. data/lib/xero-ruby/models/accounting/branding_themes.rb +7 -2
  39. data/lib/xero-ruby/models/accounting/cis_org_setting.rb +7 -2
  40. data/lib/xero-ruby/models/{files/file_response204.rb → accounting/cis_org_settings.rb} +22 -15
  41. data/lib/xero-ruby/models/accounting/cis_setting.rb +7 -2
  42. data/lib/xero-ruby/models/accounting/cis_settings.rb +7 -2
  43. data/lib/xero-ruby/models/accounting/contact.rb +7 -2
  44. data/lib/xero-ruby/models/accounting/contact_group.rb +7 -2
  45. data/lib/xero-ruby/models/accounting/contact_groups.rb +7 -2
  46. data/lib/xero-ruby/models/accounting/contact_person.rb +7 -2
  47. data/lib/xero-ruby/models/accounting/contacts.rb +7 -2
  48. data/lib/xero-ruby/models/accounting/conversion_balances.rb +7 -2
  49. data/lib/xero-ruby/models/accounting/conversion_date.rb +7 -2
  50. data/lib/xero-ruby/models/accounting/country_code.rb +1 -1
  51. data/lib/xero-ruby/models/accounting/credit_note.rb +24 -7
  52. data/lib/xero-ruby/models/accounting/credit_notes.rb +7 -2
  53. data/lib/xero-ruby/models/accounting/currencies.rb +7 -2
  54. data/lib/xero-ruby/models/accounting/currency.rb +7 -2
  55. data/lib/xero-ruby/models/accounting/currency_code.rb +1 -1
  56. data/lib/xero-ruby/models/accounting/element.rb +7 -2
  57. data/lib/xero-ruby/models/accounting/employee.rb +7 -2
  58. data/lib/xero-ruby/models/accounting/employees.rb +7 -2
  59. data/lib/xero-ruby/models/accounting/error.rb +7 -2
  60. data/lib/xero-ruby/models/accounting/expense_claim.rb +7 -2
  61. data/lib/xero-ruby/models/accounting/expense_claims.rb +7 -2
  62. data/lib/xero-ruby/models/accounting/external_link.rb +7 -2
  63. data/lib/xero-ruby/models/accounting/history_record.rb +7 -2
  64. data/lib/xero-ruby/models/accounting/history_records.rb +7 -2
  65. data/lib/xero-ruby/models/accounting/import_summary.rb +7 -2
  66. data/lib/xero-ruby/models/accounting/import_summary_accounts.rb +7 -2
  67. data/lib/xero-ruby/models/accounting/import_summary_object.rb +7 -2
  68. data/lib/xero-ruby/models/accounting/import_summary_organisation.rb +7 -2
  69. data/lib/xero-ruby/models/accounting/invoice.rb +7 -2
  70. data/lib/xero-ruby/models/accounting/invoice_reminder.rb +7 -2
  71. data/lib/xero-ruby/models/accounting/invoice_reminders.rb +7 -2
  72. data/lib/xero-ruby/models/accounting/invoices.rb +7 -2
  73. data/lib/xero-ruby/models/accounting/item.rb +7 -2
  74. data/lib/xero-ruby/models/accounting/items.rb +7 -2
  75. data/lib/xero-ruby/models/accounting/journal.rb +7 -2
  76. data/lib/xero-ruby/models/accounting/journal_line.rb +7 -2
  77. data/lib/xero-ruby/models/accounting/journals.rb +7 -2
  78. data/lib/xero-ruby/models/accounting/line_amount_types.rb +1 -1
  79. data/lib/xero-ruby/models/accounting/line_item.rb +7 -2
  80. data/lib/xero-ruby/models/accounting/line_item_tracking.rb +7 -2
  81. data/lib/xero-ruby/models/accounting/linked_transaction.rb +7 -2
  82. data/lib/xero-ruby/models/accounting/linked_transactions.rb +7 -2
  83. data/lib/xero-ruby/models/accounting/manual_journal.rb +7 -2
  84. data/lib/xero-ruby/models/accounting/manual_journal_line.rb +7 -2
  85. data/lib/xero-ruby/models/accounting/manual_journals.rb +7 -2
  86. data/lib/xero-ruby/models/accounting/online_invoice.rb +7 -2
  87. data/lib/xero-ruby/models/accounting/online_invoices.rb +7 -2
  88. data/lib/xero-ruby/models/accounting/organisation.rb +7 -2
  89. data/lib/xero-ruby/models/accounting/organisations.rb +7 -2
  90. data/lib/xero-ruby/models/accounting/overpayment.rb +7 -2
  91. data/lib/xero-ruby/models/accounting/overpayments.rb +7 -2
  92. data/lib/xero-ruby/models/accounting/payment.rb +18 -3
  93. data/lib/xero-ruby/models/accounting/payment_delete.rb +7 -2
  94. data/lib/xero-ruby/models/accounting/payment_service.rb +7 -2
  95. data/lib/xero-ruby/models/accounting/payment_services.rb +7 -2
  96. data/lib/xero-ruby/models/accounting/payment_term.rb +7 -2
  97. data/lib/xero-ruby/models/accounting/payment_term_type.rb +1 -1
  98. data/lib/xero-ruby/models/accounting/payments.rb +7 -2
  99. data/lib/xero-ruby/models/accounting/phone.rb +7 -2
  100. data/lib/xero-ruby/models/accounting/prepayment.rb +7 -2
  101. data/lib/xero-ruby/models/accounting/prepayments.rb +7 -2
  102. data/lib/xero-ruby/models/accounting/purchase.rb +7 -2
  103. data/lib/xero-ruby/models/accounting/purchase_order.rb +7 -2
  104. data/lib/xero-ruby/models/accounting/purchase_orders.rb +7 -2
  105. data/lib/xero-ruby/models/accounting/quote.rb +7 -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 +7 -2
  109. data/lib/xero-ruby/models/accounting/receipt.rb +7 -2
  110. data/lib/xero-ruby/models/accounting/receipts.rb +7 -2
  111. data/lib/xero-ruby/models/accounting/repeating_invoice.rb +7 -2
  112. data/lib/xero-ruby/models/accounting/repeating_invoices.rb +7 -2
  113. data/lib/xero-ruby/models/accounting/report.rb +7 -2
  114. data/lib/xero-ruby/models/accounting/report_attribute.rb +7 -2
  115. data/lib/xero-ruby/models/accounting/report_cell.rb +7 -2
  116. data/lib/xero-ruby/models/accounting/report_fields.rb +7 -2
  117. data/lib/xero-ruby/models/accounting/report_row.rb +7 -2
  118. data/lib/xero-ruby/models/accounting/report_rows.rb +7 -2
  119. data/lib/xero-ruby/models/accounting/report_with_row.rb +7 -2
  120. data/lib/xero-ruby/models/accounting/report_with_rows.rb +7 -2
  121. data/lib/xero-ruby/models/accounting/reports.rb +7 -2
  122. data/lib/xero-ruby/models/accounting/request_empty.rb +7 -2
  123. data/lib/xero-ruby/models/accounting/row_type.rb +1 -1
  124. data/lib/xero-ruby/models/accounting/sales_tracking_category.rb +7 -2
  125. data/lib/xero-ruby/models/accounting/schedule.rb +7 -2
  126. data/lib/xero-ruby/models/accounting/setup.rb +7 -2
  127. data/lib/xero-ruby/models/accounting/tax_component.rb +7 -2
  128. data/lib/xero-ruby/models/accounting/tax_rate.rb +7 -2
  129. data/lib/xero-ruby/models/accounting/tax_rates.rb +7 -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 +7 -2
  132. data/lib/xero-ruby/models/accounting/time_zone.rb +1 -1
  133. data/lib/xero-ruby/models/accounting/tracking_categories.rb +7 -2
  134. data/lib/xero-ruby/models/accounting/tracking_category.rb +7 -2
  135. data/lib/xero-ruby/models/accounting/tracking_option.rb +7 -2
  136. data/lib/xero-ruby/models/accounting/tracking_options.rb +7 -2
  137. data/lib/xero-ruby/models/accounting/user.rb +7 -2
  138. data/lib/xero-ruby/models/accounting/users.rb +7 -2
  139. data/lib/xero-ruby/models/accounting/validation_error.rb +7 -2
  140. data/lib/xero-ruby/models/assets/asset.rb +7 -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 +7 -2
  144. data/lib/xero-ruby/models/assets/assets.rb +7 -2
  145. data/lib/xero-ruby/models/assets/book_depreciation_detail.rb +7 -2
  146. data/lib/xero-ruby/models/assets/book_depreciation_setting.rb +7 -2
  147. data/lib/xero-ruby/models/assets/error.rb +7 -2
  148. data/lib/xero-ruby/models/assets/field_validation_errors_element.rb +8 -3
  149. data/lib/xero-ruby/models/assets/pagination.rb +7 -2
  150. data/lib/xero-ruby/models/assets/resource_validation_errors_element.rb +8 -3
  151. data/lib/xero-ruby/models/assets/setting.rb +7 -2
  152. data/lib/xero-ruby/models/files/association.rb +7 -2
  153. data/lib/xero-ruby/models/files/file_object.rb +7 -2
  154. data/lib/xero-ruby/models/files/files.rb +7 -2
  155. data/lib/xero-ruby/models/files/folder.rb +7 -2
  156. data/lib/xero-ruby/models/files/folders.rb +7 -2
  157. data/lib/xero-ruby/models/files/inline_object.rb +7 -2
  158. data/lib/xero-ruby/models/files/object_group.rb +1 -1
  159. data/lib/xero-ruby/models/files/object_type.rb +1 -1
  160. data/lib/xero-ruby/models/files/user.rb +7 -2
  161. data/lib/xero-ruby/models/payroll_au/account.rb +7 -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 +7 -2
  165. data/lib/xero-ruby/models/payroll_au/bank_account.rb +7 -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 +7 -2
  168. data/lib/xero-ruby/models/payroll_au/deduction_type.rb +7 -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 +7 -2
  171. data/lib/xero-ruby/models/payroll_au/earnings_rate.rb +7 -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 +7 -2
  175. data/lib/xero-ruby/models/payroll_au/employee_status.rb +1 -1
  176. data/lib/xero-ruby/models/payroll_au/employees.rb +7 -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 +7 -2
  181. data/lib/xero-ruby/models/payroll_au/leave_accrual_line.rb +7 -2
  182. data/lib/xero-ruby/models/payroll_au/leave_application.rb +7 -2
  183. data/lib/xero-ruby/models/payroll_au/leave_applications.rb +7 -2
  184. data/lib/xero-ruby/models/payroll_au/leave_balance.rb +7 -2
  185. data/lib/xero-ruby/models/payroll_au/leave_earnings_line.rb +7 -2
  186. data/lib/xero-ruby/models/payroll_au/leave_line.rb +7 -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 +7 -2
  189. data/lib/xero-ruby/models/payroll_au/leave_period.rb +7 -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 +7 -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 +7 -2
  195. data/lib/xero-ruby/models/payroll_au/pay_item.rb +7 -2
  196. data/lib/xero-ruby/models/payroll_au/pay_items.rb +7 -2
  197. data/lib/xero-ruby/models/payroll_au/pay_run.rb +7 -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 +7 -2
  200. data/lib/xero-ruby/models/payroll_au/pay_template.rb +7 -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 +7 -2
  203. data/lib/xero-ruby/models/payroll_au/payroll_calendars.rb +7 -2
  204. data/lib/xero-ruby/models/payroll_au/payslip.rb +7 -2
  205. data/lib/xero-ruby/models/payroll_au/payslip_lines.rb +7 -2
  206. data/lib/xero-ruby/models/payroll_au/payslip_object.rb +7 -2
  207. data/lib/xero-ruby/models/payroll_au/payslip_summary.rb +7 -2
  208. data/lib/xero-ruby/models/payroll_au/payslips.rb +7 -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 +7 -2
  211. data/lib/xero-ruby/models/payroll_au/reimbursement_lines.rb +7 -2
  212. data/lib/xero-ruby/models/payroll_au/reimbursement_type.rb +7 -2
  213. data/lib/xero-ruby/models/payroll_au/residency_status.rb +1 -1
  214. data/lib/xero-ruby/models/payroll_au/settings.rb +7 -2
  215. data/lib/xero-ruby/models/payroll_au/settings_object.rb +7 -2
  216. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories.rb +7 -2
  217. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_employee_groups.rb +7 -2
  218. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_timesheet_categories.rb +7 -2
  219. data/lib/xero-ruby/models/payroll_au/state.rb +1 -1
  220. data/lib/xero-ruby/models/payroll_au/super_fund.rb +7 -2
  221. data/lib/xero-ruby/models/payroll_au/super_fund_product.rb +7 -2
  222. data/lib/xero-ruby/models/payroll_au/super_fund_products.rb +7 -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 +7 -2
  225. data/lib/xero-ruby/models/payroll_au/super_line.rb +8 -3
  226. data/lib/xero-ruby/models/payroll_au/super_membership.rb +8 -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 +7 -2
  230. data/lib/xero-ruby/models/payroll_au/tax_declaration.rb +7 -2
  231. data/lib/xero-ruby/models/payroll_au/tax_line.rb +7 -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 +7 -2
  234. data/lib/xero-ruby/models/payroll_au/timesheet_line.rb +7 -2
  235. data/lib/xero-ruby/models/payroll_au/timesheet_object.rb +7 -2
  236. data/lib/xero-ruby/models/payroll_au/timesheet_status.rb +1 -1
  237. data/lib/xero-ruby/models/payroll_au/timesheets.rb +7 -2
  238. data/lib/xero-ruby/models/payroll_au/validation_error.rb +7 -2
  239. data/lib/xero-ruby/models/payroll_nz/account.rb +6 -1
  240. data/lib/xero-ruby/models/payroll_nz/accounts.rb +6 -1
  241. data/lib/xero-ruby/models/payroll_nz/address.rb +6 -1
  242. data/lib/xero-ruby/models/payroll_nz/bank_account.rb +6 -1
  243. data/lib/xero-ruby/models/payroll_nz/benefit.rb +6 -1
  244. data/lib/xero-ruby/models/payroll_nz/deduction.rb +6 -1
  245. data/lib/xero-ruby/models/payroll_nz/deduction_line.rb +6 -1
  246. data/lib/xero-ruby/models/payroll_nz/deduction_object.rb +6 -1
  247. data/lib/xero-ruby/models/payroll_nz/deductions.rb +6 -1
  248. data/lib/xero-ruby/models/payroll_nz/earnings_line.rb +7 -2
  249. data/lib/xero-ruby/models/payroll_nz/earnings_order.rb +6 -1
  250. data/lib/xero-ruby/models/payroll_nz/earnings_order_object.rb +6 -1
  251. data/lib/xero-ruby/models/payroll_nz/earnings_orders.rb +6 -1
  252. data/lib/xero-ruby/models/payroll_nz/earnings_rate.rb +6 -1
  253. data/lib/xero-ruby/models/payroll_nz/earnings_rate_object.rb +6 -1
  254. data/lib/xero-ruby/models/payroll_nz/earnings_rates.rb +6 -1
  255. data/lib/xero-ruby/models/payroll_nz/earnings_template.rb +6 -1
  256. data/lib/xero-ruby/models/payroll_nz/earnings_template_object.rb +6 -1
  257. data/lib/xero-ruby/models/payroll_nz/employee.rb +6 -1
  258. data/lib/xero-ruby/models/payroll_nz/employee_earnings_templates.rb +6 -1
  259. data/lib/xero-ruby/models/payroll_nz/employee_leave.rb +6 -1
  260. data/lib/xero-ruby/models/payroll_nz/employee_leave_balance.rb +6 -1
  261. data/lib/xero-ruby/models/payroll_nz/employee_leave_balances.rb +6 -1
  262. data/lib/xero-ruby/models/payroll_nz/employee_leave_object.rb +6 -1
  263. data/lib/xero-ruby/models/payroll_nz/employee_leave_setup.rb +6 -1
  264. data/lib/xero-ruby/models/payroll_nz/employee_leave_setup_object.rb +6 -1
  265. data/lib/xero-ruby/models/payroll_nz/employee_leave_type.rb +6 -1
  266. data/lib/xero-ruby/models/payroll_nz/employee_leave_type_object.rb +6 -1
  267. data/lib/xero-ruby/models/payroll_nz/employee_leave_types.rb +6 -1
  268. data/lib/xero-ruby/models/payroll_nz/employee_leaves.rb +6 -1
  269. data/lib/xero-ruby/models/payroll_nz/employee_object.rb +6 -1
  270. data/lib/xero-ruby/models/payroll_nz/employee_opening_balance.rb +6 -1
  271. data/lib/xero-ruby/models/payroll_nz/employee_opening_balances_object.rb +6 -1
  272. data/lib/xero-ruby/models/payroll_nz/employee_pay_template.rb +6 -1
  273. data/lib/xero-ruby/models/payroll_nz/employee_pay_template_object.rb +6 -1
  274. data/lib/xero-ruby/models/payroll_nz/employee_pay_templates.rb +6 -1
  275. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance.rb +6 -1
  276. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance_object.rb +6 -1
  277. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_summary.rb +6 -1
  278. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leaves_summaries.rb +6 -1
  279. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave.rb +7 -2
  280. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave_object.rb +6 -1
  281. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leaves.rb +6 -1
  282. data/lib/xero-ruby/models/payroll_nz/employee_tax.rb +6 -1
  283. data/lib/xero-ruby/models/payroll_nz/employee_tax_object.rb +6 -1
  284. data/lib/xero-ruby/models/payroll_nz/employees.rb +6 -1
  285. data/lib/xero-ruby/models/payroll_nz/employment.rb +6 -1
  286. data/lib/xero-ruby/models/payroll_nz/employment_object.rb +6 -1
  287. data/lib/xero-ruby/models/payroll_nz/gross_earnings_history.rb +6 -1
  288. data/lib/xero-ruby/models/payroll_nz/invalid_field.rb +6 -1
  289. data/lib/xero-ruby/models/payroll_nz/leave_accrual_line.rb +6 -1
  290. data/lib/xero-ruby/models/payroll_nz/leave_earnings_line.rb +7 -2
  291. data/lib/xero-ruby/models/payroll_nz/leave_period.rb +6 -1
  292. data/lib/xero-ruby/models/payroll_nz/leave_periods.rb +6 -1
  293. data/lib/xero-ruby/models/payroll_nz/leave_type.rb +6 -1
  294. data/lib/xero-ruby/models/payroll_nz/leave_type_object.rb +6 -1
  295. data/lib/xero-ruby/models/payroll_nz/leave_types.rb +6 -1
  296. data/lib/xero-ruby/models/payroll_nz/pagination.rb +6 -1
  297. data/lib/xero-ruby/models/payroll_nz/pay_run.rb +6 -1
  298. data/lib/xero-ruby/models/payroll_nz/pay_run_calendar.rb +6 -1
  299. data/lib/xero-ruby/models/payroll_nz/pay_run_calendar_object.rb +6 -1
  300. data/lib/xero-ruby/models/payroll_nz/pay_run_calendars.rb +6 -1
  301. data/lib/xero-ruby/models/payroll_nz/pay_run_object.rb +6 -1
  302. data/lib/xero-ruby/models/payroll_nz/pay_runs.rb +6 -1
  303. data/lib/xero-ruby/models/payroll_nz/pay_slip.rb +6 -1
  304. data/lib/xero-ruby/models/payroll_nz/pay_slip_object.rb +6 -1
  305. data/lib/xero-ruby/models/payroll_nz/pay_slips.rb +6 -1
  306. data/lib/xero-ruby/models/payroll_nz/payment_line.rb +6 -1
  307. data/lib/xero-ruby/models/payroll_nz/payment_method.rb +6 -1
  308. data/lib/xero-ruby/models/payroll_nz/payment_method_object.rb +6 -1
  309. data/lib/xero-ruby/models/payroll_nz/problem.rb +6 -1
  310. data/lib/xero-ruby/models/payroll_nz/reimbursement.rb +6 -1
  311. data/lib/xero-ruby/models/payroll_nz/reimbursement_line.rb +6 -1
  312. data/lib/xero-ruby/models/payroll_nz/reimbursement_object.rb +6 -1
  313. data/lib/xero-ruby/models/payroll_nz/reimbursements.rb +6 -1
  314. data/lib/xero-ruby/models/payroll_nz/salary_and_wage.rb +6 -1
  315. data/lib/xero-ruby/models/payroll_nz/salary_and_wage_object.rb +6 -1
  316. data/lib/xero-ruby/models/payroll_nz/salary_and_wages.rb +6 -1
  317. data/lib/xero-ruby/models/payroll_nz/settings.rb +6 -1
  318. data/lib/xero-ruby/models/payroll_nz/statutory_deduction.rb +6 -1
  319. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_line.rb +6 -1
  320. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_object.rb +6 -1
  321. data/lib/xero-ruby/models/payroll_nz/statutory_deductions.rb +6 -1
  322. data/lib/xero-ruby/models/payroll_nz/superannuation_line.rb +7 -2
  323. data/lib/xero-ruby/models/payroll_nz/superannuation_object.rb +6 -1
  324. data/lib/xero-ruby/models/payroll_nz/superannuations.rb +6 -1
  325. data/lib/xero-ruby/models/payroll_nz/tax_line.rb +6 -1
  326. data/lib/xero-ruby/models/payroll_nz/tax_settings.rb +6 -1
  327. data/lib/xero-ruby/models/payroll_nz/timesheet.rb +7 -2
  328. data/lib/xero-ruby/models/payroll_nz/timesheet_earnings_line.rb +7 -2
  329. data/lib/xero-ruby/models/payroll_nz/timesheet_line.rb +6 -1
  330. data/lib/xero-ruby/models/payroll_nz/timesheet_line_object.rb +6 -1
  331. data/lib/xero-ruby/models/payroll_nz/timesheet_object.rb +6 -1
  332. data/lib/xero-ruby/models/payroll_nz/timesheets.rb +6 -1
  333. data/lib/xero-ruby/models/payroll_nz/tracking_categories.rb +6 -1
  334. data/lib/xero-ruby/models/payroll_nz/tracking_category.rb +6 -1
  335. data/lib/xero-ruby/models/payroll_uk/account.rb +6 -1
  336. data/lib/xero-ruby/models/payroll_uk/accounts.rb +6 -1
  337. data/lib/xero-ruby/models/payroll_uk/address.rb +6 -1
  338. data/lib/xero-ruby/models/payroll_uk/bank_account.rb +6 -1
  339. data/lib/xero-ruby/models/payroll_uk/benefit.rb +6 -1
  340. data/lib/xero-ruby/models/payroll_uk/benefit_line.rb +6 -1
  341. data/lib/xero-ruby/models/payroll_uk/benefit_object.rb +6 -1
  342. data/lib/xero-ruby/models/payroll_uk/benefits.rb +6 -1
  343. data/lib/xero-ruby/models/payroll_uk/court_order_line.rb +6 -1
  344. data/lib/xero-ruby/models/payroll_uk/deduction.rb +6 -1
  345. data/lib/xero-ruby/models/payroll_uk/deduction_line.rb +6 -1
  346. data/lib/xero-ruby/models/payroll_uk/deduction_object.rb +6 -1
  347. data/lib/xero-ruby/models/payroll_uk/deductions.rb +6 -1
  348. data/lib/xero-ruby/models/payroll_uk/earnings_line.rb +6 -1
  349. data/lib/xero-ruby/models/payroll_uk/earnings_order.rb +6 -1
  350. data/lib/xero-ruby/models/payroll_uk/earnings_order_object.rb +6 -1
  351. data/lib/xero-ruby/models/payroll_uk/earnings_orders.rb +6 -1
  352. data/lib/xero-ruby/models/payroll_uk/earnings_rate.rb +15 -3
  353. data/lib/xero-ruby/models/payroll_uk/earnings_rate_object.rb +6 -1
  354. data/lib/xero-ruby/models/payroll_uk/earnings_rates.rb +6 -1
  355. data/lib/xero-ruby/models/payroll_uk/earnings_template.rb +6 -1
  356. data/lib/xero-ruby/models/payroll_uk/earnings_template_object.rb +6 -1
  357. data/lib/xero-ruby/models/payroll_uk/employee.rb +6 -1
  358. data/lib/xero-ruby/models/payroll_uk/employee_leave.rb +6 -1
  359. data/lib/xero-ruby/models/payroll_uk/employee_leave_balance.rb +6 -1
  360. data/lib/xero-ruby/models/payroll_uk/employee_leave_balances.rb +6 -1
  361. data/lib/xero-ruby/models/payroll_uk/employee_leave_object.rb +6 -1
  362. data/lib/xero-ruby/models/payroll_uk/employee_leave_type.rb +6 -1
  363. data/lib/xero-ruby/models/payroll_uk/employee_leave_type_object.rb +6 -1
  364. data/lib/xero-ruby/models/payroll_uk/employee_leave_types.rb +6 -1
  365. data/lib/xero-ruby/models/payroll_uk/employee_leaves.rb +6 -1
  366. data/lib/xero-ruby/models/payroll_uk/employee_object.rb +6 -1
  367. data/lib/xero-ruby/models/payroll_uk/employee_opening_balances.rb +6 -1
  368. data/lib/xero-ruby/models/payroll_uk/employee_opening_balances_object.rb +6 -1
  369. data/lib/xero-ruby/models/payroll_uk/employee_pay_template.rb +6 -1
  370. data/lib/xero-ruby/models/payroll_uk/employee_pay_template_object.rb +6 -1
  371. data/lib/xero-ruby/models/payroll_uk/employee_pay_templates.rb +6 -1
  372. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance.rb +6 -1
  373. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance_object.rb +6 -1
  374. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_summary.rb +6 -1
  375. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leaves_summaries.rb +6 -1
  376. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave.rb +7 -2
  377. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave_object.rb +6 -1
  378. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leaves.rb +6 -1
  379. data/lib/xero-ruby/models/payroll_uk/employee_tax.rb +6 -1
  380. data/lib/xero-ruby/models/payroll_uk/employee_tax_object.rb +6 -1
  381. data/lib/xero-ruby/models/payroll_uk/employees.rb +6 -1
  382. data/lib/xero-ruby/models/payroll_uk/employment.rb +6 -1
  383. data/lib/xero-ruby/models/payroll_uk/employment_object.rb +6 -1
  384. data/lib/xero-ruby/models/payroll_uk/invalid_field.rb +6 -1
  385. data/lib/xero-ruby/models/payroll_uk/leave_accrual_line.rb +6 -1
  386. data/lib/xero-ruby/models/payroll_uk/leave_earnings_line.rb +6 -1
  387. data/lib/xero-ruby/models/payroll_uk/leave_period.rb +6 -1
  388. data/lib/xero-ruby/models/payroll_uk/leave_periods.rb +6 -1
  389. data/lib/xero-ruby/models/payroll_uk/leave_type.rb +6 -1
  390. data/lib/xero-ruby/models/payroll_uk/leave_type_object.rb +6 -1
  391. data/lib/xero-ruby/models/payroll_uk/leave_types.rb +6 -1
  392. data/lib/xero-ruby/models/payroll_uk/pagination.rb +6 -1
  393. data/lib/xero-ruby/models/payroll_uk/pay_run.rb +6 -1
  394. data/lib/xero-ruby/models/payroll_uk/pay_run_calendar.rb +6 -1
  395. data/lib/xero-ruby/models/payroll_uk/pay_run_calendar_object.rb +6 -1
  396. data/lib/xero-ruby/models/payroll_uk/pay_run_calendars.rb +6 -1
  397. data/lib/xero-ruby/models/payroll_uk/pay_run_object.rb +6 -1
  398. data/lib/xero-ruby/models/payroll_uk/pay_runs.rb +6 -1
  399. data/lib/xero-ruby/models/payroll_uk/payment_line.rb +6 -1
  400. data/lib/xero-ruby/models/payroll_uk/payment_method.rb +6 -1
  401. data/lib/xero-ruby/models/payroll_uk/payment_method_object.rb +6 -1
  402. data/lib/xero-ruby/models/payroll_uk/payslip.rb +6 -1
  403. data/lib/xero-ruby/models/payroll_uk/payslip_object.rb +6 -1
  404. data/lib/xero-ruby/models/payroll_uk/payslips.rb +6 -1
  405. data/lib/xero-ruby/models/payroll_uk/problem.rb +6 -1
  406. data/lib/xero-ruby/models/payroll_uk/reimbursement.rb +6 -1
  407. data/lib/xero-ruby/models/payroll_uk/reimbursement_line.rb +6 -1
  408. data/lib/xero-ruby/models/payroll_uk/reimbursement_object.rb +6 -1
  409. data/lib/xero-ruby/models/payroll_uk/reimbursements.rb +6 -1
  410. data/lib/xero-ruby/models/payroll_uk/salary_and_wage.rb +6 -1
  411. data/lib/xero-ruby/models/payroll_uk/salary_and_wage_object.rb +6 -1
  412. data/lib/xero-ruby/models/payroll_uk/salary_and_wages.rb +6 -1
  413. data/lib/xero-ruby/models/payroll_uk/settings.rb +6 -1
  414. data/lib/xero-ruby/models/payroll_uk/statutory_deduction.rb +6 -1
  415. data/lib/xero-ruby/models/payroll_uk/tax_line.rb +6 -1
  416. data/lib/xero-ruby/models/payroll_uk/timesheet.rb +7 -2
  417. data/lib/xero-ruby/models/payroll_uk/timesheet_earnings_line.rb +6 -1
  418. data/lib/xero-ruby/models/payroll_uk/timesheet_line.rb +6 -1
  419. data/lib/xero-ruby/models/payroll_uk/timesheet_line_object.rb +6 -1
  420. data/lib/xero-ruby/models/payroll_uk/timesheet_object.rb +6 -1
  421. data/lib/xero-ruby/models/payroll_uk/timesheets.rb +6 -1
  422. data/lib/xero-ruby/models/payroll_uk/tracking_categories.rb +6 -1
  423. data/lib/xero-ruby/models/payroll_uk/tracking_category.rb +6 -1
  424. data/lib/xero-ruby/models/projects/amount.rb +6 -1
  425. data/lib/xero-ruby/models/projects/error.rb +6 -1
  426. data/lib/xero-ruby/models/projects/pagination.rb +6 -1
  427. data/lib/xero-ruby/models/projects/project.rb +6 -1
  428. data/lib/xero-ruby/models/projects/project_create_or_update.rb +6 -1
  429. data/lib/xero-ruby/models/projects/project_patch.rb +6 -1
  430. data/lib/xero-ruby/models/projects/project_user.rb +6 -1
  431. data/lib/xero-ruby/models/projects/project_users.rb +6 -1
  432. data/lib/xero-ruby/models/projects/projects.rb +6 -1
  433. data/lib/xero-ruby/models/projects/task.rb +6 -1
  434. data/lib/xero-ruby/models/projects/task_create_or_update.rb +6 -1
  435. data/lib/xero-ruby/models/projects/tasks.rb +6 -1
  436. data/lib/xero-ruby/models/projects/time_entries.rb +6 -1
  437. data/lib/xero-ruby/models/projects/time_entry.rb +6 -1
  438. data/lib/xero-ruby/models/projects/time_entry_create_or_update.rb +6 -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/configuration_spec.rb +1 -1
  443. data/spec/helper_methods_spec.rb +16 -4
  444. data/spec/where_spec.rb +82 -0
  445. metadata +8 -6
  446. data/spec/files/models/file_response204_spec.rb +0 -41
@@ -286,7 +286,7 @@ module XeroRuby::Projects
286
286
 
287
287
  # Returns the object in the form of hash
288
288
  # @return [Hash] Returns the object in the form of hash
289
- def to_hash(downcase: true)
289
+ def to_hash(downcase: false)
290
290
  hash = {}
291
291
  self.class.attribute_map.each_pair do |attr, param|
292
292
  value = self.send(attr)
@@ -297,6 +297,11 @@ module XeroRuby::Projects
297
297
  hash
298
298
  end
299
299
 
300
+ # Returns the object in the form of hash with snake_case
301
+ def to_attributes
302
+ to_hash(downcase: true)
303
+ end
304
+
300
305
  # Outputs non-array value in the form of hash
301
306
  # For object, use to_hash. Otherwise, just return the value
302
307
  # @param [Object] value Any valid value
@@ -230,7 +230,7 @@ module XeroRuby::Projects
230
230
 
231
231
  # Returns the object in the form of hash
232
232
  # @return [Hash] Returns the object in the form of hash
233
- def to_hash(downcase: true)
233
+ def to_hash(downcase: false)
234
234
  hash = {}
235
235
  self.class.attribute_map.each_pair do |attr, param|
236
236
  value = self.send(attr)
@@ -241,6 +241,11 @@ module XeroRuby::Projects
241
241
  hash
242
242
  end
243
243
 
244
+ # Returns the object in the form of hash with snake_case
245
+ def to_attributes
246
+ to_hash(downcase: true)
247
+ end
248
+
244
249
  # Outputs non-array value in the form of hash
245
250
  # For object, use to_hash. Otherwise, just return the value
246
251
  # @param [Object] value Any valid value
@@ -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 OpenAPI document: 2.8.2
10
+ The version of the XeroOpenAPI document: 2.9.4
11
11
  =end
12
12
 
13
13
  module XeroRuby
14
- VERSION = '2.6.0'
14
+ VERSION = '2.8.0'
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
@@ -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/')
@@ -59,12 +59,24 @@ describe 'shared helper methdods' do
59
59
  )
60
60
  }
61
61
 
62
- it 'can serialize invoice attributes into a snake_case hash' do
63
- expect(invoice.to_hash).to eq({currency_code: "USD", has_attachments: false, has_errors: false, invoice_number: "abc-123", total_discount: 100, type: "ACCPAY"})
62
+ describe '#to_hash' do
63
+ it 'can serialize invoice attributes into a PascalCase hash' do
64
+ expect(invoice.to_hash).to eq(:CurrencyCode => "USD", :HasAttachments => false, :HasErrors => false, :InvoiceNumber => "abc-123", :TotalDiscount => 100, :Type => "ACCPAY")
65
+ end
66
+
67
+ it 'can serialize contact attributes into a PascalCase hash' do
68
+ expect(contact.to_hash).to eq(:AccountNumber => "abc-123", :ContactStatus => "ACTIVE", :EmailAddress => "email@gmail.com", :FirstName => "Contact", :HasAttachments => false, :HasValidationErrors => false, :LastName => "Name", :Name => "Contact Name")
69
+ end
64
70
  end
65
71
 
66
- it 'can serialize contact attributes into a snake_case hash' do
67
- expect(contact.to_hash).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"})
72
+ describe '#attributes' do
73
+ it 'can serialize invoice attributes into a snake_case hash' do
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
+ end
76
+
77
+ it 'can serialize contact attributes into a snake_case hash' do
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
+ end
68
80
  end
69
81
  end
70
82
  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
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xero-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0
4
+ version: 2.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Xero API Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-20 00:00:00.000000000 Z
11
+ date: 2021-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -115,6 +115,7 @@ files:
115
115
  - lib/xero-ruby/models/accounting/branding_theme.rb
116
116
  - lib/xero-ruby/models/accounting/branding_themes.rb
117
117
  - lib/xero-ruby/models/accounting/cis_org_setting.rb
118
+ - lib/xero-ruby/models/accounting/cis_org_settings.rb
118
119
  - lib/xero-ruby/models/accounting/cis_setting.rb
119
120
  - lib/xero-ruby/models/accounting/cis_settings.rb
120
121
  - lib/xero-ruby/models/accounting/contact.rb
@@ -228,7 +229,6 @@ files:
228
229
  - lib/xero-ruby/models/assets/setting.rb
229
230
  - lib/xero-ruby/models/files/association.rb
230
231
  - lib/xero-ruby/models/files/file_object.rb
231
- - lib/xero-ruby/models/files/file_response204.rb
232
232
  - lib/xero-ruby/models/files/files.rb
233
233
  - lib/xero-ruby/models/files/folder.rb
234
234
  - lib/xero-ruby/models/files/folders.rb
@@ -521,7 +521,9 @@ files:
521
521
  - lib/xero-ruby/models/projects/time_entries.rb
522
522
  - lib/xero-ruby/models/projects/time_entry.rb
523
523
  - lib/xero-ruby/models/projects/time_entry_create_or_update.rb
524
+ - lib/xero-ruby/string_serialization.rb
524
525
  - lib/xero-ruby/version.rb
526
+ - lib/xero-ruby/where.rb
525
527
  - spec/accounting/api/accounting_api_spec.rb
526
528
  - spec/accounting/models/account_spec.rb
527
529
  - spec/accounting/models/account_type_spec.rb
@@ -656,7 +658,6 @@ files:
656
658
  - spec/files/api/files_api_spec.rb
657
659
  - spec/files/models/association_spec.rb
658
660
  - spec/files/models/file_object_spec.rb
659
- - spec/files/models/file_response204_spec.rb
660
661
  - spec/files/models/files_spec.rb
661
662
  - spec/files/models/folder_spec.rb
662
663
  - spec/files/models/folders_spec.rb
@@ -954,6 +955,7 @@ files:
954
955
  - spec/projects/models/time_entry_create_or_update_spec.rb
955
956
  - spec/projects/models/time_entry_spec.rb
956
957
  - spec/spec_helper.rb
958
+ - spec/where_spec.rb
957
959
  homepage: https://developer.xero.com
958
960
  licenses:
959
961
  - Unlicense
@@ -976,7 +978,7 @@ requirements: []
976
978
  rubygems_version: 3.1.4
977
979
  signing_key:
978
980
  specification_version: 4
979
- summary: Accounting API Ruby Gem
981
+ summary: Xero Accounting API Ruby Gem
980
982
  test_files:
981
983
  - spec/accounting/models/bank_transfer_spec.rb
982
984
  - spec/accounting/models/error_spec.rb
@@ -1114,7 +1116,6 @@ test_files:
1114
1116
  - spec/files/models/object_group_spec.rb
1115
1117
  - spec/files/models/folder_spec.rb
1116
1118
  - spec/files/models/files_spec.rb
1117
- - spec/files/models/file_response204_spec.rb
1118
1119
  - spec/files/models/inline_object_spec.rb
1119
1120
  - spec/files/models/object_type_spec.rb
1120
1121
  - spec/files/models/association_spec.rb
@@ -1410,3 +1411,4 @@ test_files:
1410
1411
  - spec/projects/models/task_create_or_update_spec.rb
1411
1412
  - spec/projects/api/project_api_spec.rb
1412
1413
  - spec/spec_helper.rb
1414
+ - spec/where_spec.rb
@@ -1,41 +0,0 @@
1
- =begin
2
- #Xero Files API
3
-
4
- #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
-
6
- The version of the OpenAPI document: 2.3.7
7
- Contact: api@xero.com
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
10
-
11
- =end
12
-
13
- require 'spec_helper'
14
- require 'json'
15
- require 'date'
16
-
17
- # Unit tests for XeroRuby::Files::FileResponse204
18
- # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
- # Please update as you see appropriate
20
- describe 'FileResponse204' do
21
- before do
22
- # run before each test
23
- @instance = XeroRuby::Files::FileResponse204.new
24
- end
25
-
26
- after do
27
- # run after each test
28
- end
29
-
30
- describe 'test an instance of FileResponse204' do
31
- it 'should create an instance of FileResponse204' do
32
- expect(@instance).to be_instance_of(XeroRuby::Files::FileResponse204)
33
- end
34
- end
35
- describe 'test attribute "status"' do
36
- it 'should work' do
37
- # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
38
- end
39
- end
40
-
41
- end