xero-ruby 2.3.1 → 2.6.0

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