xero-ruby 2.4.1 → 2.6.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 (451) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +34 -5
  3. data/lib/xero-ruby.rb +1 -1
  4. data/lib/xero-ruby/api/accounting_api.rb +6 -1
  5. data/lib/xero-ruby/api/asset_api.rb +0 -1
  6. data/lib/xero-ruby/api/files_api.rb +0 -1
  7. data/lib/xero-ruby/api/payroll_au_api.rb +0 -1
  8. data/lib/xero-ruby/api/payroll_nz_api.rb +0 -1
  9. data/lib/xero-ruby/api/payroll_uk_api.rb +0 -1
  10. data/lib/xero-ruby/api/project_api.rb +0 -1
  11. data/lib/xero-ruby/api_client.rb +34 -27
  12. data/lib/xero-ruby/api_error.rb +3 -3
  13. data/lib/xero-ruby/configuration.rb +0 -1
  14. data/lib/xero-ruby/models/accounting/account.rb +14 -7
  15. data/lib/xero-ruby/models/accounting/account_type.rb +0 -1
  16. data/lib/xero-ruby/models/accounting/accounts.rb +14 -6
  17. data/lib/xero-ruby/models/accounting/accounts_payable.rb +14 -6
  18. data/lib/xero-ruby/models/accounting/accounts_receivable.rb +14 -6
  19. data/lib/xero-ruby/models/accounting/action.rb +14 -6
  20. data/lib/xero-ruby/models/accounting/actions.rb +14 -6
  21. data/lib/xero-ruby/models/accounting/address.rb +16 -9
  22. data/lib/xero-ruby/models/accounting/address_for_organisation.rb +478 -0
  23. data/lib/xero-ruby/models/accounting/allocation.rb +14 -6
  24. data/lib/xero-ruby/models/accounting/allocations.rb +14 -6
  25. data/lib/xero-ruby/models/accounting/attachment.rb +14 -6
  26. data/lib/xero-ruby/models/accounting/attachments.rb +14 -6
  27. data/lib/xero-ruby/models/accounting/balance_details.rb +14 -6
  28. data/lib/xero-ruby/models/accounting/balances.rb +14 -6
  29. data/lib/xero-ruby/models/accounting/bank_transaction.rb +14 -6
  30. data/lib/xero-ruby/models/accounting/bank_transactions.rb +14 -6
  31. data/lib/xero-ruby/models/accounting/bank_transfer.rb +14 -6
  32. data/lib/xero-ruby/models/accounting/bank_transfers.rb +14 -6
  33. data/lib/xero-ruby/models/accounting/batch_payment.rb +14 -6
  34. data/lib/xero-ruby/models/accounting/batch_payment_details.rb +14 -6
  35. data/lib/xero-ruby/models/accounting/batch_payments.rb +14 -6
  36. data/lib/xero-ruby/models/accounting/bill.rb +14 -6
  37. data/lib/xero-ruby/models/accounting/branding_theme.rb +14 -6
  38. data/lib/xero-ruby/models/accounting/branding_themes.rb +14 -6
  39. data/lib/xero-ruby/models/accounting/cis_org_setting.rb +15 -7
  40. data/lib/xero-ruby/models/accounting/cis_setting.rb +15 -7
  41. data/lib/xero-ruby/models/accounting/cis_settings.rb +14 -6
  42. data/lib/xero-ruby/models/accounting/contact.rb +14 -6
  43. data/lib/xero-ruby/models/accounting/contact_group.rb +14 -6
  44. data/lib/xero-ruby/models/accounting/contact_groups.rb +14 -6
  45. data/lib/xero-ruby/models/accounting/contact_person.rb +14 -6
  46. data/lib/xero-ruby/models/accounting/contacts.rb +14 -6
  47. data/lib/xero-ruby/models/accounting/conversion_balances.rb +14 -6
  48. data/lib/xero-ruby/models/accounting/conversion_date.rb +14 -6
  49. data/lib/xero-ruby/models/accounting/country_code.rb +0 -1
  50. data/lib/xero-ruby/models/accounting/credit_note.rb +35 -7
  51. data/lib/xero-ruby/models/accounting/credit_notes.rb +14 -6
  52. data/lib/xero-ruby/models/accounting/currencies.rb +14 -6
  53. data/lib/xero-ruby/models/accounting/currency.rb +14 -6
  54. data/lib/xero-ruby/models/accounting/currency_code.rb +0 -1
  55. data/lib/xero-ruby/models/accounting/element.rb +14 -6
  56. data/lib/xero-ruby/models/accounting/employee.rb +14 -6
  57. data/lib/xero-ruby/models/accounting/employees.rb +14 -6
  58. data/lib/xero-ruby/models/accounting/error.rb +14 -6
  59. data/lib/xero-ruby/models/accounting/expense_claim.rb +14 -6
  60. data/lib/xero-ruby/models/accounting/expense_claims.rb +14 -6
  61. data/lib/xero-ruby/models/accounting/external_link.rb +14 -6
  62. data/lib/xero-ruby/models/accounting/history_record.rb +14 -6
  63. data/lib/xero-ruby/models/accounting/history_records.rb +14 -6
  64. data/lib/xero-ruby/models/accounting/import_summary.rb +14 -6
  65. data/lib/xero-ruby/models/accounting/import_summary_accounts.rb +14 -6
  66. data/lib/xero-ruby/models/accounting/import_summary_object.rb +14 -6
  67. data/lib/xero-ruby/models/accounting/import_summary_organisation.rb +14 -6
  68. data/lib/xero-ruby/models/accounting/invoice.rb +26 -23
  69. data/lib/xero-ruby/models/accounting/invoice_reminder.rb +14 -6
  70. data/lib/xero-ruby/models/accounting/invoice_reminders.rb +14 -6
  71. data/lib/xero-ruby/models/accounting/invoices.rb +14 -6
  72. data/lib/xero-ruby/models/accounting/item.rb +14 -6
  73. data/lib/xero-ruby/models/accounting/items.rb +14 -6
  74. data/lib/xero-ruby/models/accounting/journal.rb +14 -6
  75. data/lib/xero-ruby/models/accounting/journal_line.rb +14 -6
  76. data/lib/xero-ruby/models/accounting/journals.rb +14 -6
  77. data/lib/xero-ruby/models/accounting/line_amount_types.rb +0 -1
  78. data/lib/xero-ruby/models/accounting/line_item.rb +14 -6
  79. data/lib/xero-ruby/models/accounting/line_item_tracking.rb +14 -6
  80. data/lib/xero-ruby/models/accounting/linked_transaction.rb +14 -6
  81. data/lib/xero-ruby/models/accounting/linked_transactions.rb +14 -6
  82. data/lib/xero-ruby/models/accounting/manual_journal.rb +14 -6
  83. data/lib/xero-ruby/models/accounting/manual_journal_line.rb +14 -6
  84. data/lib/xero-ruby/models/accounting/manual_journals.rb +14 -6
  85. data/lib/xero-ruby/models/accounting/online_invoice.rb +14 -6
  86. data/lib/xero-ruby/models/accounting/online_invoices.rb +14 -6
  87. data/lib/xero-ruby/models/accounting/organisation.rb +15 -9
  88. data/lib/xero-ruby/models/accounting/organisations.rb +14 -6
  89. data/lib/xero-ruby/models/accounting/overpayment.rb +14 -6
  90. data/lib/xero-ruby/models/accounting/overpayments.rb +14 -6
  91. data/lib/xero-ruby/models/accounting/payment.rb +14 -6
  92. data/lib/xero-ruby/models/accounting/payment_delete.rb +14 -6
  93. data/lib/xero-ruby/models/accounting/payment_service.rb +14 -6
  94. data/lib/xero-ruby/models/accounting/payment_services.rb +14 -6
  95. data/lib/xero-ruby/models/accounting/payment_term.rb +14 -6
  96. data/lib/xero-ruby/models/accounting/payment_term_type.rb +0 -1
  97. data/lib/xero-ruby/models/accounting/payments.rb +14 -6
  98. data/lib/xero-ruby/models/accounting/phone.rb +14 -6
  99. data/lib/xero-ruby/models/accounting/prepayment.rb +14 -6
  100. data/lib/xero-ruby/models/accounting/prepayments.rb +14 -6
  101. data/lib/xero-ruby/models/accounting/purchase.rb +14 -6
  102. data/lib/xero-ruby/models/accounting/purchase_order.rb +14 -6
  103. data/lib/xero-ruby/models/accounting/purchase_orders.rb +14 -6
  104. data/lib/xero-ruby/models/accounting/quote.rb +14 -6
  105. data/lib/xero-ruby/models/accounting/quote_line_amount_types.rb +0 -1
  106. data/lib/xero-ruby/models/accounting/quote_status_codes.rb +0 -1
  107. data/lib/xero-ruby/models/accounting/quotes.rb +14 -6
  108. data/lib/xero-ruby/models/accounting/receipt.rb +14 -6
  109. data/lib/xero-ruby/models/accounting/receipts.rb +14 -6
  110. data/lib/xero-ruby/models/accounting/repeating_invoice.rb +14 -6
  111. data/lib/xero-ruby/models/accounting/repeating_invoices.rb +14 -6
  112. data/lib/xero-ruby/models/accounting/report.rb +14 -6
  113. data/lib/xero-ruby/models/accounting/report_attribute.rb +14 -6
  114. data/lib/xero-ruby/models/accounting/report_cell.rb +14 -6
  115. data/lib/xero-ruby/models/accounting/report_fields.rb +14 -6
  116. data/lib/xero-ruby/models/accounting/report_row.rb +14 -6
  117. data/lib/xero-ruby/models/accounting/report_rows.rb +14 -6
  118. data/lib/xero-ruby/models/accounting/report_with_row.rb +14 -6
  119. data/lib/xero-ruby/models/accounting/report_with_rows.rb +14 -6
  120. data/lib/xero-ruby/models/accounting/reports.rb +14 -6
  121. data/lib/xero-ruby/models/accounting/request_empty.rb +14 -6
  122. data/lib/xero-ruby/models/accounting/row_type.rb +0 -1
  123. data/lib/xero-ruby/models/accounting/sales_tracking_category.rb +14 -6
  124. data/lib/xero-ruby/models/accounting/schedule.rb +14 -6
  125. data/lib/xero-ruby/models/accounting/setup.rb +14 -6
  126. data/lib/xero-ruby/models/accounting/tax_component.rb +14 -6
  127. data/lib/xero-ruby/models/accounting/tax_rate.rb +14 -6
  128. data/lib/xero-ruby/models/accounting/tax_rates.rb +14 -6
  129. data/lib/xero-ruby/models/accounting/tax_type.rb +0 -1
  130. data/lib/xero-ruby/models/accounting/ten_ninety_nine_contact.rb +14 -6
  131. data/lib/xero-ruby/models/accounting/time_zone.rb +0 -1
  132. data/lib/xero-ruby/models/accounting/tracking_categories.rb +14 -6
  133. data/lib/xero-ruby/models/accounting/tracking_category.rb +14 -6
  134. data/lib/xero-ruby/models/accounting/tracking_option.rb +14 -6
  135. data/lib/xero-ruby/models/accounting/tracking_options.rb +14 -6
  136. data/lib/xero-ruby/models/accounting/user.rb +14 -6
  137. data/lib/xero-ruby/models/accounting/users.rb +14 -6
  138. data/lib/xero-ruby/models/accounting/validation_error.rb +14 -6
  139. data/lib/xero-ruby/models/assets/asset.rb +14 -6
  140. data/lib/xero-ruby/models/assets/asset_status.rb +0 -1
  141. data/lib/xero-ruby/models/assets/asset_status_query_param.rb +0 -1
  142. data/lib/xero-ruby/models/assets/asset_type.rb +14 -6
  143. data/lib/xero-ruby/models/assets/assets.rb +14 -6
  144. data/lib/xero-ruby/models/assets/book_depreciation_detail.rb +14 -6
  145. data/lib/xero-ruby/models/assets/book_depreciation_setting.rb +14 -6
  146. data/lib/xero-ruby/models/assets/error.rb +14 -6
  147. data/lib/xero-ruby/models/assets/field_validation_errors_element.rb +14 -6
  148. data/lib/xero-ruby/models/assets/pagination.rb +14 -6
  149. data/lib/xero-ruby/models/assets/resource_validation_errors_element.rb +14 -6
  150. data/lib/xero-ruby/models/assets/setting.rb +14 -6
  151. data/lib/xero-ruby/models/files/association.rb +14 -6
  152. data/lib/xero-ruby/models/files/file_object.rb +14 -6
  153. data/lib/xero-ruby/models/files/file_response204.rb +14 -6
  154. data/lib/xero-ruby/models/files/files.rb +14 -6
  155. data/lib/xero-ruby/models/files/folder.rb +14 -6
  156. data/lib/xero-ruby/models/files/folders.rb +14 -6
  157. data/lib/xero-ruby/models/files/inline_object.rb +14 -6
  158. data/lib/xero-ruby/models/files/object_group.rb +0 -1
  159. data/lib/xero-ruby/models/files/object_type.rb +0 -1
  160. data/lib/xero-ruby/models/files/user.rb +14 -6
  161. data/lib/xero-ruby/models/payroll_au/account.rb +14 -6
  162. data/lib/xero-ruby/models/payroll_au/account_type.rb +0 -1
  163. data/lib/xero-ruby/models/payroll_au/allowance_type.rb +0 -1
  164. data/lib/xero-ruby/models/payroll_au/api_exception.rb +14 -6
  165. data/lib/xero-ruby/models/payroll_au/bank_account.rb +14 -6
  166. data/lib/xero-ruby/models/payroll_au/calendar_type.rb +0 -1
  167. data/lib/xero-ruby/models/payroll_au/deduction_line.rb +14 -6
  168. data/lib/xero-ruby/models/payroll_au/deduction_type.rb +14 -6
  169. data/lib/xero-ruby/models/payroll_au/deduction_type_calculation_type.rb +0 -1
  170. data/lib/xero-ruby/models/payroll_au/earnings_line.rb +14 -6
  171. data/lib/xero-ruby/models/payroll_au/earnings_rate.rb +14 -6
  172. data/lib/xero-ruby/models/payroll_au/earnings_rate_calculation_type.rb +0 -1
  173. data/lib/xero-ruby/models/payroll_au/earnings_type.rb +1 -1
  174. data/lib/xero-ruby/models/payroll_au/employee.rb +14 -6
  175. data/lib/xero-ruby/models/payroll_au/employee_status.rb +0 -1
  176. data/lib/xero-ruby/models/payroll_au/employees.rb +14 -6
  177. data/lib/xero-ruby/models/payroll_au/employment_basis.rb +0 -1
  178. data/lib/xero-ruby/models/payroll_au/employment_termination_payment_type.rb +0 -1
  179. data/lib/xero-ruby/models/payroll_au/entitlement_final_pay_payout_type.rb +0 -1
  180. data/lib/xero-ruby/models/payroll_au/home_address.rb +14 -6
  181. data/lib/xero-ruby/models/payroll_au/leave_accrual_line.rb +14 -6
  182. data/lib/xero-ruby/models/payroll_au/leave_application.rb +14 -6
  183. data/lib/xero-ruby/models/payroll_au/leave_applications.rb +14 -6
  184. data/lib/xero-ruby/models/payroll_au/leave_balance.rb +14 -6
  185. data/lib/xero-ruby/models/payroll_au/leave_earnings_line.rb +14 -6
  186. data/lib/xero-ruby/models/payroll_au/leave_line.rb +14 -6
  187. data/lib/xero-ruby/models/payroll_au/leave_line_calculation_type.rb +0 -1
  188. data/lib/xero-ruby/models/payroll_au/leave_lines.rb +14 -6
  189. data/lib/xero-ruby/models/payroll_au/leave_period.rb +14 -6
  190. data/lib/xero-ruby/models/payroll_au/leave_period_status.rb +0 -1
  191. data/lib/xero-ruby/models/payroll_au/leave_type.rb +14 -6
  192. data/lib/xero-ruby/models/payroll_au/leave_type_contribution_type.rb +0 -1
  193. data/lib/xero-ruby/models/payroll_au/manual_tax_type.rb +0 -1
  194. data/lib/xero-ruby/models/payroll_au/opening_balances.rb +14 -6
  195. data/lib/xero-ruby/models/payroll_au/pay_item.rb +14 -6
  196. data/lib/xero-ruby/models/payroll_au/pay_items.rb +14 -6
  197. data/lib/xero-ruby/models/payroll_au/pay_run.rb +14 -6
  198. data/lib/xero-ruby/models/payroll_au/pay_run_status.rb +0 -1
  199. data/lib/xero-ruby/models/payroll_au/pay_runs.rb +14 -6
  200. data/lib/xero-ruby/models/payroll_au/pay_template.rb +14 -6
  201. data/lib/xero-ruby/models/payroll_au/payment_frequency_type.rb +0 -1
  202. data/lib/xero-ruby/models/payroll_au/payroll_calendar.rb +14 -6
  203. data/lib/xero-ruby/models/payroll_au/payroll_calendars.rb +14 -6
  204. data/lib/xero-ruby/models/payroll_au/payslip.rb +14 -6
  205. data/lib/xero-ruby/models/payroll_au/payslip_lines.rb +14 -6
  206. data/lib/xero-ruby/models/payroll_au/payslip_object.rb +14 -6
  207. data/lib/xero-ruby/models/payroll_au/payslip_summary.rb +14 -6
  208. data/lib/xero-ruby/models/payroll_au/payslips.rb +14 -6
  209. data/lib/xero-ruby/models/payroll_au/rate_type.rb +0 -1
  210. data/lib/xero-ruby/models/payroll_au/reimbursement_line.rb +14 -6
  211. data/lib/xero-ruby/models/payroll_au/reimbursement_lines.rb +14 -6
  212. data/lib/xero-ruby/models/payroll_au/reimbursement_type.rb +14 -6
  213. data/lib/xero-ruby/models/payroll_au/residency_status.rb +0 -1
  214. data/lib/xero-ruby/models/payroll_au/settings.rb +14 -6
  215. data/lib/xero-ruby/models/payroll_au/settings_object.rb +14 -6
  216. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories.rb +14 -6
  217. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_employee_groups.rb +14 -6
  218. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_timesheet_categories.rb +14 -6
  219. data/lib/xero-ruby/models/payroll_au/state.rb +0 -1
  220. data/lib/xero-ruby/models/payroll_au/super_fund.rb +14 -6
  221. data/lib/xero-ruby/models/payroll_au/super_fund_product.rb +14 -6
  222. data/lib/xero-ruby/models/payroll_au/super_fund_products.rb +14 -6
  223. data/lib/xero-ruby/models/payroll_au/super_fund_type.rb +0 -1
  224. data/lib/xero-ruby/models/payroll_au/super_funds.rb +14 -6
  225. data/lib/xero-ruby/models/payroll_au/super_line.rb +14 -6
  226. data/lib/xero-ruby/models/payroll_au/super_membership.rb +14 -6
  227. data/lib/xero-ruby/models/payroll_au/superannuation_calculation_type.rb +0 -1
  228. data/lib/xero-ruby/models/payroll_au/superannuation_contribution_type.rb +0 -1
  229. data/lib/xero-ruby/models/payroll_au/superannuation_line.rb +14 -6
  230. data/lib/xero-ruby/models/payroll_au/tax_declaration.rb +14 -6
  231. data/lib/xero-ruby/models/payroll_au/tax_line.rb +14 -6
  232. data/lib/xero-ruby/models/payroll_au/tfn_exemption_type.rb +0 -1
  233. data/lib/xero-ruby/models/payroll_au/timesheet.rb +14 -6
  234. data/lib/xero-ruby/models/payroll_au/timesheet_line.rb +14 -6
  235. data/lib/xero-ruby/models/payroll_au/timesheet_object.rb +14 -6
  236. data/lib/xero-ruby/models/payroll_au/timesheet_status.rb +0 -1
  237. data/lib/xero-ruby/models/payroll_au/timesheets.rb +14 -6
  238. data/lib/xero-ruby/models/payroll_au/validation_error.rb +14 -6
  239. data/lib/xero-ruby/models/payroll_nz/account.rb +14 -6
  240. data/lib/xero-ruby/models/payroll_nz/accounts.rb +14 -6
  241. data/lib/xero-ruby/models/payroll_nz/address.rb +14 -6
  242. data/lib/xero-ruby/models/payroll_nz/bank_account.rb +14 -6
  243. data/lib/xero-ruby/models/payroll_nz/benefit.rb +14 -6
  244. data/lib/xero-ruby/models/payroll_nz/calendar_type.rb +0 -1
  245. data/lib/xero-ruby/models/payroll_nz/deduction.rb +14 -6
  246. data/lib/xero-ruby/models/payroll_nz/deduction_line.rb +14 -6
  247. data/lib/xero-ruby/models/payroll_nz/deduction_object.rb +14 -6
  248. data/lib/xero-ruby/models/payroll_nz/deductions.rb +14 -6
  249. data/lib/xero-ruby/models/payroll_nz/earnings_line.rb +14 -6
  250. data/lib/xero-ruby/models/payroll_nz/earnings_order.rb +14 -6
  251. data/lib/xero-ruby/models/payroll_nz/earnings_order_object.rb +14 -6
  252. data/lib/xero-ruby/models/payroll_nz/earnings_orders.rb +14 -6
  253. data/lib/xero-ruby/models/payroll_nz/earnings_rate.rb +14 -6
  254. data/lib/xero-ruby/models/payroll_nz/earnings_rate_object.rb +14 -6
  255. data/lib/xero-ruby/models/payroll_nz/earnings_rates.rb +14 -6
  256. data/lib/xero-ruby/models/payroll_nz/earnings_template.rb +14 -6
  257. data/lib/xero-ruby/models/payroll_nz/earnings_template_object.rb +14 -6
  258. data/lib/xero-ruby/models/payroll_nz/employee.rb +14 -6
  259. data/lib/xero-ruby/models/payroll_nz/employee_earnings_templates.rb +14 -6
  260. data/lib/xero-ruby/models/payroll_nz/employee_leave.rb +14 -6
  261. data/lib/xero-ruby/models/payroll_nz/employee_leave_balance.rb +14 -6
  262. data/lib/xero-ruby/models/payroll_nz/employee_leave_balances.rb +14 -6
  263. data/lib/xero-ruby/models/payroll_nz/employee_leave_object.rb +14 -6
  264. data/lib/xero-ruby/models/payroll_nz/employee_leave_setup.rb +14 -6
  265. data/lib/xero-ruby/models/payroll_nz/employee_leave_setup_object.rb +14 -6
  266. data/lib/xero-ruby/models/payroll_nz/employee_leave_type.rb +14 -6
  267. data/lib/xero-ruby/models/payroll_nz/employee_leave_type_object.rb +14 -6
  268. data/lib/xero-ruby/models/payroll_nz/employee_leave_types.rb +14 -6
  269. data/lib/xero-ruby/models/payroll_nz/employee_leaves.rb +14 -6
  270. data/lib/xero-ruby/models/payroll_nz/employee_object.rb +14 -6
  271. data/lib/xero-ruby/models/payroll_nz/employee_opening_balance.rb +14 -6
  272. data/lib/xero-ruby/models/payroll_nz/employee_opening_balances_object.rb +14 -6
  273. data/lib/xero-ruby/models/payroll_nz/employee_pay_template.rb +14 -6
  274. data/lib/xero-ruby/models/payroll_nz/employee_pay_template_object.rb +14 -6
  275. data/lib/xero-ruby/models/payroll_nz/employee_pay_templates.rb +14 -6
  276. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance.rb +14 -6
  277. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance_object.rb +14 -6
  278. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_summary.rb +14 -6
  279. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leaves_summaries.rb +14 -6
  280. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave.rb +14 -6
  281. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave_object.rb +14 -6
  282. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leaves.rb +14 -6
  283. data/lib/xero-ruby/models/payroll_nz/employee_tax.rb +14 -6
  284. data/lib/xero-ruby/models/payroll_nz/employee_tax_object.rb +14 -6
  285. data/lib/xero-ruby/models/payroll_nz/employees.rb +14 -6
  286. data/lib/xero-ruby/models/payroll_nz/employment.rb +14 -6
  287. data/lib/xero-ruby/models/payroll_nz/employment_object.rb +14 -6
  288. data/lib/xero-ruby/models/payroll_nz/gross_earnings_history.rb +14 -6
  289. data/lib/xero-ruby/models/payroll_nz/invalid_field.rb +14 -6
  290. data/lib/xero-ruby/models/payroll_nz/leave_accrual_line.rb +14 -6
  291. data/lib/xero-ruby/models/payroll_nz/leave_earnings_line.rb +14 -6
  292. data/lib/xero-ruby/models/payroll_nz/leave_period.rb +14 -6
  293. data/lib/xero-ruby/models/payroll_nz/leave_periods.rb +14 -6
  294. data/lib/xero-ruby/models/payroll_nz/leave_type.rb +14 -6
  295. data/lib/xero-ruby/models/payroll_nz/leave_type_object.rb +14 -6
  296. data/lib/xero-ruby/models/payroll_nz/leave_types.rb +14 -6
  297. data/lib/xero-ruby/models/payroll_nz/pagination.rb +14 -6
  298. data/lib/xero-ruby/models/payroll_nz/pay_run.rb +14 -6
  299. data/lib/xero-ruby/models/payroll_nz/pay_run_calendar.rb +14 -6
  300. data/lib/xero-ruby/models/payroll_nz/pay_run_calendar_object.rb +14 -6
  301. data/lib/xero-ruby/models/payroll_nz/pay_run_calendars.rb +14 -6
  302. data/lib/xero-ruby/models/payroll_nz/pay_run_object.rb +14 -6
  303. data/lib/xero-ruby/models/payroll_nz/pay_runs.rb +14 -6
  304. data/lib/xero-ruby/models/payroll_nz/pay_slip.rb +14 -6
  305. data/lib/xero-ruby/models/payroll_nz/pay_slip_object.rb +14 -6
  306. data/lib/xero-ruby/models/payroll_nz/pay_slips.rb +14 -6
  307. data/lib/xero-ruby/models/payroll_nz/payment_line.rb +14 -6
  308. data/lib/xero-ruby/models/payroll_nz/payment_method.rb +14 -6
  309. data/lib/xero-ruby/models/payroll_nz/payment_method_object.rb +14 -6
  310. data/lib/xero-ruby/models/payroll_nz/problem.rb +14 -6
  311. data/lib/xero-ruby/models/payroll_nz/reimbursement.rb +14 -6
  312. data/lib/xero-ruby/models/payroll_nz/reimbursement_line.rb +14 -6
  313. data/lib/xero-ruby/models/payroll_nz/reimbursement_object.rb +14 -6
  314. data/lib/xero-ruby/models/payroll_nz/reimbursements.rb +14 -6
  315. data/lib/xero-ruby/models/payroll_nz/salary_and_wage.rb +15 -7
  316. data/lib/xero-ruby/models/payroll_nz/salary_and_wage_object.rb +14 -6
  317. data/lib/xero-ruby/models/payroll_nz/salary_and_wages.rb +14 -6
  318. data/lib/xero-ruby/models/payroll_nz/settings.rb +14 -6
  319. data/lib/xero-ruby/models/payroll_nz/statutory_deduction.rb +14 -6
  320. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_category.rb +0 -1
  321. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_line.rb +14 -6
  322. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_object.rb +14 -6
  323. data/lib/xero-ruby/models/payroll_nz/statutory_deductions.rb +14 -6
  324. data/lib/xero-ruby/models/payroll_nz/superannuation_line.rb +14 -6
  325. data/lib/xero-ruby/models/payroll_nz/superannuation_object.rb +14 -6
  326. data/lib/xero-ruby/models/payroll_nz/superannuations.rb +14 -6
  327. data/lib/xero-ruby/models/payroll_nz/tax_code.rb +0 -1
  328. data/lib/xero-ruby/models/payroll_nz/tax_line.rb +14 -6
  329. data/lib/xero-ruby/models/payroll_nz/tax_settings.rb +14 -6
  330. data/lib/xero-ruby/models/payroll_nz/timesheet.rb +14 -6
  331. data/lib/xero-ruby/models/payroll_nz/timesheet_earnings_line.rb +14 -6
  332. data/lib/xero-ruby/models/payroll_nz/timesheet_line.rb +14 -6
  333. data/lib/xero-ruby/models/payroll_nz/timesheet_line_object.rb +14 -6
  334. data/lib/xero-ruby/models/payroll_nz/timesheet_object.rb +14 -6
  335. data/lib/xero-ruby/models/payroll_nz/timesheets.rb +14 -6
  336. data/lib/xero-ruby/models/payroll_nz/tracking_categories.rb +14 -6
  337. data/lib/xero-ruby/models/payroll_nz/tracking_category.rb +14 -6
  338. data/lib/xero-ruby/models/payroll_uk/account.rb +14 -6
  339. data/lib/xero-ruby/models/payroll_uk/accounts.rb +14 -6
  340. data/lib/xero-ruby/models/payroll_uk/address.rb +14 -6
  341. data/lib/xero-ruby/models/payroll_uk/bank_account.rb +14 -6
  342. data/lib/xero-ruby/models/payroll_uk/benefit.rb +14 -6
  343. data/lib/xero-ruby/models/payroll_uk/benefit_line.rb +14 -6
  344. data/lib/xero-ruby/models/payroll_uk/benefit_object.rb +14 -6
  345. data/lib/xero-ruby/models/payroll_uk/benefits.rb +14 -6
  346. data/lib/xero-ruby/models/payroll_uk/court_order_line.rb +14 -6
  347. data/lib/xero-ruby/models/payroll_uk/deduction.rb +14 -6
  348. data/lib/xero-ruby/models/payroll_uk/deduction_line.rb +14 -6
  349. data/lib/xero-ruby/models/payroll_uk/deduction_object.rb +14 -6
  350. data/lib/xero-ruby/models/payroll_uk/deductions.rb +14 -6
  351. data/lib/xero-ruby/models/payroll_uk/earnings_line.rb +14 -6
  352. data/lib/xero-ruby/models/payroll_uk/earnings_order.rb +14 -6
  353. data/lib/xero-ruby/models/payroll_uk/earnings_order_object.rb +14 -6
  354. data/lib/xero-ruby/models/payroll_uk/earnings_orders.rb +14 -6
  355. data/lib/xero-ruby/models/payroll_uk/earnings_rate.rb +14 -6
  356. data/lib/xero-ruby/models/payroll_uk/earnings_rate_object.rb +14 -6
  357. data/lib/xero-ruby/models/payroll_uk/earnings_rates.rb +14 -6
  358. data/lib/xero-ruby/models/payroll_uk/earnings_template.rb +14 -6
  359. data/lib/xero-ruby/models/payroll_uk/earnings_template_object.rb +14 -6
  360. data/lib/xero-ruby/models/payroll_uk/employee.rb +14 -6
  361. data/lib/xero-ruby/models/payroll_uk/employee_leave.rb +14 -6
  362. data/lib/xero-ruby/models/payroll_uk/employee_leave_balance.rb +14 -6
  363. data/lib/xero-ruby/models/payroll_uk/employee_leave_balances.rb +14 -6
  364. data/lib/xero-ruby/models/payroll_uk/employee_leave_object.rb +14 -6
  365. data/lib/xero-ruby/models/payroll_uk/employee_leave_type.rb +14 -6
  366. data/lib/xero-ruby/models/payroll_uk/employee_leave_type_object.rb +14 -6
  367. data/lib/xero-ruby/models/payroll_uk/employee_leave_types.rb +14 -6
  368. data/lib/xero-ruby/models/payroll_uk/employee_leaves.rb +14 -6
  369. data/lib/xero-ruby/models/payroll_uk/employee_object.rb +14 -6
  370. data/lib/xero-ruby/models/payroll_uk/employee_opening_balances.rb +14 -6
  371. data/lib/xero-ruby/models/payroll_uk/employee_opening_balances_object.rb +14 -6
  372. data/lib/xero-ruby/models/payroll_uk/employee_pay_template.rb +14 -6
  373. data/lib/xero-ruby/models/payroll_uk/employee_pay_template_object.rb +14 -6
  374. data/lib/xero-ruby/models/payroll_uk/employee_pay_templates.rb +14 -6
  375. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance.rb +14 -6
  376. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance_object.rb +14 -6
  377. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_summary.rb +14 -6
  378. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leaves_summaries.rb +14 -6
  379. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave.rb +14 -6
  380. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave_object.rb +14 -6
  381. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leaves.rb +14 -6
  382. data/lib/xero-ruby/models/payroll_uk/employee_tax.rb +14 -6
  383. data/lib/xero-ruby/models/payroll_uk/employee_tax_object.rb +14 -6
  384. data/lib/xero-ruby/models/payroll_uk/employees.rb +14 -6
  385. data/lib/xero-ruby/models/payroll_uk/employment.rb +14 -6
  386. data/lib/xero-ruby/models/payroll_uk/employment_object.rb +14 -6
  387. data/lib/xero-ruby/models/payroll_uk/invalid_field.rb +14 -6
  388. data/lib/xero-ruby/models/payroll_uk/leave_accrual_line.rb +14 -6
  389. data/lib/xero-ruby/models/payroll_uk/leave_earnings_line.rb +14 -6
  390. data/lib/xero-ruby/models/payroll_uk/leave_period.rb +14 -6
  391. data/lib/xero-ruby/models/payroll_uk/leave_periods.rb +14 -6
  392. data/lib/xero-ruby/models/payroll_uk/leave_type.rb +14 -6
  393. data/lib/xero-ruby/models/payroll_uk/leave_type_object.rb +14 -6
  394. data/lib/xero-ruby/models/payroll_uk/leave_types.rb +14 -6
  395. data/lib/xero-ruby/models/payroll_uk/pagination.rb +14 -6
  396. data/lib/xero-ruby/models/payroll_uk/pay_run.rb +14 -6
  397. data/lib/xero-ruby/models/payroll_uk/pay_run_calendar.rb +14 -6
  398. data/lib/xero-ruby/models/payroll_uk/pay_run_calendar_object.rb +14 -6
  399. data/lib/xero-ruby/models/payroll_uk/pay_run_calendars.rb +14 -6
  400. data/lib/xero-ruby/models/payroll_uk/pay_run_object.rb +14 -6
  401. data/lib/xero-ruby/models/payroll_uk/pay_runs.rb +14 -6
  402. data/lib/xero-ruby/models/payroll_uk/payment_line.rb +14 -6
  403. data/lib/xero-ruby/models/payroll_uk/payment_method.rb +14 -6
  404. data/lib/xero-ruby/models/payroll_uk/payment_method_object.rb +14 -6
  405. data/lib/xero-ruby/models/payroll_uk/payslip.rb +14 -6
  406. data/lib/xero-ruby/models/payroll_uk/payslip_object.rb +14 -6
  407. data/lib/xero-ruby/models/payroll_uk/payslips.rb +14 -6
  408. data/lib/xero-ruby/models/payroll_uk/problem.rb +14 -6
  409. data/lib/xero-ruby/models/payroll_uk/reimbursement.rb +14 -6
  410. data/lib/xero-ruby/models/payroll_uk/reimbursement_line.rb +14 -6
  411. data/lib/xero-ruby/models/payroll_uk/reimbursement_object.rb +14 -6
  412. data/lib/xero-ruby/models/payroll_uk/reimbursements.rb +14 -6
  413. data/lib/xero-ruby/models/payroll_uk/salary_and_wage.rb +14 -6
  414. data/lib/xero-ruby/models/payroll_uk/salary_and_wage_object.rb +14 -6
  415. data/lib/xero-ruby/models/payroll_uk/salary_and_wages.rb +14 -6
  416. data/lib/xero-ruby/models/payroll_uk/settings.rb +14 -6
  417. data/lib/xero-ruby/models/payroll_uk/statutory_deduction.rb +14 -6
  418. data/lib/xero-ruby/models/payroll_uk/statutory_deduction_category.rb +0 -1
  419. data/lib/xero-ruby/models/payroll_uk/tax_line.rb +14 -6
  420. data/lib/xero-ruby/models/payroll_uk/timesheet.rb +14 -6
  421. data/lib/xero-ruby/models/payroll_uk/timesheet_earnings_line.rb +14 -6
  422. data/lib/xero-ruby/models/payroll_uk/timesheet_line.rb +14 -6
  423. data/lib/xero-ruby/models/payroll_uk/timesheet_line_object.rb +14 -6
  424. data/lib/xero-ruby/models/payroll_uk/timesheet_object.rb +14 -6
  425. data/lib/xero-ruby/models/payroll_uk/timesheets.rb +14 -6
  426. data/lib/xero-ruby/models/payroll_uk/tracking_categories.rb +14 -6
  427. data/lib/xero-ruby/models/payroll_uk/tracking_category.rb +14 -6
  428. data/lib/xero-ruby/models/projects/amount.rb +14 -6
  429. data/lib/xero-ruby/models/projects/charge_type.rb +0 -1
  430. data/lib/xero-ruby/models/projects/currency_code.rb +0 -1
  431. data/lib/xero-ruby/models/projects/error.rb +14 -6
  432. data/lib/xero-ruby/models/projects/pagination.rb +14 -6
  433. data/lib/xero-ruby/models/projects/project.rb +14 -6
  434. data/lib/xero-ruby/models/projects/project_create_or_update.rb +14 -6
  435. data/lib/xero-ruby/models/projects/project_patch.rb +14 -6
  436. data/lib/xero-ruby/models/projects/project_status.rb +0 -1
  437. data/lib/xero-ruby/models/projects/project_user.rb +14 -6
  438. data/lib/xero-ruby/models/projects/project_users.rb +14 -6
  439. data/lib/xero-ruby/models/projects/projects.rb +14 -6
  440. data/lib/xero-ruby/models/projects/task.rb +14 -6
  441. data/lib/xero-ruby/models/projects/task_create_or_update.rb +14 -6
  442. data/lib/xero-ruby/models/projects/tasks.rb +14 -6
  443. data/lib/xero-ruby/models/projects/time_entries.rb +14 -6
  444. data/lib/xero-ruby/models/projects/time_entry.rb +14 -6
  445. data/lib/xero-ruby/models/projects/time_entry_create_or_update.rb +14 -6
  446. data/lib/xero-ruby/version.rb +2 -2
  447. data/spec/api_client_spec.rb +101 -13
  448. data/spec/api_error_spec.rb +45 -0
  449. data/spec/configuration_spec.rb +9 -16
  450. data/spec/helper_methods_spec.rb +82 -0
  451. metadata +10 -5
@@ -3,7 +3,6 @@
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.6.0
7
6
  Contact: api@xero.com
8
7
  Generated by: https://openapi-generator.tech
9
8
  OpenAPI Generator version: 4.3.1
@@ -173,16 +172,22 @@ module XeroRuby::Accounting
173
172
 
174
173
  # Returns the object in the form of hash
175
174
  # @return [Hash] Returns the object in the form of hash
176
- def to_hash
175
+ def to_hash(downcase: false)
177
176
  hash = {}
178
177
  self.class.attribute_map.each_pair do |attr, param|
179
178
  value = self.send(attr)
180
179
  next if value.nil?
181
- hash[param] = _to_hash(value)
180
+ key = downcase ? attr : param
181
+ hash[key] = _to_hash(value)
182
182
  end
183
183
  hash
184
184
  end
185
185
 
186
+ # Returns the object in the form of hash with snake_case
187
+ def attributes
188
+ to_hash(downcase: true)
189
+ end
190
+
186
191
  # Outputs non-array value in the form of hash
187
192
  # For object, use to_hash. Otherwise, just return the value
188
193
  # @param [Object] value Any valid value
@@ -201,10 +206,13 @@ module XeroRuby::Accounting
201
206
  end
202
207
  end
203
208
 
204
- # customized data_parser
205
209
  def parse_date(datestring)
206
- seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
207
- return Time.at(seconds_since_epoch).strftime('%Y-%m-%dT%l:%M:%S%z').to_s
210
+ if datestring.include?('Date')
211
+ seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
212
+ Time.at(seconds_since_epoch).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
213
+ else # handle date 'types' for small subset of payroll API's
214
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
215
+ end
208
216
  end
209
217
  end
210
218
  end
@@ -3,7 +3,6 @@
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.6.0
7
6
  Contact: api@xero.com
8
7
  Generated by: https://openapi-generator.tech
9
8
  OpenAPI Generator version: 4.3.1
@@ -181,16 +180,22 @@ module XeroRuby::Accounting
181
180
 
182
181
  # Returns the object in the form of hash
183
182
  # @return [Hash] Returns the object in the form of hash
184
- def to_hash
183
+ def to_hash(downcase: false)
185
184
  hash = {}
186
185
  self.class.attribute_map.each_pair do |attr, param|
187
186
  value = self.send(attr)
188
187
  next if value.nil?
189
- hash[param] = _to_hash(value)
188
+ key = downcase ? attr : param
189
+ hash[key] = _to_hash(value)
190
190
  end
191
191
  hash
192
192
  end
193
193
 
194
+ # Returns the object in the form of hash with snake_case
195
+ def attributes
196
+ to_hash(downcase: true)
197
+ end
198
+
194
199
  # Outputs non-array value in the form of hash
195
200
  # For object, use to_hash. Otherwise, just return the value
196
201
  # @param [Object] value Any valid value
@@ -209,10 +214,13 @@ module XeroRuby::Accounting
209
214
  end
210
215
  end
211
216
 
212
- # customized data_parser
213
217
  def parse_date(datestring)
214
- seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
215
- return Time.at(seconds_since_epoch).strftime('%Y-%m-%dT%l:%M:%S%z').to_s
218
+ if datestring.include?('Date')
219
+ seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
220
+ Time.at(seconds_since_epoch).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
221
+ else # handle date 'types' for small subset of payroll API's
222
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
223
+ end
216
224
  end
217
225
  end
218
226
  end
@@ -3,7 +3,6 @@
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.6.0
7
6
  Contact: api@xero.com
8
7
  Generated by: https://openapi-generator.tech
9
8
  OpenAPI Generator version: 4.3.1
@@ -181,16 +180,22 @@ module XeroRuby::Accounting
181
180
 
182
181
  # Returns the object in the form of hash
183
182
  # @return [Hash] Returns the object in the form of hash
184
- def to_hash
183
+ def to_hash(downcase: false)
185
184
  hash = {}
186
185
  self.class.attribute_map.each_pair do |attr, param|
187
186
  value = self.send(attr)
188
187
  next if value.nil?
189
- hash[param] = _to_hash(value)
188
+ key = downcase ? attr : param
189
+ hash[key] = _to_hash(value)
190
190
  end
191
191
  hash
192
192
  end
193
193
 
194
+ # Returns the object in the form of hash with snake_case
195
+ def attributes
196
+ to_hash(downcase: true)
197
+ end
198
+
194
199
  # Outputs non-array value in the form of hash
195
200
  # For object, use to_hash. Otherwise, just return the value
196
201
  # @param [Object] value Any valid value
@@ -209,10 +214,13 @@ module XeroRuby::Accounting
209
214
  end
210
215
  end
211
216
 
212
- # customized data_parser
213
217
  def parse_date(datestring)
214
- seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
215
- return Time.at(seconds_since_epoch).strftime('%Y-%m-%dT%l:%M:%S%z').to_s
218
+ if datestring.include?('Date')
219
+ seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
220
+ Time.at(seconds_since_epoch).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
221
+ else # handle date 'types' for small subset of payroll API's
222
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
223
+ end
216
224
  end
217
225
  end
218
226
  end
@@ -3,7 +3,6 @@
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.6.0
7
6
  Contact: api@xero.com
8
7
  Generated by: https://openapi-generator.tech
9
8
  OpenAPI Generator version: 4.3.1
@@ -217,16 +216,22 @@ module XeroRuby::Accounting
217
216
 
218
217
  # Returns the object in the form of hash
219
218
  # @return [Hash] Returns the object in the form of hash
220
- def to_hash
219
+ def to_hash(downcase: false)
221
220
  hash = {}
222
221
  self.class.attribute_map.each_pair do |attr, param|
223
222
  value = self.send(attr)
224
223
  next if value.nil?
225
- hash[param] = _to_hash(value)
224
+ key = downcase ? attr : param
225
+ hash[key] = _to_hash(value)
226
226
  end
227
227
  hash
228
228
  end
229
229
 
230
+ # Returns the object in the form of hash with snake_case
231
+ def attributes
232
+ to_hash(downcase: true)
233
+ end
234
+
230
235
  # Outputs non-array value in the form of hash
231
236
  # For object, use to_hash. Otherwise, just return the value
232
237
  # @param [Object] value Any valid value
@@ -245,10 +250,13 @@ module XeroRuby::Accounting
245
250
  end
246
251
  end
247
252
 
248
- # customized data_parser
249
253
  def parse_date(datestring)
250
- seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
251
- return Time.at(seconds_since_epoch).strftime('%Y-%m-%dT%l:%M:%S%z').to_s
254
+ if datestring.include?('Date')
255
+ seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
256
+ Time.at(seconds_since_epoch).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
257
+ else # handle date 'types' for small subset of payroll API's
258
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
259
+ end
252
260
  end
253
261
  end
254
262
  end
@@ -3,7 +3,6 @@
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.6.0
7
6
  Contact: api@xero.com
8
7
  Generated by: https://openapi-generator.tech
9
8
  OpenAPI Generator version: 4.3.1
@@ -173,16 +172,22 @@ module XeroRuby::Accounting
173
172
 
174
173
  # Returns the object in the form of hash
175
174
  # @return [Hash] Returns the object in the form of hash
176
- def to_hash
175
+ def to_hash(downcase: false)
177
176
  hash = {}
178
177
  self.class.attribute_map.each_pair do |attr, param|
179
178
  value = self.send(attr)
180
179
  next if value.nil?
181
- hash[param] = _to_hash(value)
180
+ key = downcase ? attr : param
181
+ hash[key] = _to_hash(value)
182
182
  end
183
183
  hash
184
184
  end
185
185
 
186
+ # Returns the object in the form of hash with snake_case
187
+ def attributes
188
+ to_hash(downcase: true)
189
+ end
190
+
186
191
  # Outputs non-array value in the form of hash
187
192
  # For object, use to_hash. Otherwise, just return the value
188
193
  # @param [Object] value Any valid value
@@ -201,10 +206,13 @@ module XeroRuby::Accounting
201
206
  end
202
207
  end
203
208
 
204
- # customized data_parser
205
209
  def parse_date(datestring)
206
- seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
207
- return Time.at(seconds_since_epoch).strftime('%Y-%m-%dT%l:%M:%S%z').to_s
210
+ if datestring.include?('Date')
211
+ seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
212
+ Time.at(seconds_since_epoch).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
213
+ else # handle date 'types' for small subset of payroll API's
214
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
215
+ end
208
216
  end
209
217
  end
210
218
  end
@@ -3,7 +3,6 @@
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.6.0
7
6
  Contact: api@xero.com
8
7
  Generated by: https://openapi-generator.tech
9
8
  OpenAPI Generator version: 4.3.1
@@ -21,7 +20,6 @@ module XeroRuby::Accounting
21
20
  attr_accessor :address_type
22
21
  POBOX = "POBOX".freeze
23
22
  STREET = "STREET".freeze
24
- DELIVERY = "DELIVERY".freeze
25
23
 
26
24
  # max length = 500
27
25
  attr_accessor :address_line1
@@ -206,7 +204,7 @@ module XeroRuby::Accounting
206
204
  # Check to see if the all the properties in the model are valid
207
205
  # @return true if the model is valid
208
206
  def valid?
209
- address_type_validator = EnumAttributeValidator.new('String', ["POBOX", "STREET", "DELIVERY"])
207
+ address_type_validator = EnumAttributeValidator.new('String', ["POBOX", "STREET"])
210
208
  return false unless address_type_validator.valid?(@address_type)
211
209
  return false if !@address_line1.nil? && @address_line1.to_s.length > 500
212
210
  return false if !@address_line2.nil? && @address_line2.to_s.length > 500
@@ -223,7 +221,7 @@ module XeroRuby::Accounting
223
221
  # Custom attribute writer method checking allowed values (enum).
224
222
  # @param [Object] address_type Object to be assigned
225
223
  def address_type=(address_type)
226
- validator = EnumAttributeValidator.new('String', ["POBOX", "STREET", "DELIVERY"])
224
+ validator = EnumAttributeValidator.new('String', ["POBOX", "STREET"])
227
225
  unless validator.valid?(address_type)
228
226
  fail ArgumentError, "invalid value for \"address_type\", must be one of #{validator.allowable_values}."
229
227
  end
@@ -433,16 +431,22 @@ module XeroRuby::Accounting
433
431
 
434
432
  # Returns the object in the form of hash
435
433
  # @return [Hash] Returns the object in the form of hash
436
- def to_hash
434
+ def to_hash(downcase: false)
437
435
  hash = {}
438
436
  self.class.attribute_map.each_pair do |attr, param|
439
437
  value = self.send(attr)
440
438
  next if value.nil?
441
- hash[param] = _to_hash(value)
439
+ key = downcase ? attr : param
440
+ hash[key] = _to_hash(value)
442
441
  end
443
442
  hash
444
443
  end
445
444
 
445
+ # Returns the object in the form of hash with snake_case
446
+ def attributes
447
+ to_hash(downcase: true)
448
+ end
449
+
446
450
  # Outputs non-array value in the form of hash
447
451
  # For object, use to_hash. Otherwise, just return the value
448
452
  # @param [Object] value Any valid value
@@ -461,10 +465,13 @@ module XeroRuby::Accounting
461
465
  end
462
466
  end
463
467
 
464
- # customized data_parser
465
468
  def parse_date(datestring)
466
- seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
467
- return Time.at(seconds_since_epoch).strftime('%Y-%m-%dT%l:%M:%S%z').to_s
469
+ if datestring.include?('Date')
470
+ seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
471
+ Time.at(seconds_since_epoch).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
472
+ else # handle date 'types' for small subset of payroll API's
473
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
474
+ end
468
475
  end
469
476
  end
470
477
  end
@@ -0,0 +1,478 @@
1
+ =begin
2
+ #Accounting API
3
+
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
+
6
+ Contact: api@xero.com
7
+ Generated by: https://openapi-generator.tech
8
+ OpenAPI Generator version: 4.3.1
9
+
10
+ =end
11
+
12
+ require 'time'
13
+ require 'date'
14
+
15
+ module XeroRuby::Accounting
16
+ require 'bigdecimal'
17
+
18
+ class AddressForOrganisation
19
+ # define the type of address
20
+ attr_accessor :address_type
21
+ POBOX = "POBOX".freeze
22
+ STREET = "STREET".freeze
23
+ DELIVERY = "DELIVERY".freeze
24
+
25
+ # max length = 500
26
+ attr_accessor :address_line1
27
+
28
+ # max length = 500
29
+ attr_accessor :address_line2
30
+
31
+ # max length = 500
32
+ attr_accessor :address_line3
33
+
34
+ # max length = 500
35
+ attr_accessor :address_line4
36
+
37
+ # max length = 255
38
+ attr_accessor :city
39
+
40
+ # max length = 255
41
+ attr_accessor :region
42
+
43
+ # max length = 50
44
+ attr_accessor :postal_code
45
+
46
+ # max length = 50, [A-Z], [a-z] only
47
+ attr_accessor :country
48
+
49
+ # max length = 255
50
+ attr_accessor :attention_to
51
+
52
+ class EnumAttributeValidator
53
+ attr_reader :datatype
54
+ attr_reader :allowable_values
55
+
56
+ def initialize(datatype, allowable_values)
57
+ @allowable_values = allowable_values.map do |value|
58
+ case datatype.to_s
59
+ when /Integer/i
60
+ value.to_i
61
+ when /Float/i
62
+ value.to_f
63
+ else
64
+ value
65
+ end
66
+ end
67
+ end
68
+
69
+ def valid?(value)
70
+ !value || allowable_values.include?(value)
71
+ end
72
+ end
73
+
74
+ # Attribute mapping from ruby-style variable name to JSON key.
75
+ def self.attribute_map
76
+ {
77
+ :'address_type' => :'AddressType',
78
+ :'address_line1' => :'AddressLine1',
79
+ :'address_line2' => :'AddressLine2',
80
+ :'address_line3' => :'AddressLine3',
81
+ :'address_line4' => :'AddressLine4',
82
+ :'city' => :'City',
83
+ :'region' => :'Region',
84
+ :'postal_code' => :'PostalCode',
85
+ :'country' => :'Country',
86
+ :'attention_to' => :'AttentionTo'
87
+ }
88
+ end
89
+
90
+ # Attribute type mapping.
91
+ def self.openapi_types
92
+ {
93
+ :'address_type' => :'String',
94
+ :'address_line1' => :'String',
95
+ :'address_line2' => :'String',
96
+ :'address_line3' => :'String',
97
+ :'address_line4' => :'String',
98
+ :'city' => :'String',
99
+ :'region' => :'String',
100
+ :'postal_code' => :'String',
101
+ :'country' => :'String',
102
+ :'attention_to' => :'String'
103
+ }
104
+ end
105
+
106
+ # Initializes the object
107
+ # @param [Hash] attributes Model attributes in the form of hash
108
+ def initialize(attributes = {})
109
+ if (!attributes.is_a?(Hash))
110
+ fail ArgumentError, "The input argument (attributes) must be a hash in `XeroRuby::Accounting::AddressForOrganisation` initialize method"
111
+ end
112
+
113
+ # check to see if the attribute exists and convert string to symbol for hash key
114
+ attributes = attributes.each_with_object({}) { |(k, v), h|
115
+ if (!self.class.attribute_map.key?(k.to_sym))
116
+ fail ArgumentError, "`#{k}` is not a valid attribute in `XeroRuby::Accounting::AddressForOrganisation`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
117
+ end
118
+ h[k.to_sym] = v
119
+ }
120
+
121
+ if attributes.key?(:'address_type')
122
+ self.address_type = attributes[:'address_type']
123
+ end
124
+
125
+ if attributes.key?(:'address_line1')
126
+ self.address_line1 = attributes[:'address_line1']
127
+ end
128
+
129
+ if attributes.key?(:'address_line2')
130
+ self.address_line2 = attributes[:'address_line2']
131
+ end
132
+
133
+ if attributes.key?(:'address_line3')
134
+ self.address_line3 = attributes[:'address_line3']
135
+ end
136
+
137
+ if attributes.key?(:'address_line4')
138
+ self.address_line4 = attributes[:'address_line4']
139
+ end
140
+
141
+ if attributes.key?(:'city')
142
+ self.city = attributes[:'city']
143
+ end
144
+
145
+ if attributes.key?(:'region')
146
+ self.region = attributes[:'region']
147
+ end
148
+
149
+ if attributes.key?(:'postal_code')
150
+ self.postal_code = attributes[:'postal_code']
151
+ end
152
+
153
+ if attributes.key?(:'country')
154
+ self.country = attributes[:'country']
155
+ end
156
+
157
+ if attributes.key?(:'attention_to')
158
+ self.attention_to = attributes[:'attention_to']
159
+ end
160
+ end
161
+
162
+ # Show invalid properties with the reasons. Usually used together with valid?
163
+ # @return Array for valid properties with the reasons
164
+ def list_invalid_properties
165
+ invalid_properties = Array.new
166
+ if !@address_line1.nil? && @address_line1.to_s.length > 500
167
+ invalid_properties.push('invalid value for "address_line1", the character length must be smaller than or equal to 500.')
168
+ end
169
+
170
+ if !@address_line2.nil? && @address_line2.to_s.length > 500
171
+ invalid_properties.push('invalid value for "address_line2", the character length must be smaller than or equal to 500.')
172
+ end
173
+
174
+ if !@address_line3.nil? && @address_line3.to_s.length > 500
175
+ invalid_properties.push('invalid value for "address_line3", the character length must be smaller than or equal to 500.')
176
+ end
177
+
178
+ if !@address_line4.nil? && @address_line4.to_s.length > 500
179
+ invalid_properties.push('invalid value for "address_line4", the character length must be smaller than or equal to 500.')
180
+ end
181
+
182
+ if !@city.nil? && @city.to_s.length > 255
183
+ invalid_properties.push('invalid value for "city", the character length must be smaller than or equal to 255.')
184
+ end
185
+
186
+ if !@region.nil? && @region.to_s.length > 255
187
+ invalid_properties.push('invalid value for "region", the character length must be smaller than or equal to 255.')
188
+ end
189
+
190
+ if !@postal_code.nil? && @postal_code.to_s.length > 50
191
+ invalid_properties.push('invalid value for "postal_code", the character length must be smaller than or equal to 50.')
192
+ end
193
+
194
+ if !@country.nil? && @country.to_s.length > 50
195
+ invalid_properties.push('invalid value for "country", the character length must be smaller than or equal to 50.')
196
+ end
197
+
198
+ if !@attention_to.nil? && @attention_to.to_s.length > 255
199
+ invalid_properties.push('invalid value for "attention_to", the character length must be smaller than or equal to 255.')
200
+ end
201
+
202
+ invalid_properties
203
+ end
204
+
205
+ # Check to see if the all the properties in the model are valid
206
+ # @return true if the model is valid
207
+ def valid?
208
+ address_type_validator = EnumAttributeValidator.new('String', ["POBOX", "STREET", "DELIVERY"])
209
+ return false unless address_type_validator.valid?(@address_type)
210
+ return false if !@address_line1.nil? && @address_line1.to_s.length > 500
211
+ return false if !@address_line2.nil? && @address_line2.to_s.length > 500
212
+ return false if !@address_line3.nil? && @address_line3.to_s.length > 500
213
+ return false if !@address_line4.nil? && @address_line4.to_s.length > 500
214
+ return false if !@city.nil? && @city.to_s.length > 255
215
+ return false if !@region.nil? && @region.to_s.length > 255
216
+ return false if !@postal_code.nil? && @postal_code.to_s.length > 50
217
+ return false if !@country.nil? && @country.to_s.length > 50
218
+ return false if !@attention_to.nil? && @attention_to.to_s.length > 255
219
+ true
220
+ end
221
+
222
+ # Custom attribute writer method checking allowed values (enum).
223
+ # @param [Object] address_type Object to be assigned
224
+ def address_type=(address_type)
225
+ validator = EnumAttributeValidator.new('String', ["POBOX", "STREET", "DELIVERY"])
226
+ unless validator.valid?(address_type)
227
+ fail ArgumentError, "invalid value for \"address_type\", must be one of #{validator.allowable_values}."
228
+ end
229
+ @address_type = address_type
230
+ end
231
+
232
+ # Custom attribute writer method with validation
233
+ # @param [Object] address_line1 Value to be assigned
234
+ def address_line1=(address_line1)
235
+ if !address_line1.nil? && address_line1.to_s.length > 500
236
+ fail ArgumentError, 'invalid value for "address_line1", the character length must be smaller than or equal to 500.'
237
+ end
238
+
239
+ @address_line1 = address_line1
240
+ end
241
+
242
+ # Custom attribute writer method with validation
243
+ # @param [Object] address_line2 Value to be assigned
244
+ def address_line2=(address_line2)
245
+ if !address_line2.nil? && address_line2.to_s.length > 500
246
+ fail ArgumentError, 'invalid value for "address_line2", the character length must be smaller than or equal to 500.'
247
+ end
248
+
249
+ @address_line2 = address_line2
250
+ end
251
+
252
+ # Custom attribute writer method with validation
253
+ # @param [Object] address_line3 Value to be assigned
254
+ def address_line3=(address_line3)
255
+ if !address_line3.nil? && address_line3.to_s.length > 500
256
+ fail ArgumentError, 'invalid value for "address_line3", the character length must be smaller than or equal to 500.'
257
+ end
258
+
259
+ @address_line3 = address_line3
260
+ end
261
+
262
+ # Custom attribute writer method with validation
263
+ # @param [Object] address_line4 Value to be assigned
264
+ def address_line4=(address_line4)
265
+ if !address_line4.nil? && address_line4.to_s.length > 500
266
+ fail ArgumentError, 'invalid value for "address_line4", the character length must be smaller than or equal to 500.'
267
+ end
268
+
269
+ @address_line4 = address_line4
270
+ end
271
+
272
+ # Custom attribute writer method with validation
273
+ # @param [Object] city Value to be assigned
274
+ def city=(city)
275
+ if !city.nil? && city.to_s.length > 255
276
+ fail ArgumentError, 'invalid value for "city", the character length must be smaller than or equal to 255.'
277
+ end
278
+
279
+ @city = city
280
+ end
281
+
282
+ # Custom attribute writer method with validation
283
+ # @param [Object] region Value to be assigned
284
+ def region=(region)
285
+ if !region.nil? && region.to_s.length > 255
286
+ fail ArgumentError, 'invalid value for "region", the character length must be smaller than or equal to 255.'
287
+ end
288
+
289
+ @region = region
290
+ end
291
+
292
+ # Custom attribute writer method with validation
293
+ # @param [Object] postal_code Value to be assigned
294
+ def postal_code=(postal_code)
295
+ if !postal_code.nil? && postal_code.to_s.length > 50
296
+ fail ArgumentError, 'invalid value for "postal_code", the character length must be smaller than or equal to 50.'
297
+ end
298
+
299
+ @postal_code = postal_code
300
+ end
301
+
302
+ # Custom attribute writer method with validation
303
+ # @param [Object] country Value to be assigned
304
+ def country=(country)
305
+ if !country.nil? && country.to_s.length > 50
306
+ fail ArgumentError, 'invalid value for "country", the character length must be smaller than or equal to 50.'
307
+ end
308
+
309
+ @country = country
310
+ end
311
+
312
+ # Custom attribute writer method with validation
313
+ # @param [Object] attention_to Value to be assigned
314
+ def attention_to=(attention_to)
315
+ if !attention_to.nil? && attention_to.to_s.length > 255
316
+ fail ArgumentError, 'invalid value for "attention_to", the character length must be smaller than or equal to 255.'
317
+ end
318
+
319
+ @attention_to = attention_to
320
+ end
321
+
322
+ # Checks equality by comparing each attribute.
323
+ # @param [Object] Object to be compared
324
+ def ==(o)
325
+ return true if self.equal?(o)
326
+ self.class == o.class &&
327
+ address_type == o.address_type &&
328
+ address_line1 == o.address_line1 &&
329
+ address_line2 == o.address_line2 &&
330
+ address_line3 == o.address_line3 &&
331
+ address_line4 == o.address_line4 &&
332
+ city == o.city &&
333
+ region == o.region &&
334
+ postal_code == o.postal_code &&
335
+ country == o.country &&
336
+ attention_to == o.attention_to
337
+ end
338
+
339
+ # @see the `==` method
340
+ # @param [Object] Object to be compared
341
+ def eql?(o)
342
+ self == o
343
+ end
344
+
345
+ # Calculates hash code according to all attributes.
346
+ # @return [Integer] Hash code
347
+ def hash
348
+ [address_type, address_line1, address_line2, address_line3, address_line4, city, region, postal_code, country, attention_to].hash
349
+ end
350
+
351
+ # Builds the object from hash
352
+ # @param [Hash] attributes Model attributes in the form of hash
353
+ # @return [Object] Returns the model itself
354
+ def self.build_from_hash(attributes)
355
+ new.build_from_hash(attributes)
356
+ end
357
+
358
+ # Builds the object from hash
359
+ # @param [Hash] attributes Model attributes in the form of hash
360
+ # @return [Object] Returns the model itself
361
+ def build_from_hash(attributes)
362
+ return nil unless attributes.is_a?(Hash)
363
+ self.class.openapi_types.each_pair do |key, type|
364
+ if type =~ /\AArray<(.*)>/i
365
+ # check to ensure the input is an array given that the attribute
366
+ # is documented as an array but the input is not
367
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
368
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
369
+ end
370
+ elsif !attributes[self.class.attribute_map[key]].nil?
371
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
372
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
373
+ end
374
+
375
+ self
376
+ end
377
+
378
+ # Deserializes the data based on type
379
+ # @param string type Data type
380
+ # @param string value Value to be deserialized
381
+ # @return [Object] Deserialized data
382
+ def _deserialize(type, value)
383
+ case type.to_sym
384
+ when :DateTime
385
+ DateTime.parse(parse_date(value))
386
+ when :Date
387
+ Date.parse(parse_date(value))
388
+ when :String
389
+ value.to_s
390
+ when :Integer
391
+ value.to_i
392
+ when :Float
393
+ value.to_f
394
+ when :BigDecimal
395
+ BigDecimal(value.to_s)
396
+ when :Boolean
397
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
398
+ true
399
+ else
400
+ false
401
+ end
402
+ when :Object
403
+ # generic object (usually a Hash), return directly
404
+ value
405
+ when /\AArray<(?<inner_type>.+)>\z/
406
+ inner_type = Regexp.last_match[:inner_type]
407
+ value.map { |v| _deserialize(inner_type, v) }
408
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
409
+ k_type = Regexp.last_match[:k_type]
410
+ v_type = Regexp.last_match[:v_type]
411
+ {}.tap do |hash|
412
+ value.each do |k, v|
413
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
414
+ end
415
+ end
416
+ else # model
417
+ XeroRuby::Accounting.const_get(type).build_from_hash(value)
418
+ end
419
+ end
420
+
421
+ # Returns the string representation of the object
422
+ # @return [String] String presentation of the object
423
+ def to_s
424
+ to_hash.to_s
425
+ end
426
+
427
+ # to_body is an alias to to_hash (backward compatibility)
428
+ # @return [Hash] Returns the object in the form of hash
429
+ def to_body
430
+ to_hash
431
+ end
432
+
433
+ # Returns the object in the form of hash
434
+ # @return [Hash] Returns the object in the form of hash
435
+ def to_hash(downcase: false)
436
+ hash = {}
437
+ self.class.attribute_map.each_pair do |attr, param|
438
+ value = self.send(attr)
439
+ next if value.nil?
440
+ key = downcase ? attr : param
441
+ hash[key] = _to_hash(value)
442
+ end
443
+ hash
444
+ end
445
+
446
+ # Returns the object in the form of hash with snake_case
447
+ def attributes
448
+ to_hash(downcase: true)
449
+ end
450
+
451
+ # Outputs non-array value in the form of hash
452
+ # For object, use to_hash. Otherwise, just return the value
453
+ # @param [Object] value Any valid value
454
+ # @return [Hash] Returns the value in the form of hash
455
+ def _to_hash(value)
456
+ if value.is_a?(Array)
457
+ value.compact.map { |v| _to_hash(v) }
458
+ elsif value.is_a?(Hash)
459
+ {}.tap do |hash|
460
+ value.each { |k, v| hash[k] = _to_hash(v) }
461
+ end
462
+ elsif value.respond_to? :to_hash
463
+ value.to_hash
464
+ else
465
+ value
466
+ end
467
+ end
468
+
469
+ def parse_date(datestring)
470
+ if datestring.include?('Date')
471
+ seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
472
+ Time.at(seconds_since_epoch).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
473
+ else # handle date 'types' for small subset of payroll API's
474
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
475
+ end
476
+ end
477
+ end
478
+ end