xero-ruby 2.4.1 → 3.2.1

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 (460) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +240 -189
  3. data/lib/xero-ruby.rb +10 -4
  4. data/lib/xero-ruby/api/accounting_api.rb +1308 -920
  5. data/lib/xero-ruby/api/asset_api.rb +15 -14
  6. data/lib/xero-ruby/api/files_api.rb +204 -85
  7. data/lib/xero-ruby/api/payroll_au_api.rb +121 -93
  8. data/lib/xero-ruby/api/payroll_nz_api.rb +307 -240
  9. data/lib/xero-ruby/api/payroll_uk_api.rb +317 -254
  10. data/lib/xero-ruby/api/project_api.rb +71 -59
  11. data/lib/xero-ruby/api_client.rb +182 -128
  12. data/lib/xero-ruby/api_error.rb +4 -4
  13. data/lib/xero-ruby/configuration.rb +17 -5
  14. data/lib/xero-ruby/models/accounting/account.rb +25 -12
  15. data/lib/xero-ruby/models/accounting/account_type.rb +1 -2
  16. data/lib/xero-ruby/models/accounting/accounts.rb +25 -11
  17. data/lib/xero-ruby/models/accounting/accounts_payable.rb +25 -11
  18. data/lib/xero-ruby/models/accounting/accounts_receivable.rb +25 -11
  19. data/lib/xero-ruby/models/accounting/action.rb +25 -11
  20. data/lib/xero-ruby/models/accounting/actions.rb +25 -11
  21. data/lib/xero-ruby/models/accounting/address.rb +27 -14
  22. data/lib/xero-ruby/models/accounting/address_for_organisation.rb +484 -0
  23. data/lib/xero-ruby/models/accounting/allocation.rb +25 -11
  24. data/lib/xero-ruby/models/accounting/allocations.rb +25 -11
  25. data/lib/xero-ruby/models/accounting/attachment.rb +25 -11
  26. data/lib/xero-ruby/models/accounting/attachments.rb +25 -11
  27. data/lib/xero-ruby/models/accounting/balance_details.rb +25 -11
  28. data/lib/xero-ruby/models/accounting/balances.rb +25 -11
  29. data/lib/xero-ruby/models/accounting/bank_transaction.rb +25 -11
  30. data/lib/xero-ruby/models/accounting/bank_transactions.rb +25 -11
  31. data/lib/xero-ruby/models/accounting/bank_transfer.rb +25 -11
  32. data/lib/xero-ruby/models/accounting/bank_transfers.rb +25 -11
  33. data/lib/xero-ruby/models/accounting/batch_payment.rb +41 -15
  34. data/lib/xero-ruby/models/accounting/batch_payment_details.rb +25 -11
  35. data/lib/xero-ruby/models/accounting/batch_payments.rb +25 -11
  36. data/lib/xero-ruby/models/accounting/bill.rb +25 -11
  37. data/lib/xero-ruby/models/accounting/branding_theme.rb +25 -11
  38. data/lib/xero-ruby/models/accounting/branding_themes.rb +25 -11
  39. data/lib/xero-ruby/models/accounting/budget.rb +327 -0
  40. data/lib/xero-ruby/models/accounting/budget_balance.rb +267 -0
  41. data/lib/xero-ruby/models/accounting/budget_line.rb +244 -0
  42. data/lib/xero-ruby/models/{files/file_response204.rb → accounting/budgets.rb} +40 -24
  43. data/lib/xero-ruby/models/accounting/cis_org_setting.rb +26 -12
  44. data/lib/xero-ruby/models/accounting/cis_org_settings.rb +224 -0
  45. data/lib/xero-ruby/models/accounting/cis_setting.rb +26 -12
  46. data/lib/xero-ruby/models/accounting/cis_settings.rb +25 -11
  47. data/lib/xero-ruby/models/accounting/contact.rb +25 -11
  48. data/lib/xero-ruby/models/accounting/contact_group.rb +25 -11
  49. data/lib/xero-ruby/models/accounting/contact_groups.rb +25 -11
  50. data/lib/xero-ruby/models/accounting/contact_person.rb +25 -11
  51. data/lib/xero-ruby/models/accounting/contacts.rb +25 -11
  52. data/lib/xero-ruby/models/accounting/conversion_balances.rb +25 -11
  53. data/lib/xero-ruby/models/accounting/conversion_date.rb +25 -11
  54. data/lib/xero-ruby/models/accounting/country_code.rb +1 -2
  55. data/lib/xero-ruby/models/accounting/credit_note.rb +62 -16
  56. data/lib/xero-ruby/models/accounting/credit_notes.rb +25 -11
  57. data/lib/xero-ruby/models/accounting/currencies.rb +25 -11
  58. data/lib/xero-ruby/models/accounting/currency.rb +25 -11
  59. data/lib/xero-ruby/models/accounting/currency_code.rb +1 -2
  60. data/lib/xero-ruby/models/accounting/element.rb +25 -11
  61. data/lib/xero-ruby/models/accounting/employee.rb +25 -11
  62. data/lib/xero-ruby/models/accounting/employees.rb +25 -11
  63. data/lib/xero-ruby/models/accounting/error.rb +25 -11
  64. data/lib/xero-ruby/models/accounting/expense_claim.rb +25 -11
  65. data/lib/xero-ruby/models/accounting/expense_claims.rb +25 -11
  66. data/lib/xero-ruby/models/accounting/external_link.rb +25 -11
  67. data/lib/xero-ruby/models/accounting/history_record.rb +25 -11
  68. data/lib/xero-ruby/models/accounting/history_records.rb +25 -11
  69. data/lib/xero-ruby/models/accounting/import_summary.rb +25 -11
  70. data/lib/xero-ruby/models/accounting/import_summary_accounts.rb +33 -19
  71. data/lib/xero-ruby/models/accounting/import_summary_object.rb +25 -11
  72. data/lib/xero-ruby/models/accounting/import_summary_organisation.rb +25 -11
  73. data/lib/xero-ruby/models/accounting/invoice.rb +37 -28
  74. data/lib/xero-ruby/models/accounting/invoice_reminder.rb +25 -11
  75. data/lib/xero-ruby/models/accounting/invoice_reminders.rb +25 -11
  76. data/lib/xero-ruby/models/accounting/invoices.rb +25 -11
  77. data/lib/xero-ruby/models/accounting/item.rb +25 -11
  78. data/lib/xero-ruby/models/accounting/items.rb +25 -11
  79. data/lib/xero-ruby/models/accounting/journal.rb +25 -11
  80. data/lib/xero-ruby/models/accounting/journal_line.rb +25 -11
  81. data/lib/xero-ruby/models/accounting/journals.rb +25 -11
  82. data/lib/xero-ruby/models/accounting/line_amount_types.rb +1 -2
  83. data/lib/xero-ruby/models/accounting/line_item.rb +36 -12
  84. data/lib/xero-ruby/models/accounting/line_item_tracking.rb +25 -11
  85. data/lib/xero-ruby/models/accounting/linked_transaction.rb +25 -11
  86. data/lib/xero-ruby/models/accounting/linked_transactions.rb +25 -11
  87. data/lib/xero-ruby/models/accounting/manual_journal.rb +25 -11
  88. data/lib/xero-ruby/models/accounting/manual_journal_line.rb +25 -11
  89. data/lib/xero-ruby/models/accounting/manual_journals.rb +25 -11
  90. data/lib/xero-ruby/models/accounting/online_invoice.rb +25 -11
  91. data/lib/xero-ruby/models/accounting/online_invoices.rb +25 -11
  92. data/lib/xero-ruby/models/accounting/organisation.rb +26 -14
  93. data/lib/xero-ruby/models/accounting/organisations.rb +25 -11
  94. data/lib/xero-ruby/models/accounting/overpayment.rb +25 -11
  95. data/lib/xero-ruby/models/accounting/overpayments.rb +25 -11
  96. data/lib/xero-ruby/models/accounting/payment.rb +36 -12
  97. data/lib/xero-ruby/models/accounting/payment_delete.rb +25 -11
  98. data/lib/xero-ruby/models/accounting/payment_service.rb +25 -11
  99. data/lib/xero-ruby/models/accounting/payment_services.rb +25 -11
  100. data/lib/xero-ruby/models/accounting/payment_term.rb +25 -11
  101. data/lib/xero-ruby/models/accounting/payment_term_type.rb +1 -2
  102. data/lib/xero-ruby/models/accounting/payments.rb +25 -11
  103. data/lib/xero-ruby/models/accounting/phone.rb +25 -11
  104. data/lib/xero-ruby/models/accounting/prepayment.rb +38 -12
  105. data/lib/xero-ruby/models/accounting/prepayments.rb +25 -11
  106. data/lib/xero-ruby/models/accounting/purchase.rb +25 -11
  107. data/lib/xero-ruby/models/accounting/purchase_order.rb +25 -11
  108. data/lib/xero-ruby/models/accounting/purchase_orders.rb +25 -11
  109. data/lib/xero-ruby/models/accounting/quote.rb +25 -11
  110. data/lib/xero-ruby/models/accounting/quote_line_amount_types.rb +1 -2
  111. data/lib/xero-ruby/models/accounting/quote_status_codes.rb +1 -2
  112. data/lib/xero-ruby/models/accounting/quotes.rb +25 -11
  113. data/lib/xero-ruby/models/accounting/receipt.rb +25 -11
  114. data/lib/xero-ruby/models/accounting/receipts.rb +25 -11
  115. data/lib/xero-ruby/models/accounting/repeating_invoice.rb +25 -11
  116. data/lib/xero-ruby/models/accounting/repeating_invoices.rb +25 -11
  117. data/lib/xero-ruby/models/accounting/report.rb +26 -22
  118. data/lib/xero-ruby/models/accounting/report_attribute.rb +25 -11
  119. data/lib/xero-ruby/models/accounting/report_cell.rb +25 -11
  120. data/lib/xero-ruby/models/accounting/report_fields.rb +25 -11
  121. data/lib/xero-ruby/models/accounting/report_row.rb +25 -11
  122. data/lib/xero-ruby/models/accounting/report_rows.rb +25 -11
  123. data/lib/xero-ruby/models/accounting/report_with_row.rb +26 -12
  124. data/lib/xero-ruby/models/accounting/report_with_rows.rb +25 -11
  125. data/lib/xero-ruby/models/accounting/reports.rb +25 -11
  126. data/lib/xero-ruby/models/accounting/request_empty.rb +25 -11
  127. data/lib/xero-ruby/models/accounting/row_type.rb +1 -2
  128. data/lib/xero-ruby/models/accounting/sales_tracking_category.rb +25 -11
  129. data/lib/xero-ruby/models/accounting/schedule.rb +25 -11
  130. data/lib/xero-ruby/models/accounting/setup.rb +25 -11
  131. data/lib/xero-ruby/models/accounting/tax_component.rb +25 -11
  132. data/lib/xero-ruby/models/accounting/tax_rate.rb +25 -11
  133. data/lib/xero-ruby/models/accounting/tax_rates.rb +25 -11
  134. data/lib/xero-ruby/models/accounting/tax_type.rb +1 -2
  135. data/lib/xero-ruby/models/accounting/ten_ninety_nine_contact.rb +25 -11
  136. data/lib/xero-ruby/models/accounting/time_zone.rb +1 -2
  137. data/lib/xero-ruby/models/accounting/tracking_categories.rb +25 -11
  138. data/lib/xero-ruby/models/accounting/tracking_category.rb +25 -11
  139. data/lib/xero-ruby/models/accounting/tracking_option.rb +25 -11
  140. data/lib/xero-ruby/models/accounting/tracking_options.rb +25 -11
  141. data/lib/xero-ruby/models/accounting/user.rb +25 -11
  142. data/lib/xero-ruby/models/accounting/users.rb +25 -11
  143. data/lib/xero-ruby/models/accounting/validation_error.rb +25 -11
  144. data/lib/xero-ruby/models/assets/asset.rb +25 -11
  145. data/lib/xero-ruby/models/assets/asset_status.rb +1 -2
  146. data/lib/xero-ruby/models/assets/asset_status_query_param.rb +1 -2
  147. data/lib/xero-ruby/models/assets/asset_type.rb +25 -11
  148. data/lib/xero-ruby/models/assets/assets.rb +25 -11
  149. data/lib/xero-ruby/models/assets/book_depreciation_detail.rb +25 -11
  150. data/lib/xero-ruby/models/assets/book_depreciation_setting.rb +25 -11
  151. data/lib/xero-ruby/models/assets/error.rb +25 -11
  152. data/lib/xero-ruby/models/assets/field_validation_errors_element.rb +26 -12
  153. data/lib/xero-ruby/models/assets/pagination.rb +25 -11
  154. data/lib/xero-ruby/models/assets/resource_validation_errors_element.rb +26 -12
  155. data/lib/xero-ruby/models/assets/setting.rb +25 -11
  156. data/lib/xero-ruby/models/files/association.rb +25 -11
  157. data/lib/xero-ruby/models/files/file_object.rb +25 -11
  158. data/lib/xero-ruby/models/files/files.rb +25 -11
  159. data/lib/xero-ruby/models/files/folder.rb +25 -11
  160. data/lib/xero-ruby/models/files/folders.rb +25 -11
  161. data/lib/xero-ruby/models/files/object_group.rb +1 -2
  162. data/lib/xero-ruby/models/files/object_type.rb +1 -2
  163. data/lib/xero-ruby/models/files/{inline_object.rb → upload_object.rb} +43 -14
  164. data/lib/xero-ruby/models/files/user.rb +25 -11
  165. data/lib/xero-ruby/models/payroll_au/account.rb +25 -11
  166. data/lib/xero-ruby/models/payroll_au/account_type.rb +1 -2
  167. data/lib/xero-ruby/models/payroll_au/allowance_type.rb +1 -2
  168. data/lib/xero-ruby/models/payroll_au/api_exception.rb +25 -11
  169. data/lib/xero-ruby/models/payroll_au/bank_account.rb +25 -11
  170. data/lib/xero-ruby/models/payroll_au/calendar_type.rb +1 -2
  171. data/lib/xero-ruby/models/payroll_au/deduction_line.rb +25 -16
  172. data/lib/xero-ruby/models/payroll_au/deduction_type.rb +25 -11
  173. data/lib/xero-ruby/models/payroll_au/deduction_type_calculation_type.rb +1 -2
  174. data/lib/xero-ruby/models/payroll_au/earnings_line.rb +25 -11
  175. data/lib/xero-ruby/models/payroll_au/earnings_rate.rb +25 -11
  176. data/lib/xero-ruby/models/payroll_au/earnings_rate_calculation_type.rb +1 -2
  177. data/lib/xero-ruby/models/payroll_au/earnings_type.rb +2 -2
  178. data/lib/xero-ruby/models/payroll_au/employee.rb +25 -11
  179. data/lib/xero-ruby/models/payroll_au/employee_status.rb +1 -2
  180. data/lib/xero-ruby/models/payroll_au/employees.rb +25 -11
  181. data/lib/xero-ruby/models/payroll_au/employment_basis.rb +1 -2
  182. data/lib/xero-ruby/models/payroll_au/employment_termination_payment_type.rb +1 -2
  183. data/lib/xero-ruby/models/payroll_au/entitlement_final_pay_payout_type.rb +1 -2
  184. data/lib/xero-ruby/models/payroll_au/home_address.rb +25 -11
  185. data/lib/xero-ruby/models/payroll_au/leave_accrual_line.rb +25 -11
  186. data/lib/xero-ruby/models/payroll_au/leave_application.rb +25 -11
  187. data/lib/xero-ruby/models/payroll_au/leave_applications.rb +25 -11
  188. data/lib/xero-ruby/models/payroll_au/leave_balance.rb +25 -11
  189. data/lib/xero-ruby/models/payroll_au/leave_earnings_line.rb +25 -11
  190. data/lib/xero-ruby/models/payroll_au/leave_line.rb +25 -11
  191. data/lib/xero-ruby/models/payroll_au/leave_line_calculation_type.rb +1 -2
  192. data/lib/xero-ruby/models/payroll_au/leave_lines.rb +25 -11
  193. data/lib/xero-ruby/models/payroll_au/leave_period.rb +25 -11
  194. data/lib/xero-ruby/models/payroll_au/leave_period_status.rb +1 -2
  195. data/lib/xero-ruby/models/payroll_au/leave_type.rb +25 -11
  196. data/lib/xero-ruby/models/payroll_au/leave_type_contribution_type.rb +1 -2
  197. data/lib/xero-ruby/models/payroll_au/manual_tax_type.rb +1 -2
  198. data/lib/xero-ruby/models/payroll_au/opening_balances.rb +25 -11
  199. data/lib/xero-ruby/models/payroll_au/pay_item.rb +25 -11
  200. data/lib/xero-ruby/models/payroll_au/pay_items.rb +25 -11
  201. data/lib/xero-ruby/models/payroll_au/pay_run.rb +25 -11
  202. data/lib/xero-ruby/models/payroll_au/pay_run_status.rb +1 -2
  203. data/lib/xero-ruby/models/payroll_au/pay_runs.rb +25 -11
  204. data/lib/xero-ruby/models/payroll_au/pay_template.rb +25 -11
  205. data/lib/xero-ruby/models/payroll_au/payment_frequency_type.rb +1 -2
  206. data/lib/xero-ruby/models/payroll_au/payroll_calendar.rb +25 -11
  207. data/lib/xero-ruby/models/payroll_au/payroll_calendars.rb +25 -11
  208. data/lib/xero-ruby/models/payroll_au/payslip.rb +25 -11
  209. data/lib/xero-ruby/models/payroll_au/payslip_lines.rb +25 -11
  210. data/lib/xero-ruby/models/payroll_au/payslip_object.rb +25 -11
  211. data/lib/xero-ruby/models/payroll_au/payslip_summary.rb +25 -11
  212. data/lib/xero-ruby/models/payroll_au/payslips.rb +25 -11
  213. data/lib/xero-ruby/models/payroll_au/rate_type.rb +1 -2
  214. data/lib/xero-ruby/models/payroll_au/reimbursement_line.rb +25 -11
  215. data/lib/xero-ruby/models/payroll_au/reimbursement_lines.rb +25 -11
  216. data/lib/xero-ruby/models/payroll_au/reimbursement_type.rb +25 -11
  217. data/lib/xero-ruby/models/payroll_au/residency_status.rb +1 -2
  218. data/lib/xero-ruby/models/payroll_au/settings.rb +25 -11
  219. data/lib/xero-ruby/models/payroll_au/settings_object.rb +25 -11
  220. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories.rb +25 -11
  221. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_employee_groups.rb +25 -11
  222. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_timesheet_categories.rb +25 -11
  223. data/lib/xero-ruby/models/payroll_au/state.rb +1 -2
  224. data/lib/xero-ruby/models/payroll_au/super_fund.rb +25 -11
  225. data/lib/xero-ruby/models/payroll_au/super_fund_product.rb +25 -11
  226. data/lib/xero-ruby/models/payroll_au/super_fund_products.rb +25 -11
  227. data/lib/xero-ruby/models/payroll_au/super_fund_type.rb +1 -2
  228. data/lib/xero-ruby/models/payroll_au/super_funds.rb +25 -11
  229. data/lib/xero-ruby/models/payroll_au/super_line.rb +26 -12
  230. data/lib/xero-ruby/models/payroll_au/super_membership.rb +26 -12
  231. data/lib/xero-ruby/models/payroll_au/superannuation_calculation_type.rb +1 -2
  232. data/lib/xero-ruby/models/payroll_au/superannuation_contribution_type.rb +1 -2
  233. data/lib/xero-ruby/models/payroll_au/superannuation_line.rb +25 -11
  234. data/lib/xero-ruby/models/payroll_au/tax_declaration.rb +25 -11
  235. data/lib/xero-ruby/models/payroll_au/tax_line.rb +25 -11
  236. data/lib/xero-ruby/models/payroll_au/tfn_exemption_type.rb +1 -2
  237. data/lib/xero-ruby/models/payroll_au/timesheet.rb +25 -11
  238. data/lib/xero-ruby/models/payroll_au/timesheet_line.rb +25 -11
  239. data/lib/xero-ruby/models/payroll_au/timesheet_object.rb +25 -11
  240. data/lib/xero-ruby/models/payroll_au/timesheet_status.rb +1 -2
  241. data/lib/xero-ruby/models/payroll_au/timesheets.rb +25 -11
  242. data/lib/xero-ruby/models/payroll_au/validation_error.rb +25 -11
  243. data/lib/xero-ruby/models/payroll_nz/account.rb +24 -10
  244. data/lib/xero-ruby/models/payroll_nz/accounts.rb +24 -10
  245. data/lib/xero-ruby/models/payroll_nz/address.rb +24 -10
  246. data/lib/xero-ruby/models/payroll_nz/bank_account.rb +24 -10
  247. data/lib/xero-ruby/models/payroll_nz/benefit.rb +24 -10
  248. data/lib/xero-ruby/models/payroll_nz/calendar_type.rb +0 -1
  249. data/lib/xero-ruby/models/payroll_nz/deduction.rb +24 -10
  250. data/lib/xero-ruby/models/payroll_nz/deduction_line.rb +24 -10
  251. data/lib/xero-ruby/models/payroll_nz/deduction_object.rb +24 -10
  252. data/lib/xero-ruby/models/payroll_nz/deductions.rb +24 -10
  253. data/lib/xero-ruby/models/payroll_nz/earnings_line.rb +25 -11
  254. data/lib/xero-ruby/models/payroll_nz/earnings_order.rb +24 -10
  255. data/lib/xero-ruby/models/payroll_nz/earnings_order_object.rb +24 -10
  256. data/lib/xero-ruby/models/payroll_nz/earnings_orders.rb +24 -10
  257. data/lib/xero-ruby/models/payroll_nz/earnings_rate.rb +24 -10
  258. data/lib/xero-ruby/models/payroll_nz/earnings_rate_object.rb +24 -10
  259. data/lib/xero-ruby/models/payroll_nz/earnings_rates.rb +24 -10
  260. data/lib/xero-ruby/models/payroll_nz/earnings_template.rb +24 -10
  261. data/lib/xero-ruby/models/payroll_nz/earnings_template_object.rb +24 -10
  262. data/lib/xero-ruby/models/payroll_nz/employee.rb +24 -10
  263. data/lib/xero-ruby/models/payroll_nz/employee_earnings_templates.rb +24 -10
  264. data/lib/xero-ruby/models/payroll_nz/employee_leave.rb +24 -10
  265. data/lib/xero-ruby/models/payroll_nz/employee_leave_balance.rb +24 -10
  266. data/lib/xero-ruby/models/payroll_nz/employee_leave_balances.rb +24 -10
  267. data/lib/xero-ruby/models/payroll_nz/employee_leave_object.rb +24 -10
  268. data/lib/xero-ruby/models/payroll_nz/employee_leave_setup.rb +24 -10
  269. data/lib/xero-ruby/models/payroll_nz/employee_leave_setup_object.rb +24 -10
  270. data/lib/xero-ruby/models/payroll_nz/employee_leave_type.rb +24 -10
  271. data/lib/xero-ruby/models/payroll_nz/employee_leave_type_object.rb +24 -10
  272. data/lib/xero-ruby/models/payroll_nz/employee_leave_types.rb +24 -10
  273. data/lib/xero-ruby/models/payroll_nz/employee_leaves.rb +24 -10
  274. data/lib/xero-ruby/models/payroll_nz/employee_object.rb +24 -10
  275. data/lib/xero-ruby/models/payroll_nz/employee_opening_balance.rb +24 -10
  276. data/lib/xero-ruby/models/payroll_nz/employee_opening_balances_object.rb +24 -10
  277. data/lib/xero-ruby/models/payroll_nz/employee_pay_template.rb +24 -10
  278. data/lib/xero-ruby/models/payroll_nz/employee_pay_template_object.rb +24 -10
  279. data/lib/xero-ruby/models/payroll_nz/employee_pay_templates.rb +24 -10
  280. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance.rb +24 -10
  281. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_balance_object.rb +24 -10
  282. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leave_summary.rb +24 -10
  283. data/lib/xero-ruby/models/payroll_nz/employee_statutory_leaves_summaries.rb +24 -10
  284. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave.rb +25 -11
  285. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave_object.rb +24 -10
  286. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leaves.rb +24 -10
  287. data/lib/xero-ruby/models/payroll_nz/employee_tax.rb +24 -10
  288. data/lib/xero-ruby/models/payroll_nz/employee_tax_object.rb +24 -10
  289. data/lib/xero-ruby/models/payroll_nz/employees.rb +24 -10
  290. data/lib/xero-ruby/models/payroll_nz/employment.rb +24 -10
  291. data/lib/xero-ruby/models/payroll_nz/employment_object.rb +24 -10
  292. data/lib/xero-ruby/models/payroll_nz/gross_earnings_history.rb +24 -10
  293. data/lib/xero-ruby/models/payroll_nz/invalid_field.rb +24 -10
  294. data/lib/xero-ruby/models/payroll_nz/leave_accrual_line.rb +24 -10
  295. data/lib/xero-ruby/models/payroll_nz/leave_earnings_line.rb +25 -11
  296. data/lib/xero-ruby/models/payroll_nz/leave_period.rb +24 -10
  297. data/lib/xero-ruby/models/payroll_nz/leave_periods.rb +24 -10
  298. data/lib/xero-ruby/models/payroll_nz/leave_type.rb +24 -10
  299. data/lib/xero-ruby/models/payroll_nz/leave_type_object.rb +24 -10
  300. data/lib/xero-ruby/models/payroll_nz/leave_types.rb +24 -10
  301. data/lib/xero-ruby/models/payroll_nz/pagination.rb +24 -10
  302. data/lib/xero-ruby/models/payroll_nz/pay_run.rb +24 -10
  303. data/lib/xero-ruby/models/payroll_nz/pay_run_calendar.rb +24 -10
  304. data/lib/xero-ruby/models/payroll_nz/pay_run_calendar_object.rb +24 -10
  305. data/lib/xero-ruby/models/payroll_nz/pay_run_calendars.rb +24 -10
  306. data/lib/xero-ruby/models/payroll_nz/pay_run_object.rb +24 -10
  307. data/lib/xero-ruby/models/payroll_nz/pay_runs.rb +24 -10
  308. data/lib/xero-ruby/models/payroll_nz/pay_slip.rb +24 -10
  309. data/lib/xero-ruby/models/payroll_nz/pay_slip_object.rb +24 -10
  310. data/lib/xero-ruby/models/payroll_nz/pay_slips.rb +24 -10
  311. data/lib/xero-ruby/models/payroll_nz/payment_line.rb +24 -10
  312. data/lib/xero-ruby/models/payroll_nz/payment_method.rb +24 -10
  313. data/lib/xero-ruby/models/payroll_nz/payment_method_object.rb +24 -10
  314. data/lib/xero-ruby/models/payroll_nz/problem.rb +24 -10
  315. data/lib/xero-ruby/models/payroll_nz/reimbursement.rb +24 -10
  316. data/lib/xero-ruby/models/payroll_nz/reimbursement_line.rb +24 -10
  317. data/lib/xero-ruby/models/payroll_nz/reimbursement_object.rb +24 -10
  318. data/lib/xero-ruby/models/payroll_nz/reimbursements.rb +24 -10
  319. data/lib/xero-ruby/models/payroll_nz/salary_and_wage.rb +28 -13
  320. data/lib/xero-ruby/models/payroll_nz/salary_and_wage_object.rb +24 -10
  321. data/lib/xero-ruby/models/payroll_nz/salary_and_wages.rb +24 -10
  322. data/lib/xero-ruby/models/payroll_nz/settings.rb +24 -10
  323. data/lib/xero-ruby/models/payroll_nz/statutory_deduction.rb +24 -10
  324. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_category.rb +0 -1
  325. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_line.rb +24 -10
  326. data/lib/xero-ruby/models/payroll_nz/statutory_deduction_object.rb +24 -10
  327. data/lib/xero-ruby/models/payroll_nz/statutory_deductions.rb +24 -10
  328. data/lib/xero-ruby/models/payroll_nz/superannuation_line.rb +25 -11
  329. data/lib/xero-ruby/models/payroll_nz/superannuation_object.rb +24 -10
  330. data/lib/xero-ruby/models/payroll_nz/superannuations.rb +24 -10
  331. data/lib/xero-ruby/models/payroll_nz/tax_code.rb +0 -1
  332. data/lib/xero-ruby/models/payroll_nz/tax_line.rb +24 -10
  333. data/lib/xero-ruby/models/payroll_nz/tax_settings.rb +24 -10
  334. data/lib/xero-ruby/models/payroll_nz/timesheet.rb +28 -13
  335. data/lib/xero-ruby/models/payroll_nz/timesheet_earnings_line.rb +25 -11
  336. data/lib/xero-ruby/models/payroll_nz/timesheet_line.rb +24 -10
  337. data/lib/xero-ruby/models/payroll_nz/timesheet_line_object.rb +24 -10
  338. data/lib/xero-ruby/models/payroll_nz/timesheet_object.rb +24 -10
  339. data/lib/xero-ruby/models/payroll_nz/timesheets.rb +24 -10
  340. data/lib/xero-ruby/models/payroll_nz/tracking_categories.rb +24 -10
  341. data/lib/xero-ruby/models/payroll_nz/tracking_category.rb +24 -10
  342. data/lib/xero-ruby/models/payroll_uk/account.rb +24 -10
  343. data/lib/xero-ruby/models/payroll_uk/accounts.rb +24 -10
  344. data/lib/xero-ruby/models/payroll_uk/address.rb +24 -10
  345. data/lib/xero-ruby/models/payroll_uk/bank_account.rb +24 -10
  346. data/lib/xero-ruby/models/payroll_uk/benefit.rb +24 -10
  347. data/lib/xero-ruby/models/payroll_uk/benefit_line.rb +24 -10
  348. data/lib/xero-ruby/models/payroll_uk/benefit_object.rb +24 -10
  349. data/lib/xero-ruby/models/payroll_uk/benefits.rb +24 -10
  350. data/lib/xero-ruby/models/payroll_uk/court_order_line.rb +24 -10
  351. data/lib/xero-ruby/models/payroll_uk/deduction.rb +24 -10
  352. data/lib/xero-ruby/models/payroll_uk/deduction_line.rb +24 -10
  353. data/lib/xero-ruby/models/payroll_uk/deduction_object.rb +24 -10
  354. data/lib/xero-ruby/models/payroll_uk/deductions.rb +24 -10
  355. data/lib/xero-ruby/models/payroll_uk/earnings_line.rb +24 -10
  356. data/lib/xero-ruby/models/payroll_uk/earnings_order.rb +24 -10
  357. data/lib/xero-ruby/models/payroll_uk/earnings_order_object.rb +24 -10
  358. data/lib/xero-ruby/models/payroll_uk/earnings_orders.rb +24 -10
  359. data/lib/xero-ruby/models/payroll_uk/earnings_rate.rb +34 -12
  360. data/lib/xero-ruby/models/payroll_uk/earnings_rate_object.rb +24 -10
  361. data/lib/xero-ruby/models/payroll_uk/earnings_rates.rb +24 -10
  362. data/lib/xero-ruby/models/payroll_uk/earnings_template.rb +24 -10
  363. data/lib/xero-ruby/models/payroll_uk/earnings_template_object.rb +24 -10
  364. data/lib/xero-ruby/models/payroll_uk/employee.rb +24 -10
  365. data/lib/xero-ruby/models/payroll_uk/employee_leave.rb +24 -10
  366. data/lib/xero-ruby/models/payroll_uk/employee_leave_balance.rb +24 -10
  367. data/lib/xero-ruby/models/payroll_uk/employee_leave_balances.rb +24 -10
  368. data/lib/xero-ruby/models/payroll_uk/employee_leave_object.rb +24 -10
  369. data/lib/xero-ruby/models/payroll_uk/employee_leave_type.rb +24 -10
  370. data/lib/xero-ruby/models/payroll_uk/employee_leave_type_object.rb +24 -10
  371. data/lib/xero-ruby/models/payroll_uk/employee_leave_types.rb +24 -10
  372. data/lib/xero-ruby/models/payroll_uk/employee_leaves.rb +24 -10
  373. data/lib/xero-ruby/models/payroll_uk/employee_object.rb +24 -10
  374. data/lib/xero-ruby/models/payroll_uk/employee_opening_balances.rb +24 -10
  375. data/lib/xero-ruby/models/payroll_uk/employee_opening_balances_object.rb +24 -10
  376. data/lib/xero-ruby/models/payroll_uk/employee_pay_template.rb +24 -10
  377. data/lib/xero-ruby/models/payroll_uk/employee_pay_template_object.rb +24 -10
  378. data/lib/xero-ruby/models/payroll_uk/employee_pay_templates.rb +24 -10
  379. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance.rb +24 -10
  380. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_balance_object.rb +24 -10
  381. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leave_summary.rb +24 -10
  382. data/lib/xero-ruby/models/payroll_uk/employee_statutory_leaves_summaries.rb +24 -10
  383. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave.rb +25 -11
  384. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave_object.rb +24 -10
  385. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leaves.rb +24 -10
  386. data/lib/xero-ruby/models/payroll_uk/employee_tax.rb +24 -10
  387. data/lib/xero-ruby/models/payroll_uk/employee_tax_object.rb +24 -10
  388. data/lib/xero-ruby/models/payroll_uk/employees.rb +24 -10
  389. data/lib/xero-ruby/models/payroll_uk/employment.rb +24 -10
  390. data/lib/xero-ruby/models/payroll_uk/employment_object.rb +24 -10
  391. data/lib/xero-ruby/models/payroll_uk/invalid_field.rb +24 -10
  392. data/lib/xero-ruby/models/payroll_uk/leave_accrual_line.rb +24 -10
  393. data/lib/xero-ruby/models/payroll_uk/leave_earnings_line.rb +24 -10
  394. data/lib/xero-ruby/models/payroll_uk/leave_period.rb +24 -10
  395. data/lib/xero-ruby/models/payroll_uk/leave_periods.rb +24 -10
  396. data/lib/xero-ruby/models/payroll_uk/leave_type.rb +24 -10
  397. data/lib/xero-ruby/models/payroll_uk/leave_type_object.rb +24 -10
  398. data/lib/xero-ruby/models/payroll_uk/leave_types.rb +24 -10
  399. data/lib/xero-ruby/models/payroll_uk/pagination.rb +24 -10
  400. data/lib/xero-ruby/models/payroll_uk/pay_run.rb +24 -10
  401. data/lib/xero-ruby/models/payroll_uk/pay_run_calendar.rb +24 -10
  402. data/lib/xero-ruby/models/payroll_uk/pay_run_calendar_object.rb +24 -10
  403. data/lib/xero-ruby/models/payroll_uk/pay_run_calendars.rb +24 -10
  404. data/lib/xero-ruby/models/payroll_uk/pay_run_object.rb +24 -10
  405. data/lib/xero-ruby/models/payroll_uk/pay_runs.rb +24 -10
  406. data/lib/xero-ruby/models/payroll_uk/payment_line.rb +24 -10
  407. data/lib/xero-ruby/models/payroll_uk/payment_method.rb +24 -10
  408. data/lib/xero-ruby/models/payroll_uk/payment_method_object.rb +24 -10
  409. data/lib/xero-ruby/models/payroll_uk/payslip.rb +24 -10
  410. data/lib/xero-ruby/models/payroll_uk/payslip_object.rb +24 -10
  411. data/lib/xero-ruby/models/payroll_uk/payslips.rb +24 -10
  412. data/lib/xero-ruby/models/payroll_uk/problem.rb +24 -10
  413. data/lib/xero-ruby/models/payroll_uk/reimbursement.rb +24 -10
  414. data/lib/xero-ruby/models/payroll_uk/reimbursement_line.rb +24 -10
  415. data/lib/xero-ruby/models/payroll_uk/reimbursement_object.rb +24 -10
  416. data/lib/xero-ruby/models/payroll_uk/reimbursements.rb +24 -10
  417. data/lib/xero-ruby/models/payroll_uk/salary_and_wage.rb +27 -12
  418. data/lib/xero-ruby/models/payroll_uk/salary_and_wage_object.rb +24 -10
  419. data/lib/xero-ruby/models/payroll_uk/salary_and_wages.rb +24 -10
  420. data/lib/xero-ruby/models/payroll_uk/settings.rb +24 -10
  421. data/lib/xero-ruby/models/payroll_uk/statutory_deduction.rb +24 -10
  422. data/lib/xero-ruby/models/payroll_uk/statutory_deduction_category.rb +0 -1
  423. data/lib/xero-ruby/models/payroll_uk/tax_line.rb +24 -10
  424. data/lib/xero-ruby/models/payroll_uk/timesheet.rb +25 -11
  425. data/lib/xero-ruby/models/payroll_uk/timesheet_earnings_line.rb +24 -10
  426. data/lib/xero-ruby/models/payroll_uk/timesheet_line.rb +24 -10
  427. data/lib/xero-ruby/models/payroll_uk/timesheet_line_object.rb +24 -10
  428. data/lib/xero-ruby/models/payroll_uk/timesheet_object.rb +24 -10
  429. data/lib/xero-ruby/models/payroll_uk/timesheets.rb +24 -10
  430. data/lib/xero-ruby/models/payroll_uk/tracking_categories.rb +24 -10
  431. data/lib/xero-ruby/models/payroll_uk/tracking_category.rb +24 -10
  432. data/lib/xero-ruby/models/projects/amount.rb +24 -10
  433. data/lib/xero-ruby/models/projects/charge_type.rb +0 -1
  434. data/lib/xero-ruby/models/projects/currency_code.rb +0 -1
  435. data/lib/xero-ruby/models/projects/error.rb +24 -10
  436. data/lib/xero-ruby/models/projects/pagination.rb +24 -10
  437. data/lib/xero-ruby/models/projects/project.rb +24 -10
  438. data/lib/xero-ruby/models/projects/project_create_or_update.rb +24 -10
  439. data/lib/xero-ruby/models/projects/project_patch.rb +24 -10
  440. data/lib/xero-ruby/models/projects/project_status.rb +0 -1
  441. data/lib/xero-ruby/models/projects/project_user.rb +24 -10
  442. data/lib/xero-ruby/models/projects/project_users.rb +24 -10
  443. data/lib/xero-ruby/models/projects/projects.rb +24 -10
  444. data/lib/xero-ruby/models/projects/task.rb +24 -10
  445. data/lib/xero-ruby/models/projects/task_create_or_update.rb +24 -10
  446. data/lib/xero-ruby/models/projects/tasks.rb +24 -10
  447. data/lib/xero-ruby/models/projects/time_entries.rb +24 -10
  448. data/lib/xero-ruby/models/projects/time_entry.rb +27 -12
  449. data/lib/xero-ruby/models/projects/time_entry_create_or_update.rb +24 -10
  450. data/lib/xero-ruby/string_serialization.rb +52 -0
  451. data/lib/xero-ruby/version.rb +3 -3
  452. data/lib/xero-ruby/where.rb +65 -0
  453. data/spec/api_client_spec.rb +292 -14
  454. data/spec/api_error_spec.rb +45 -0
  455. data/spec/configuration_spec.rb +26 -16
  456. data/spec/files/models/inline_object_spec.rb +3 -3
  457. data/spec/helper_methods_spec.rb +110 -0
  458. data/spec/where_spec.rb +82 -0
  459. metadata +43 -12
  460. data/spec/files/models/file_response204_spec.rb +0 -41
@@ -3,7 +3,6 @@
3
3
 
4
4
  #This is the Xero Payroll API for orgs in the NZ region.
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
@@ -253,38 +252,53 @@ module XeroRuby::PayrollNz
253
252
 
254
253
  # Returns the object in the form of hash
255
254
  # @return [Hash] Returns the object in the form of hash
256
- def to_hash
255
+ def to_hash(downcase: false)
257
256
  hash = {}
258
257
  self.class.attribute_map.each_pair do |attr, param|
259
258
  value = self.send(attr)
260
259
  next if value.nil?
261
- hash[param] = _to_hash(value)
260
+ key = downcase ? attr : param
261
+ hash[key] = _to_hash(value, downcase: downcase)
262
262
  end
263
263
  hash
264
264
  end
265
265
 
266
+ # Returns the object in the form of hash with snake_case
267
+ def to_attributes
268
+ to_hash(downcase: true)
269
+ end
270
+
266
271
  # Outputs non-array value in the form of hash
267
272
  # For object, use to_hash. Otherwise, just return the value
268
273
  # @param [Object] value Any valid value
269
274
  # @return [Hash] Returns the value in the form of hash
270
- def _to_hash(value)
275
+ def _to_hash(value, downcase: false)
271
276
  if value.is_a?(Array)
272
- value.compact.map { |v| _to_hash(v) }
277
+ value.map do |v|
278
+ v.to_hash(downcase: downcase)
279
+ end
273
280
  elsif value.is_a?(Hash)
274
281
  {}.tap do |hash|
275
- value.each { |k, v| hash[k] = _to_hash(v) }
282
+ value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
276
283
  end
277
284
  elsif value.respond_to? :to_hash
278
- value.to_hash
285
+ value.to_hash(downcase: downcase)
279
286
  else
280
287
  value
281
288
  end
282
289
  end
283
290
 
284
- # customized data_parser
285
291
  def parse_date(datestring)
286
- seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
287
- return Time.at(seconds_since_epoch).strftime('%Y-%m-%dT%l:%M:%S%z').to_s
292
+ if datestring.include?('Date')
293
+ date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
294
+ original, date, timezone = *date_pattern.match(datestring)
295
+ date = (date.to_i / 1000)
296
+ Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
297
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
298
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
299
+ else # handle date 'types' for small subset of payroll API's
300
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
301
+ end
288
302
  end
289
303
  end
290
304
  end
@@ -3,7 +3,6 @@
3
3
 
4
4
  #This is the Xero Payroll API for orgs in the NZ region.
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
@@ -201,38 +200,53 @@ module XeroRuby::PayrollNz
201
200
 
202
201
  # Returns the object in the form of hash
203
202
  # @return [Hash] Returns the object in the form of hash
204
- def to_hash
203
+ def to_hash(downcase: false)
205
204
  hash = {}
206
205
  self.class.attribute_map.each_pair do |attr, param|
207
206
  value = self.send(attr)
208
207
  next if value.nil?
209
- hash[param] = _to_hash(value)
208
+ key = downcase ? attr : param
209
+ hash[key] = _to_hash(value, downcase: downcase)
210
210
  end
211
211
  hash
212
212
  end
213
213
 
214
+ # Returns the object in the form of hash with snake_case
215
+ def to_attributes
216
+ to_hash(downcase: true)
217
+ end
218
+
214
219
  # Outputs non-array value in the form of hash
215
220
  # For object, use to_hash. Otherwise, just return the value
216
221
  # @param [Object] value Any valid value
217
222
  # @return [Hash] Returns the value in the form of hash
218
- def _to_hash(value)
223
+ def _to_hash(value, downcase: false)
219
224
  if value.is_a?(Array)
220
- value.compact.map { |v| _to_hash(v) }
225
+ value.map do |v|
226
+ v.to_hash(downcase: downcase)
227
+ end
221
228
  elsif value.is_a?(Hash)
222
229
  {}.tap do |hash|
223
- value.each { |k, v| hash[k] = _to_hash(v) }
230
+ value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
224
231
  end
225
232
  elsif value.respond_to? :to_hash
226
- value.to_hash
233
+ value.to_hash(downcase: downcase)
227
234
  else
228
235
  value
229
236
  end
230
237
  end
231
238
 
232
- # customized data_parser
233
239
  def parse_date(datestring)
234
- seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
235
- return Time.at(seconds_since_epoch).strftime('%Y-%m-%dT%l:%M:%S%z').to_s
240
+ if datestring.include?('Date')
241
+ date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
242
+ original, date, timezone = *date_pattern.match(datestring)
243
+ date = (date.to_i / 1000)
244
+ Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
245
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
246
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
247
+ else # handle date 'types' for small subset of payroll API's
248
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
249
+ end
236
250
  end
237
251
  end
238
252
  end
@@ -3,7 +3,6 @@
3
3
 
4
4
  #This is the Xero Payroll API for orgs in the NZ region.
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
@@ -193,38 +192,53 @@ module XeroRuby::PayrollNz
193
192
 
194
193
  # Returns the object in the form of hash
195
194
  # @return [Hash] Returns the object in the form of hash
196
- def to_hash
195
+ def to_hash(downcase: false)
197
196
  hash = {}
198
197
  self.class.attribute_map.each_pair do |attr, param|
199
198
  value = self.send(attr)
200
199
  next if value.nil?
201
- hash[param] = _to_hash(value)
200
+ key = downcase ? attr : param
201
+ hash[key] = _to_hash(value, downcase: downcase)
202
202
  end
203
203
  hash
204
204
  end
205
205
 
206
+ # Returns the object in the form of hash with snake_case
207
+ def to_attributes
208
+ to_hash(downcase: true)
209
+ end
210
+
206
211
  # Outputs non-array value in the form of hash
207
212
  # For object, use to_hash. Otherwise, just return the value
208
213
  # @param [Object] value Any valid value
209
214
  # @return [Hash] Returns the value in the form of hash
210
- def _to_hash(value)
215
+ def _to_hash(value, downcase: false)
211
216
  if value.is_a?(Array)
212
- value.compact.map { |v| _to_hash(v) }
217
+ value.map do |v|
218
+ v.to_hash(downcase: downcase)
219
+ end
213
220
  elsif value.is_a?(Hash)
214
221
  {}.tap do |hash|
215
- value.each { |k, v| hash[k] = _to_hash(v) }
222
+ value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
216
223
  end
217
224
  elsif value.respond_to? :to_hash
218
- value.to_hash
225
+ value.to_hash(downcase: downcase)
219
226
  else
220
227
  value
221
228
  end
222
229
  end
223
230
 
224
- # customized data_parser
225
231
  def parse_date(datestring)
226
- seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
227
- return Time.at(seconds_since_epoch).strftime('%Y-%m-%dT%l:%M:%S%z').to_s
232
+ if datestring.include?('Date')
233
+ date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
234
+ original, date, timezone = *date_pattern.match(datestring)
235
+ date = (date.to_i / 1000)
236
+ Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
237
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
238
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
239
+ else # handle date 'types' for small subset of payroll API's
240
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
241
+ end
228
242
  end
229
243
  end
230
244
  end
@@ -3,7 +3,6 @@
3
3
 
4
4
  #This is the Xero Payroll API for orgs in the NZ region.
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
@@ -191,38 +190,53 @@ module XeroRuby::PayrollNz
191
190
 
192
191
  # Returns the object in the form of hash
193
192
  # @return [Hash] Returns the object in the form of hash
194
- def to_hash
193
+ def to_hash(downcase: false)
195
194
  hash = {}
196
195
  self.class.attribute_map.each_pair do |attr, param|
197
196
  value = self.send(attr)
198
197
  next if value.nil?
199
- hash[param] = _to_hash(value)
198
+ key = downcase ? attr : param
199
+ hash[key] = _to_hash(value, downcase: downcase)
200
200
  end
201
201
  hash
202
202
  end
203
203
 
204
+ # Returns the object in the form of hash with snake_case
205
+ def to_attributes
206
+ to_hash(downcase: true)
207
+ end
208
+
204
209
  # Outputs non-array value in the form of hash
205
210
  # For object, use to_hash. Otherwise, just return the value
206
211
  # @param [Object] value Any valid value
207
212
  # @return [Hash] Returns the value in the form of hash
208
- def _to_hash(value)
213
+ def _to_hash(value, downcase: false)
209
214
  if value.is_a?(Array)
210
- value.compact.map { |v| _to_hash(v) }
215
+ value.map do |v|
216
+ v.to_hash(downcase: downcase)
217
+ end
211
218
  elsif value.is_a?(Hash)
212
219
  {}.tap do |hash|
213
- value.each { |k, v| hash[k] = _to_hash(v) }
220
+ value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
214
221
  end
215
222
  elsif value.respond_to? :to_hash
216
- value.to_hash
223
+ value.to_hash(downcase: downcase)
217
224
  else
218
225
  value
219
226
  end
220
227
  end
221
228
 
222
- # customized data_parser
223
229
  def parse_date(datestring)
224
- seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
225
- return Time.at(seconds_since_epoch).strftime('%Y-%m-%dT%l:%M:%S%z').to_s
230
+ if datestring.include?('Date')
231
+ date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
232
+ original, date, timezone = *date_pattern.match(datestring)
233
+ date = (date.to_i / 1000)
234
+ Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
235
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
236
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
237
+ else # handle date 'types' for small subset of payroll API's
238
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
239
+ end
226
240
  end
227
241
  end
228
242
  end
@@ -3,7 +3,6 @@
3
3
 
4
4
  #This is the Xero Payroll API for orgs in the NZ region.
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
@@ -231,38 +230,53 @@ module XeroRuby::PayrollNz
231
230
 
232
231
  # Returns the object in the form of hash
233
232
  # @return [Hash] Returns the object in the form of hash
234
- def to_hash
233
+ def to_hash(downcase: false)
235
234
  hash = {}
236
235
  self.class.attribute_map.each_pair do |attr, param|
237
236
  value = self.send(attr)
238
237
  next if value.nil?
239
- hash[param] = _to_hash(value)
238
+ key = downcase ? attr : param
239
+ hash[key] = _to_hash(value, downcase: downcase)
240
240
  end
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
247
252
  # @return [Hash] Returns the value in the form of hash
248
- def _to_hash(value)
253
+ def _to_hash(value, downcase: false)
249
254
  if value.is_a?(Array)
250
- value.compact.map { |v| _to_hash(v) }
255
+ value.map do |v|
256
+ v.to_hash(downcase: downcase)
257
+ end
251
258
  elsif value.is_a?(Hash)
252
259
  {}.tap do |hash|
253
- value.each { |k, v| hash[k] = _to_hash(v) }
260
+ value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
254
261
  end
255
262
  elsif value.respond_to? :to_hash
256
- value.to_hash
263
+ value.to_hash(downcase: downcase)
257
264
  else
258
265
  value
259
266
  end
260
267
  end
261
268
 
262
- # customized data_parser
263
269
  def parse_date(datestring)
264
- seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
265
- return Time.at(seconds_since_epoch).strftime('%Y-%m-%dT%l:%M:%S%z').to_s
270
+ if datestring.include?('Date')
271
+ date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
272
+ original, date, timezone = *date_pattern.match(datestring)
273
+ date = (date.to_i / 1000)
274
+ Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
275
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
276
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
277
+ else # handle date 'types' for small subset of payroll API's
278
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
279
+ end
266
280
  end
267
281
  end
268
282
  end
@@ -3,7 +3,6 @@
3
3
 
4
4
  #This is the Xero Payroll API for orgs in the NZ region.
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
@@ -191,38 +190,53 @@ module XeroRuby::PayrollNz
191
190
 
192
191
  # Returns the object in the form of hash
193
192
  # @return [Hash] Returns the object in the form of hash
194
- def to_hash
193
+ def to_hash(downcase: false)
195
194
  hash = {}
196
195
  self.class.attribute_map.each_pair do |attr, param|
197
196
  value = self.send(attr)
198
197
  next if value.nil?
199
- hash[param] = _to_hash(value)
198
+ key = downcase ? attr : param
199
+ hash[key] = _to_hash(value, downcase: downcase)
200
200
  end
201
201
  hash
202
202
  end
203
203
 
204
+ # Returns the object in the form of hash with snake_case
205
+ def to_attributes
206
+ to_hash(downcase: true)
207
+ end
208
+
204
209
  # Outputs non-array value in the form of hash
205
210
  # For object, use to_hash. Otherwise, just return the value
206
211
  # @param [Object] value Any valid value
207
212
  # @return [Hash] Returns the value in the form of hash
208
- def _to_hash(value)
213
+ def _to_hash(value, downcase: false)
209
214
  if value.is_a?(Array)
210
- value.compact.map { |v| _to_hash(v) }
215
+ value.map do |v|
216
+ v.to_hash(downcase: downcase)
217
+ end
211
218
  elsif value.is_a?(Hash)
212
219
  {}.tap do |hash|
213
- value.each { |k, v| hash[k] = _to_hash(v) }
220
+ value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
214
221
  end
215
222
  elsif value.respond_to? :to_hash
216
- value.to_hash
223
+ value.to_hash(downcase: downcase)
217
224
  else
218
225
  value
219
226
  end
220
227
  end
221
228
 
222
- # customized data_parser
223
229
  def parse_date(datestring)
224
- seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
225
- return Time.at(seconds_since_epoch).strftime('%Y-%m-%dT%l:%M:%S%z').to_s
230
+ if datestring.include?('Date')
231
+ date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
232
+ original, date, timezone = *date_pattern.match(datestring)
233
+ date = (date.to_i / 1000)
234
+ Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
235
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
236
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
237
+ else # handle date 'types' for small subset of payroll API's
238
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
239
+ end
226
240
  end
227
241
  end
228
242
  end
@@ -3,7 +3,6 @@
3
3
 
4
4
  #This is the Xero Payroll API for orgs in the NZ region.
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
@@ -299,38 +298,53 @@ module XeroRuby::PayrollNz
299
298
 
300
299
  # Returns the object in the form of hash
301
300
  # @return [Hash] Returns the object in the form of hash
302
- def to_hash
301
+ def to_hash(downcase: false)
303
302
  hash = {}
304
303
  self.class.attribute_map.each_pair do |attr, param|
305
304
  value = self.send(attr)
306
305
  next if value.nil?
307
- hash[param] = _to_hash(value)
306
+ key = downcase ? attr : param
307
+ hash[key] = _to_hash(value, downcase: downcase)
308
308
  end
309
309
  hash
310
310
  end
311
311
 
312
+ # Returns the object in the form of hash with snake_case
313
+ def to_attributes
314
+ to_hash(downcase: true)
315
+ end
316
+
312
317
  # Outputs non-array value in the form of hash
313
318
  # For object, use to_hash. Otherwise, just return the value
314
319
  # @param [Object] value Any valid value
315
320
  # @return [Hash] Returns the value in the form of hash
316
- def _to_hash(value)
321
+ def _to_hash(value, downcase: false)
317
322
  if value.is_a?(Array)
318
- value.compact.map { |v| _to_hash(v) }
323
+ value.map do |v|
324
+ v.to_hash(downcase: downcase)
325
+ end
319
326
  elsif value.is_a?(Hash)
320
327
  {}.tap do |hash|
321
- value.each { |k, v| hash[k] = _to_hash(v) }
328
+ value.map { |k, v| hash[k] = _to_hash(v, downcase: downcase) }
322
329
  end
323
330
  elsif value.respond_to? :to_hash
324
- value.to_hash
331
+ value.to_hash(downcase: downcase)
325
332
  else
326
333
  value
327
334
  end
328
335
  end
329
336
 
330
- # customized data_parser
331
337
  def parse_date(datestring)
332
- seconds_since_epoch = datestring.scan(/[0-9]+/)[0].to_i / 1000.0
333
- return Time.at(seconds_since_epoch).strftime('%Y-%m-%dT%l:%M:%S%z').to_s
338
+ if datestring.include?('Date')
339
+ date_pattern = /\/Date\((-?\d+)(\+\d+)?\)\//
340
+ original, date, timezone = *date_pattern.match(datestring)
341
+ date = (date.to_i / 1000)
342
+ Time.at(date).utc.strftime('%Y-%m-%dT%H:%M:%S%z').to_s
343
+ elsif /(\d\d\d\d)-(\d\d)/.match(datestring) # handles dates w/out Days: YYYY-MM*-DD
344
+ Time.parse(datestring + '-01').strftime('%Y-%m-%dT%H:%M:%S').to_s
345
+ else # handle date 'types' for small subset of payroll API's
346
+ Time.parse(datestring).strftime('%Y-%m-%dT%H:%M:%S').to_s
347
+ end
334
348
  end
335
349
  end
336
350
  end