xero-ruby 2.6.2 → 2.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (253) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +18 -8
  3. data/lib/xero-ruby.rb +4 -2
  4. data/lib/xero-ruby/api/accounting_api.rb +446 -446
  5. data/lib/xero-ruby/api/asset_api.rb +3 -7
  6. data/lib/xero-ruby/api/files_api.rb +49 -55
  7. data/lib/xero-ruby/api/payroll_au_api.rb +63 -63
  8. data/lib/xero-ruby/api/payroll_nz_api.rb +171 -171
  9. data/lib/xero-ruby/api/payroll_uk_api.rb +173 -173
  10. data/lib/xero-ruby/api/project_api.rb +45 -45
  11. data/lib/xero-ruby/api_client.rb +22 -87
  12. data/lib/xero-ruby/api_error.rb +1 -1
  13. data/lib/xero-ruby/configuration.rb +3 -3
  14. data/lib/xero-ruby/models/accounting/account.rb +1 -1
  15. data/lib/xero-ruby/models/accounting/account_type.rb +1 -1
  16. data/lib/xero-ruby/models/accounting/accounts.rb +1 -1
  17. data/lib/xero-ruby/models/accounting/accounts_payable.rb +1 -1
  18. data/lib/xero-ruby/models/accounting/accounts_receivable.rb +1 -1
  19. data/lib/xero-ruby/models/accounting/action.rb +1 -1
  20. data/lib/xero-ruby/models/accounting/actions.rb +1 -1
  21. data/lib/xero-ruby/models/accounting/address.rb +1 -1
  22. data/lib/xero-ruby/models/accounting/address_for_organisation.rb +1 -1
  23. data/lib/xero-ruby/models/accounting/allocation.rb +1 -1
  24. data/lib/xero-ruby/models/accounting/allocations.rb +1 -1
  25. data/lib/xero-ruby/models/accounting/attachment.rb +1 -1
  26. data/lib/xero-ruby/models/accounting/attachments.rb +1 -1
  27. data/lib/xero-ruby/models/accounting/balance_details.rb +1 -1
  28. data/lib/xero-ruby/models/accounting/balances.rb +1 -1
  29. data/lib/xero-ruby/models/accounting/bank_transaction.rb +1 -1
  30. data/lib/xero-ruby/models/accounting/bank_transactions.rb +1 -1
  31. data/lib/xero-ruby/models/accounting/bank_transfer.rb +1 -1
  32. data/lib/xero-ruby/models/accounting/bank_transfers.rb +1 -1
  33. data/lib/xero-ruby/models/accounting/batch_payment.rb +1 -1
  34. data/lib/xero-ruby/models/accounting/batch_payment_details.rb +1 -1
  35. data/lib/xero-ruby/models/accounting/batch_payments.rb +1 -1
  36. data/lib/xero-ruby/models/accounting/bill.rb +1 -1
  37. data/lib/xero-ruby/models/accounting/branding_theme.rb +1 -1
  38. data/lib/xero-ruby/models/accounting/branding_themes.rb +1 -1
  39. data/lib/xero-ruby/models/accounting/cis_org_setting.rb +1 -1
  40. data/lib/xero-ruby/models/{files/file_response204.rb → accounting/cis_org_settings.rb} +16 -14
  41. data/lib/xero-ruby/models/accounting/cis_setting.rb +1 -1
  42. data/lib/xero-ruby/models/accounting/cis_settings.rb +1 -1
  43. data/lib/xero-ruby/models/accounting/contact.rb +1 -1
  44. data/lib/xero-ruby/models/accounting/contact_group.rb +1 -1
  45. data/lib/xero-ruby/models/accounting/contact_groups.rb +1 -1
  46. data/lib/xero-ruby/models/accounting/contact_person.rb +1 -1
  47. data/lib/xero-ruby/models/accounting/contacts.rb +1 -1
  48. data/lib/xero-ruby/models/accounting/conversion_balances.rb +1 -1
  49. data/lib/xero-ruby/models/accounting/conversion_date.rb +1 -1
  50. data/lib/xero-ruby/models/accounting/country_code.rb +1 -1
  51. data/lib/xero-ruby/models/accounting/credit_note.rb +18 -6
  52. data/lib/xero-ruby/models/accounting/credit_notes.rb +1 -1
  53. data/lib/xero-ruby/models/accounting/currencies.rb +1 -1
  54. data/lib/xero-ruby/models/accounting/currency.rb +1 -1
  55. data/lib/xero-ruby/models/accounting/currency_code.rb +1 -1
  56. data/lib/xero-ruby/models/accounting/element.rb +1 -1
  57. data/lib/xero-ruby/models/accounting/employee.rb +1 -1
  58. data/lib/xero-ruby/models/accounting/employees.rb +1 -1
  59. data/lib/xero-ruby/models/accounting/error.rb +1 -1
  60. data/lib/xero-ruby/models/accounting/expense_claim.rb +1 -1
  61. data/lib/xero-ruby/models/accounting/expense_claims.rb +1 -1
  62. data/lib/xero-ruby/models/accounting/external_link.rb +1 -1
  63. data/lib/xero-ruby/models/accounting/history_record.rb +1 -1
  64. data/lib/xero-ruby/models/accounting/history_records.rb +1 -1
  65. data/lib/xero-ruby/models/accounting/import_summary.rb +1 -1
  66. data/lib/xero-ruby/models/accounting/import_summary_accounts.rb +1 -1
  67. data/lib/xero-ruby/models/accounting/import_summary_object.rb +1 -1
  68. data/lib/xero-ruby/models/accounting/import_summary_organisation.rb +1 -1
  69. data/lib/xero-ruby/models/accounting/invoice.rb +1 -1
  70. data/lib/xero-ruby/models/accounting/invoice_reminder.rb +1 -1
  71. data/lib/xero-ruby/models/accounting/invoice_reminders.rb +1 -1
  72. data/lib/xero-ruby/models/accounting/invoices.rb +1 -1
  73. data/lib/xero-ruby/models/accounting/item.rb +1 -1
  74. data/lib/xero-ruby/models/accounting/items.rb +1 -1
  75. data/lib/xero-ruby/models/accounting/journal.rb +1 -1
  76. data/lib/xero-ruby/models/accounting/journal_line.rb +1 -1
  77. data/lib/xero-ruby/models/accounting/journals.rb +1 -1
  78. data/lib/xero-ruby/models/accounting/line_amount_types.rb +1 -1
  79. data/lib/xero-ruby/models/accounting/line_item.rb +1 -1
  80. data/lib/xero-ruby/models/accounting/line_item_tracking.rb +1 -1
  81. data/lib/xero-ruby/models/accounting/linked_transaction.rb +1 -1
  82. data/lib/xero-ruby/models/accounting/linked_transactions.rb +1 -1
  83. data/lib/xero-ruby/models/accounting/manual_journal.rb +1 -1
  84. data/lib/xero-ruby/models/accounting/manual_journal_line.rb +1 -1
  85. data/lib/xero-ruby/models/accounting/manual_journals.rb +1 -1
  86. data/lib/xero-ruby/models/accounting/online_invoice.rb +1 -1
  87. data/lib/xero-ruby/models/accounting/online_invoices.rb +1 -1
  88. data/lib/xero-ruby/models/accounting/organisation.rb +1 -1
  89. data/lib/xero-ruby/models/accounting/organisations.rb +1 -1
  90. data/lib/xero-ruby/models/accounting/overpayment.rb +1 -1
  91. data/lib/xero-ruby/models/accounting/overpayments.rb +1 -1
  92. data/lib/xero-ruby/models/accounting/payment.rb +12 -2
  93. data/lib/xero-ruby/models/accounting/payment_delete.rb +1 -1
  94. data/lib/xero-ruby/models/accounting/payment_service.rb +1 -1
  95. data/lib/xero-ruby/models/accounting/payment_services.rb +1 -1
  96. data/lib/xero-ruby/models/accounting/payment_term.rb +1 -1
  97. data/lib/xero-ruby/models/accounting/payment_term_type.rb +1 -1
  98. data/lib/xero-ruby/models/accounting/payments.rb +1 -1
  99. data/lib/xero-ruby/models/accounting/phone.rb +1 -1
  100. data/lib/xero-ruby/models/accounting/prepayment.rb +1 -1
  101. data/lib/xero-ruby/models/accounting/prepayments.rb +1 -1
  102. data/lib/xero-ruby/models/accounting/purchase.rb +1 -1
  103. data/lib/xero-ruby/models/accounting/purchase_order.rb +1 -1
  104. data/lib/xero-ruby/models/accounting/purchase_orders.rb +1 -1
  105. data/lib/xero-ruby/models/accounting/quote.rb +1 -1
  106. data/lib/xero-ruby/models/accounting/quote_line_amount_types.rb +1 -1
  107. data/lib/xero-ruby/models/accounting/quote_status_codes.rb +1 -1
  108. data/lib/xero-ruby/models/accounting/quotes.rb +1 -1
  109. data/lib/xero-ruby/models/accounting/receipt.rb +1 -1
  110. data/lib/xero-ruby/models/accounting/receipts.rb +1 -1
  111. data/lib/xero-ruby/models/accounting/repeating_invoice.rb +1 -1
  112. data/lib/xero-ruby/models/accounting/repeating_invoices.rb +1 -1
  113. data/lib/xero-ruby/models/accounting/report.rb +1 -1
  114. data/lib/xero-ruby/models/accounting/report_attribute.rb +1 -1
  115. data/lib/xero-ruby/models/accounting/report_cell.rb +1 -1
  116. data/lib/xero-ruby/models/accounting/report_fields.rb +1 -1
  117. data/lib/xero-ruby/models/accounting/report_row.rb +1 -1
  118. data/lib/xero-ruby/models/accounting/report_rows.rb +1 -1
  119. data/lib/xero-ruby/models/accounting/report_with_row.rb +1 -1
  120. data/lib/xero-ruby/models/accounting/report_with_rows.rb +1 -1
  121. data/lib/xero-ruby/models/accounting/reports.rb +1 -1
  122. data/lib/xero-ruby/models/accounting/request_empty.rb +1 -1
  123. data/lib/xero-ruby/models/accounting/row_type.rb +1 -1
  124. data/lib/xero-ruby/models/accounting/sales_tracking_category.rb +1 -1
  125. data/lib/xero-ruby/models/accounting/schedule.rb +1 -1
  126. data/lib/xero-ruby/models/accounting/setup.rb +1 -1
  127. data/lib/xero-ruby/models/accounting/tax_component.rb +1 -1
  128. data/lib/xero-ruby/models/accounting/tax_rate.rb +1 -1
  129. data/lib/xero-ruby/models/accounting/tax_rates.rb +1 -1
  130. data/lib/xero-ruby/models/accounting/tax_type.rb +1 -1
  131. data/lib/xero-ruby/models/accounting/ten_ninety_nine_contact.rb +1 -1
  132. data/lib/xero-ruby/models/accounting/time_zone.rb +1 -1
  133. data/lib/xero-ruby/models/accounting/tracking_categories.rb +1 -1
  134. data/lib/xero-ruby/models/accounting/tracking_category.rb +1 -1
  135. data/lib/xero-ruby/models/accounting/tracking_option.rb +1 -1
  136. data/lib/xero-ruby/models/accounting/tracking_options.rb +1 -1
  137. data/lib/xero-ruby/models/accounting/user.rb +1 -1
  138. data/lib/xero-ruby/models/accounting/users.rb +1 -1
  139. data/lib/xero-ruby/models/accounting/validation_error.rb +1 -1
  140. data/lib/xero-ruby/models/assets/asset.rb +1 -1
  141. data/lib/xero-ruby/models/assets/asset_status.rb +1 -1
  142. data/lib/xero-ruby/models/assets/asset_status_query_param.rb +1 -1
  143. data/lib/xero-ruby/models/assets/asset_type.rb +1 -1
  144. data/lib/xero-ruby/models/assets/assets.rb +1 -1
  145. data/lib/xero-ruby/models/assets/book_depreciation_detail.rb +1 -1
  146. data/lib/xero-ruby/models/assets/book_depreciation_setting.rb +1 -1
  147. data/lib/xero-ruby/models/assets/error.rb +1 -1
  148. data/lib/xero-ruby/models/assets/field_validation_errors_element.rb +2 -2
  149. data/lib/xero-ruby/models/assets/pagination.rb +1 -1
  150. data/lib/xero-ruby/models/assets/resource_validation_errors_element.rb +2 -2
  151. data/lib/xero-ruby/models/assets/setting.rb +1 -1
  152. data/lib/xero-ruby/models/files/association.rb +1 -1
  153. data/lib/xero-ruby/models/files/file_object.rb +1 -1
  154. data/lib/xero-ruby/models/files/files.rb +1 -1
  155. data/lib/xero-ruby/models/files/folder.rb +1 -1
  156. data/lib/xero-ruby/models/files/folders.rb +1 -1
  157. data/lib/xero-ruby/models/files/inline_object.rb +1 -1
  158. data/lib/xero-ruby/models/files/object_group.rb +1 -1
  159. data/lib/xero-ruby/models/files/object_type.rb +1 -1
  160. data/lib/xero-ruby/models/files/user.rb +1 -1
  161. data/lib/xero-ruby/models/payroll_au/account.rb +1 -1
  162. data/lib/xero-ruby/models/payroll_au/account_type.rb +1 -1
  163. data/lib/xero-ruby/models/payroll_au/allowance_type.rb +1 -1
  164. data/lib/xero-ruby/models/payroll_au/api_exception.rb +1 -1
  165. data/lib/xero-ruby/models/payroll_au/bank_account.rb +1 -1
  166. data/lib/xero-ruby/models/payroll_au/calendar_type.rb +1 -1
  167. data/lib/xero-ruby/models/payroll_au/deduction_line.rb +1 -1
  168. data/lib/xero-ruby/models/payroll_au/deduction_type.rb +1 -1
  169. data/lib/xero-ruby/models/payroll_au/deduction_type_calculation_type.rb +1 -1
  170. data/lib/xero-ruby/models/payroll_au/earnings_line.rb +1 -1
  171. data/lib/xero-ruby/models/payroll_au/earnings_rate.rb +1 -1
  172. data/lib/xero-ruby/models/payroll_au/earnings_rate_calculation_type.rb +1 -1
  173. data/lib/xero-ruby/models/payroll_au/earnings_type.rb +1 -1
  174. data/lib/xero-ruby/models/payroll_au/employee.rb +1 -1
  175. data/lib/xero-ruby/models/payroll_au/employee_status.rb +1 -1
  176. data/lib/xero-ruby/models/payroll_au/employees.rb +1 -1
  177. data/lib/xero-ruby/models/payroll_au/employment_basis.rb +1 -1
  178. data/lib/xero-ruby/models/payroll_au/employment_termination_payment_type.rb +1 -1
  179. data/lib/xero-ruby/models/payroll_au/entitlement_final_pay_payout_type.rb +1 -1
  180. data/lib/xero-ruby/models/payroll_au/home_address.rb +1 -1
  181. data/lib/xero-ruby/models/payroll_au/leave_accrual_line.rb +1 -1
  182. data/lib/xero-ruby/models/payroll_au/leave_application.rb +1 -1
  183. data/lib/xero-ruby/models/payroll_au/leave_applications.rb +1 -1
  184. data/lib/xero-ruby/models/payroll_au/leave_balance.rb +1 -1
  185. data/lib/xero-ruby/models/payroll_au/leave_earnings_line.rb +1 -1
  186. data/lib/xero-ruby/models/payroll_au/leave_line.rb +1 -1
  187. data/lib/xero-ruby/models/payroll_au/leave_line_calculation_type.rb +1 -1
  188. data/lib/xero-ruby/models/payroll_au/leave_lines.rb +1 -1
  189. data/lib/xero-ruby/models/payroll_au/leave_period.rb +1 -1
  190. data/lib/xero-ruby/models/payroll_au/leave_period_status.rb +1 -1
  191. data/lib/xero-ruby/models/payroll_au/leave_type.rb +1 -1
  192. data/lib/xero-ruby/models/payroll_au/leave_type_contribution_type.rb +1 -1
  193. data/lib/xero-ruby/models/payroll_au/manual_tax_type.rb +1 -1
  194. data/lib/xero-ruby/models/payroll_au/opening_balances.rb +1 -1
  195. data/lib/xero-ruby/models/payroll_au/pay_item.rb +1 -1
  196. data/lib/xero-ruby/models/payroll_au/pay_items.rb +1 -1
  197. data/lib/xero-ruby/models/payroll_au/pay_run.rb +1 -1
  198. data/lib/xero-ruby/models/payroll_au/pay_run_status.rb +1 -1
  199. data/lib/xero-ruby/models/payroll_au/pay_runs.rb +1 -1
  200. data/lib/xero-ruby/models/payroll_au/pay_template.rb +1 -1
  201. data/lib/xero-ruby/models/payroll_au/payment_frequency_type.rb +1 -1
  202. data/lib/xero-ruby/models/payroll_au/payroll_calendar.rb +1 -1
  203. data/lib/xero-ruby/models/payroll_au/payroll_calendars.rb +1 -1
  204. data/lib/xero-ruby/models/payroll_au/payslip.rb +1 -1
  205. data/lib/xero-ruby/models/payroll_au/payslip_lines.rb +1 -1
  206. data/lib/xero-ruby/models/payroll_au/payslip_object.rb +1 -1
  207. data/lib/xero-ruby/models/payroll_au/payslip_summary.rb +1 -1
  208. data/lib/xero-ruby/models/payroll_au/payslips.rb +1 -1
  209. data/lib/xero-ruby/models/payroll_au/rate_type.rb +1 -1
  210. data/lib/xero-ruby/models/payroll_au/reimbursement_line.rb +1 -1
  211. data/lib/xero-ruby/models/payroll_au/reimbursement_lines.rb +1 -1
  212. data/lib/xero-ruby/models/payroll_au/reimbursement_type.rb +1 -1
  213. data/lib/xero-ruby/models/payroll_au/residency_status.rb +1 -1
  214. data/lib/xero-ruby/models/payroll_au/settings.rb +1 -1
  215. data/lib/xero-ruby/models/payroll_au/settings_object.rb +1 -1
  216. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories.rb +1 -1
  217. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_employee_groups.rb +1 -1
  218. data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_timesheet_categories.rb +1 -1
  219. data/lib/xero-ruby/models/payroll_au/state.rb +1 -1
  220. data/lib/xero-ruby/models/payroll_au/super_fund.rb +1 -1
  221. data/lib/xero-ruby/models/payroll_au/super_fund_product.rb +1 -1
  222. data/lib/xero-ruby/models/payroll_au/super_fund_products.rb +1 -1
  223. data/lib/xero-ruby/models/payroll_au/super_fund_type.rb +1 -1
  224. data/lib/xero-ruby/models/payroll_au/super_funds.rb +1 -1
  225. data/lib/xero-ruby/models/payroll_au/super_line.rb +2 -2
  226. data/lib/xero-ruby/models/payroll_au/super_membership.rb +2 -2
  227. data/lib/xero-ruby/models/payroll_au/superannuation_calculation_type.rb +1 -1
  228. data/lib/xero-ruby/models/payroll_au/superannuation_contribution_type.rb +1 -1
  229. data/lib/xero-ruby/models/payroll_au/superannuation_line.rb +1 -1
  230. data/lib/xero-ruby/models/payroll_au/tax_declaration.rb +1 -1
  231. data/lib/xero-ruby/models/payroll_au/tax_line.rb +1 -1
  232. data/lib/xero-ruby/models/payroll_au/tfn_exemption_type.rb +1 -1
  233. data/lib/xero-ruby/models/payroll_au/timesheet.rb +1 -1
  234. data/lib/xero-ruby/models/payroll_au/timesheet_line.rb +1 -1
  235. data/lib/xero-ruby/models/payroll_au/timesheet_object.rb +1 -1
  236. data/lib/xero-ruby/models/payroll_au/timesheet_status.rb +1 -1
  237. data/lib/xero-ruby/models/payroll_au/timesheets.rb +1 -1
  238. data/lib/xero-ruby/models/payroll_au/validation_error.rb +1 -1
  239. data/lib/xero-ruby/models/payroll_nz/earnings_line.rb +1 -1
  240. data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave.rb +1 -1
  241. data/lib/xero-ruby/models/payroll_nz/leave_earnings_line.rb +1 -1
  242. data/lib/xero-ruby/models/payroll_nz/superannuation_line.rb +1 -1
  243. data/lib/xero-ruby/models/payroll_nz/timesheet.rb +1 -1
  244. data/lib/xero-ruby/models/payroll_nz/timesheet_earnings_line.rb +1 -1
  245. data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave.rb +1 -1
  246. data/lib/xero-ruby/models/payroll_uk/timesheet.rb +1 -1
  247. data/lib/xero-ruby/string_serialization.rb +52 -0
  248. data/lib/xero-ruby/version.rb +3 -3
  249. data/lib/xero-ruby/where.rb +65 -0
  250. data/spec/configuration_spec.rb +1 -1
  251. data/spec/where_spec.rb +82 -0
  252. metadata +8 -6
  253. data/spec/files/models/file_response204_spec.rb +0 -41
@@ -16,7 +16,7 @@ module XeroRuby
16
16
  def initialize(api_client = ApiClient.new)
17
17
  @api_client = api_client
18
18
  end
19
- # create one or more new projects
19
+ # Create one or more new projects
20
20
  # @param xero_tenant_id [String] Xero identifier for Tenant
21
21
  # @param project_create_or_update [ProjectCreateOrUpdate] Create a new project with ProjectCreateOrUpdate object
22
22
  # @param [Hash] opts the optional parameters
@@ -26,7 +26,7 @@ module XeroRuby
26
26
  data
27
27
  end
28
28
 
29
- # create one or more new projects
29
+ # Create one or more new projects
30
30
  # @param xero_tenant_id [String] Xero identifier for Tenant
31
31
  # @param project_create_or_update [ProjectCreateOrUpdate] Create a new project with ProjectCreateOrUpdate object
32
32
  # @param [Hash] opts the optional parameters
@@ -44,7 +44,7 @@ module XeroRuby
44
44
  fail ArgumentError, "Missing the required parameter 'project_create_or_update' when calling ProjectApi.create_project"
45
45
  end
46
46
  # resource path
47
- local_var_path = '/projects'
47
+ local_var_path = '/Projects'
48
48
 
49
49
  # camelize keys of incoming `where` opts
50
50
  opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
@@ -92,7 +92,7 @@ module XeroRuby
92
92
  return data, status_code, headers
93
93
  end
94
94
 
95
- # Allows you to create a task
95
+ # Creates a time entry for a specific project
96
96
  # Allows you to create a specific task
97
97
  # @param xero_tenant_id [String] Xero identifier for Tenant
98
98
  # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
@@ -104,7 +104,7 @@ module XeroRuby
104
104
  data
105
105
  end
106
106
 
107
- # Allows you to create a task
107
+ # Creates a time entry for a specific project
108
108
  # Allows you to create a specific task
109
109
  # @param xero_tenant_id [String] Xero identifier for Tenant
110
110
  # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
@@ -128,7 +128,7 @@ module XeroRuby
128
128
  fail ArgumentError, "Missing the required parameter 'time_entry_create_or_update' when calling ProjectApi.create_time_entry"
129
129
  end
130
130
  # resource path
131
- local_var_path = '/projects/{projectId}/time'.sub('{' + 'projectId' + '}', project_id.to_s)
131
+ local_var_path = '/Projects/{projectId}/Time'.sub('{' + 'projectId' + '}', project_id.to_s)
132
132
 
133
133
  # camelize keys of incoming `where` opts
134
134
  opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
@@ -176,7 +176,7 @@ module XeroRuby
176
176
  return data, status_code, headers
177
177
  end
178
178
 
179
- # Allows you to delete a time entry
179
+ # Deletes a time entry for a specific project
180
180
  # Allows you to delete a specific time entry
181
181
  # @param xero_tenant_id [String] Xero identifier for Tenant
182
182
  # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
@@ -188,7 +188,7 @@ module XeroRuby
188
188
  nil
189
189
  end
190
190
 
191
- # Allows you to delete a time entry
191
+ # Deletes a time entry for a specific project
192
192
  # Allows you to delete a specific time entry
193
193
  # @param xero_tenant_id [String] Xero identifier for Tenant
194
194
  # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
@@ -212,7 +212,7 @@ module XeroRuby
212
212
  fail ArgumentError, "Missing the required parameter 'time_entry_id' when calling ProjectApi.delete_time_entry"
213
213
  end
214
214
  # resource path
215
- local_var_path = '/projects/{projectId}/time/{timeEntryId}'.sub('{' + 'projectId' + '}', project_id.to_s).sub('{' + 'timeEntryId' + '}', time_entry_id.to_s)
215
+ local_var_path = '/Projects/{projectId}/Time/{timeEntryId}'.sub('{' + 'projectId' + '}', project_id.to_s).sub('{' + 'timeEntryId' + '}', time_entry_id.to_s)
216
216
 
217
217
  # camelize keys of incoming `where` opts
218
218
  opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
@@ -256,8 +256,8 @@ module XeroRuby
256
256
  return data, status_code, headers
257
257
  end
258
258
 
259
- # Allows you to retrieve a single project
260
- # Allows you to retrieve a specific project
259
+ # Retrieves a single project
260
+ # Allows you to retrieve a specific project using the projectId
261
261
  # @param xero_tenant_id [String] Xero identifier for Tenant
262
262
  # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
263
263
  # @param [Hash] opts the optional parameters
@@ -267,8 +267,8 @@ module XeroRuby
267
267
  data
268
268
  end
269
269
 
270
- # Allows you to retrieve a single project
271
- # Allows you to retrieve a specific project
270
+ # Retrieves a single project
271
+ # Allows you to retrieve a specific project using the projectId
272
272
  # @param xero_tenant_id [String] Xero identifier for Tenant
273
273
  # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
274
274
  # @param [Hash] opts the optional parameters
@@ -286,7 +286,7 @@ module XeroRuby
286
286
  fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectApi.get_project"
287
287
  end
288
288
  # resource path
289
- local_var_path = '/projects/{projectId}'.sub('{' + 'projectId' + '}', project_id.to_s)
289
+ local_var_path = '/Projects/{projectId}'.sub('{' + 'projectId' + '}', project_id.to_s)
290
290
 
291
291
  # camelize keys of incoming `where` opts
292
292
  opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
@@ -332,7 +332,7 @@ module XeroRuby
332
332
  return data, status_code, headers
333
333
  end
334
334
 
335
- # list all project users
335
+ # Retrieves a list of all project users
336
336
  # Allows you to retrieve the users on a projects.
337
337
  # @param xero_tenant_id [String] Xero identifier for Tenant
338
338
  # @param [Hash] opts the optional parameters
@@ -344,7 +344,7 @@ module XeroRuby
344
344
  data
345
345
  end
346
346
 
347
- # list all project users
347
+ # Retrieves a list of all project users
348
348
  # Allows you to retrieve the users on a projects.
349
349
  # @param xero_tenant_id [String] Xero identifier for Tenant
350
350
  # @param [Hash] opts the optional parameters
@@ -368,7 +368,7 @@ module XeroRuby
368
368
  end
369
369
 
370
370
  # resource path
371
- local_var_path = '/projectsusers'
371
+ local_var_path = '/ProjectsUsers'
372
372
 
373
373
  # camelize keys of incoming `where` opts
374
374
  opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
@@ -416,7 +416,7 @@ module XeroRuby
416
416
  return data, status_code, headers
417
417
  end
418
418
 
419
- # list all projects
419
+ # Retrieves all projects
420
420
  # Allows you to retrieve, create and update projects.
421
421
  # @param xero_tenant_id [String] Xero identifier for Tenant
422
422
  # @param [Hash] opts the optional parameters
@@ -431,7 +431,7 @@ module XeroRuby
431
431
  data
432
432
  end
433
433
 
434
- # list all projects
434
+ # Retrieves all projects
435
435
  # Allows you to retrieve, create and update projects.
436
436
  # @param xero_tenant_id [String] Xero identifier for Tenant
437
437
  # @param [Hash] opts the optional parameters
@@ -458,7 +458,7 @@ module XeroRuby
458
458
  end
459
459
 
460
460
  # resource path
461
- local_var_path = '/projects'
461
+ local_var_path = '/Projects'
462
462
 
463
463
  # camelize keys of incoming `where` opts
464
464
  opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
@@ -509,11 +509,11 @@ module XeroRuby
509
509
  return data, status_code, headers
510
510
  end
511
511
 
512
- # Allows you to retrieve a single project
512
+ # Retrieves a single project task
513
513
  # Allows you to retrieve a specific project
514
514
  # @param xero_tenant_id [String] Xero identifier for Tenant
515
515
  # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
516
- # @param task_id [String] You can specify an individual task by appending the taskId to the endpoint, i.e. GET https://.../tasks/{taskId}
516
+ # @param task_id [String] You can specify an individual task by appending the taskId to the endpoint, i.e. GET https://.../tasks/{taskID}
517
517
  # @param [Hash] opts the optional parameters
518
518
  # @return [Task]
519
519
  def get_task(xero_tenant_id, project_id, task_id, opts = {})
@@ -521,11 +521,11 @@ module XeroRuby
521
521
  data
522
522
  end
523
523
 
524
- # Allows you to retrieve a single project
524
+ # Retrieves a single project task
525
525
  # Allows you to retrieve a specific project
526
526
  # @param xero_tenant_id [String] Xero identifier for Tenant
527
527
  # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
528
- # @param task_id [String] You can specify an individual task by appending the taskId to the endpoint, i.e. GET https://.../tasks/{taskId}
528
+ # @param task_id [String] You can specify an individual task by appending the taskId to the endpoint, i.e. GET https://.../tasks/{taskID}
529
529
  # @param [Hash] opts the optional parameters
530
530
  # @return [Array<(Task, Integer, Hash)>] Task data, response status code and response headers
531
531
  def get_task_with_http_info(xero_tenant_id, project_id, task_id, opts = {})
@@ -545,7 +545,7 @@ module XeroRuby
545
545
  fail ArgumentError, "Missing the required parameter 'task_id' when calling ProjectApi.get_task"
546
546
  end
547
547
  # resource path
548
- local_var_path = '/projects/{projectId}/tasks/{taskId}'.sub('{' + 'projectId' + '}', project_id.to_s).sub('{' + 'taskId' + '}', task_id.to_s)
548
+ local_var_path = '/Projects/{projectId}/Tasks/{taskId}'.sub('{' + 'projectId' + '}', project_id.to_s).sub('{' + 'taskId' + '}', task_id.to_s)
549
549
 
550
550
  # camelize keys of incoming `where` opts
551
551
  opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
@@ -591,14 +591,14 @@ module XeroRuby
591
591
  return data, status_code, headers
592
592
  end
593
593
 
594
- # Allows you to retrieve a single project
594
+ # Retrieves all project tasks
595
595
  # Allows you to retrieve a specific project
596
596
  # @param xero_tenant_id [String] Xero identifier for Tenant
597
597
  # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
598
598
  # @param [Hash] opts the optional parameters
599
599
  # @option opts [Integer] :page Set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0.
600
600
  # @option opts [Integer] :page_size Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500.
601
- # @option opts [String] :task_ids taskIdsSearch for all tasks that match a comma separated list of taskIds, i.e. GET https://.../tasks?taskIds&#x3D;{taskId},{taskId}
601
+ # @option opts [String] :task_ids taskIdsSearch for all tasks that match a comma separated list of taskIds, i.e. GET https://.../tasks?taskIds&#x3D;{taskID},{taskID}
602
602
  # @option opts [ChargeType] :charge_type
603
603
  # @return [Tasks]
604
604
  def get_tasks(xero_tenant_id, project_id, opts = {})
@@ -606,14 +606,14 @@ module XeroRuby
606
606
  data
607
607
  end
608
608
 
609
- # Allows you to retrieve a single project
609
+ # Retrieves all project tasks
610
610
  # Allows you to retrieve a specific project
611
611
  # @param xero_tenant_id [String] Xero identifier for Tenant
612
612
  # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
613
613
  # @param [Hash] opts the optional parameters
614
614
  # @option opts [Integer] :page Set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0.
615
615
  # @option opts [Integer] :page_size Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500.
616
- # @option opts [String] :task_ids taskIdsSearch for all tasks that match a comma separated list of taskIds, i.e. GET https://.../tasks?taskIds&#x3D;{taskId},{taskId}
616
+ # @option opts [String] :task_ids taskIdsSearch for all tasks that match a comma separated list of taskIds, i.e. GET https://.../tasks?taskIds&#x3D;{taskID},{taskID}
617
617
  # @option opts [ChargeType] :charge_type
618
618
  # @return [Array<(Tasks, Integer, Hash)>] Tasks data, response status code and response headers
619
619
  def get_tasks_with_http_info(xero_tenant_id, project_id, opts = {})
@@ -629,7 +629,7 @@ module XeroRuby
629
629
  fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectApi.get_tasks"
630
630
  end
631
631
  # resource path
632
- local_var_path = '/projects/{projectId}/tasks'.sub('{' + 'projectId' + '}', project_id.to_s)
632
+ local_var_path = '/Projects/{projectId}/Tasks'.sub('{' + 'projectId' + '}', project_id.to_s)
633
633
 
634
634
  # camelize keys of incoming `where` opts
635
635
  opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
@@ -679,7 +679,7 @@ module XeroRuby
679
679
  return data, status_code, headers
680
680
  end
681
681
 
682
- # Allows you to retrieve the time entries associated with a specific project
682
+ # Retrieves all time entries associated with a specific project
683
683
  # Allows you to retrieve the time entries associated with a specific project
684
684
  # @param xero_tenant_id [String] Xero identifier for Tenant
685
685
  # @param project_id [String] Identifier of the project, that the task (which the time entry is logged against) belongs to.
@@ -690,7 +690,7 @@ module XeroRuby
690
690
  # @option opts [String] :contact_id Finds all time entries for this contact identifier.
691
691
  # @option opts [Integer] :page Set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0.
692
692
  # @option opts [Integer] :page_size Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500.
693
- # @option opts [Array<String>] :states Comma-separated list of states to find. Will find all time entries that are in the status of whatever’s specified.
693
+ # @option opts [Array<String>] :states Comma-separated list of states to find. Will find all time entries that are in the status of whatever is specified.
694
694
  # @option opts [Boolean] :is_chargeable Finds all time entries which relate to tasks with the charge type &#x60;TIME&#x60; or &#x60;FIXED&#x60;.
695
695
  # @option opts [DateTime] :date_after_utc ISO 8601 UTC date. Finds all time entries on or after this date filtered on the &#x60;dateUtc&#x60; field.
696
696
  # @option opts [DateTime] :date_before_utc ISO 8601 UTC date. Finds all time entries on or before this date filtered on the &#x60;dateUtc&#x60; field.
@@ -700,7 +700,7 @@ module XeroRuby
700
700
  data
701
701
  end
702
702
 
703
- # Allows you to retrieve the time entries associated with a specific project
703
+ # Retrieves all time entries associated with a specific project
704
704
  # Allows you to retrieve the time entries associated with a specific project
705
705
  # @param xero_tenant_id [String] Xero identifier for Tenant
706
706
  # @param project_id [String] Identifier of the project, that the task (which the time entry is logged against) belongs to.
@@ -711,7 +711,7 @@ module XeroRuby
711
711
  # @option opts [String] :contact_id Finds all time entries for this contact identifier.
712
712
  # @option opts [Integer] :page Set to 1 by default. The requested number of the page in paged response - Must be a number greater than 0.
713
713
  # @option opts [Integer] :page_size Optional, it is set to 50 by default. The number of items to return per page in a paged response - Must be a number between 1 and 500.
714
- # @option opts [Array<String>] :states Comma-separated list of states to find. Will find all time entries that are in the status of whatever’s specified.
714
+ # @option opts [Array<String>] :states Comma-separated list of states to find. Will find all time entries that are in the status of whatever is specified.
715
715
  # @option opts [Boolean] :is_chargeable Finds all time entries which relate to tasks with the charge type &#x60;TIME&#x60; or &#x60;FIXED&#x60;.
716
716
  # @option opts [DateTime] :date_after_utc ISO 8601 UTC date. Finds all time entries on or after this date filtered on the &#x60;dateUtc&#x60; field.
717
717
  # @option opts [DateTime] :date_before_utc ISO 8601 UTC date. Finds all time entries on or before this date filtered on the &#x60;dateUtc&#x60; field.
@@ -729,7 +729,7 @@ module XeroRuby
729
729
  fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectApi.get_time_entries"
730
730
  end
731
731
  # resource path
732
- local_var_path = '/projects/{projectId}/time'.sub('{' + 'projectId' + '}', project_id.to_s)
732
+ local_var_path = '/Projects/{projectId}/Time'.sub('{' + 'projectId' + '}', project_id.to_s)
733
733
 
734
734
  # camelize keys of incoming `where` opts
735
735
  opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
@@ -785,8 +785,8 @@ module XeroRuby
785
785
  return data, status_code, headers
786
786
  end
787
787
 
788
+ # Retrieves a single time entry for a specific project
788
789
  # Allows you to get a single time entry in a project
789
- # Allows you to upget a single time entry in a project
790
790
  # @param xero_tenant_id [String] Xero identifier for Tenant
791
791
  # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
792
792
  # @param time_entry_id [String] You can specify an individual time entry by appending the id to the endpoint
@@ -797,8 +797,8 @@ module XeroRuby
797
797
  data
798
798
  end
799
799
 
800
+ # Retrieves a single time entry for a specific project
800
801
  # Allows you to get a single time entry in a project
801
- # Allows you to upget a single time entry in a project
802
802
  # @param xero_tenant_id [String] Xero identifier for Tenant
803
803
  # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
804
804
  # @param time_entry_id [String] You can specify an individual time entry by appending the id to the endpoint
@@ -821,7 +821,7 @@ module XeroRuby
821
821
  fail ArgumentError, "Missing the required parameter 'time_entry_id' when calling ProjectApi.get_time_entry"
822
822
  end
823
823
  # resource path
824
- local_var_path = '/projects/{projectId}/time/{timeEntryId}'.sub('{' + 'projectId' + '}', project_id.to_s).sub('{' + 'timeEntryId' + '}', time_entry_id.to_s)
824
+ local_var_path = '/Projects/{projectId}/Time/{timeEntryId}'.sub('{' + 'projectId' + '}', project_id.to_s).sub('{' + 'timeEntryId' + '}', time_entry_id.to_s)
825
825
 
826
826
  # camelize keys of incoming `where` opts
827
827
  opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
@@ -903,7 +903,7 @@ module XeroRuby
903
903
  fail ArgumentError, "Missing the required parameter 'project_patch' when calling ProjectApi.patch_project"
904
904
  end
905
905
  # resource path
906
- local_var_path = '/projects/{projectId}'.sub('{' + 'projectId' + '}', project_id.to_s)
906
+ local_var_path = '/Projects/{projectId}'.sub('{' + 'projectId' + '}', project_id.to_s)
907
907
 
908
908
  # camelize keys of incoming `where` opts
909
909
  opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
@@ -951,7 +951,7 @@ module XeroRuby
951
951
  return data, status_code, headers
952
952
  end
953
953
 
954
- # update a specific project
954
+ # Updates a specific project
955
955
  # Allows you to update a specific projects.
956
956
  # @param xero_tenant_id [String] Xero identifier for Tenant
957
957
  # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
@@ -963,7 +963,7 @@ module XeroRuby
963
963
  nil
964
964
  end
965
965
 
966
- # update a specific project
966
+ # Updates a specific project
967
967
  # Allows you to update a specific projects.
968
968
  # @param xero_tenant_id [String] Xero identifier for Tenant
969
969
  # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
@@ -987,7 +987,7 @@ module XeroRuby
987
987
  fail ArgumentError, "Missing the required parameter 'project_create_or_update' when calling ProjectApi.update_project"
988
988
  end
989
989
  # resource path
990
- local_var_path = '/projects/{projectId}'.sub('{' + 'projectId' + '}', project_id.to_s)
990
+ local_var_path = '/Projects/{projectId}'.sub('{' + 'projectId' + '}', project_id.to_s)
991
991
 
992
992
  # camelize keys of incoming `where` opts
993
993
  opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
@@ -1035,7 +1035,7 @@ module XeroRuby
1035
1035
  return data, status_code, headers
1036
1036
  end
1037
1037
 
1038
- # Allows you to update time entry in a project
1038
+ # Updates a time entry for a specific project
1039
1039
  # Allows you to update time entry in a project
1040
1040
  # @param xero_tenant_id [String] Xero identifier for Tenant
1041
1041
  # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
@@ -1048,7 +1048,7 @@ module XeroRuby
1048
1048
  nil
1049
1049
  end
1050
1050
 
1051
- # Allows you to update time entry in a project
1051
+ # Updates a time entry for a specific project
1052
1052
  # Allows you to update time entry in a project
1053
1053
  # @param xero_tenant_id [String] Xero identifier for Tenant
1054
1054
  # @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
@@ -1077,7 +1077,7 @@ module XeroRuby
1077
1077
  fail ArgumentError, "Missing the required parameter 'time_entry_create_or_update' when calling ProjectApi.update_time_entry"
1078
1078
  end
1079
1079
  # resource path
1080
- local_var_path = '/projects/{projectId}/time/{timeEntryId}'.sub('{' + 'projectId' + '}', project_id.to_s).sub('{' + 'timeEntryId' + '}', time_entry_id.to_s)
1080
+ local_var_path = '/Projects/{projectId}/Time/{timeEntryId}'.sub('{' + 'projectId' + '}', project_id.to_s).sub('{' + 'timeEntryId' + '}', time_entry_id.to_s)
1081
1081
 
1082
1082
  # camelize keys of incoming `where` opts
1083
1083
  opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
@@ -1,5 +1,5 @@
1
1
  =begin
2
- #Accounting API
2
+ #Xero Accounting API
3
3
 
4
4
  #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
5
 
@@ -18,6 +18,8 @@ require 'faraday'
18
18
 
19
19
  module XeroRuby
20
20
  class ApiClient
21
+ include StringSerialization
22
+
21
23
  # The Configuration object holding settings to be used in the API client.
22
24
  attr_accessor :config
23
25
 
@@ -93,7 +95,7 @@ module XeroRuby
93
95
  end
94
96
 
95
97
  def set_token_set(token_set)
96
- # helper to set the token_set on a client once the user has y
98
+ # helper to set the token_set on a client once the user
97
99
  # has a valid token set ( access_token & refresh_token )
98
100
  XeroRuby.configure.token_set = token_set
99
101
  set_access_token(token_set['access_token'])
@@ -109,7 +111,7 @@ module XeroRuby
109
111
  code: params['code'],
110
112
  redirect_uri: @redirect_uri
111
113
  }
112
- return token_request(data)
114
+ return token_request(data, '/token')
113
115
  end
114
116
 
115
117
  def refresh_token_set(token_set)
@@ -117,18 +119,29 @@ module XeroRuby
117
119
  grant_type: 'refresh_token',
118
120
  refresh_token: token_set['refresh_token']
119
121
  }
120
- return token_request(data)
122
+ return token_request(data, '/token')
123
+ end
124
+
125
+ def revoke_token(token_set)
126
+ data = {
127
+ token: token_set['refresh_token']
128
+ }
129
+ return token_request(data, '/revocation')
121
130
  end
122
131
 
123
- def token_request(data)
124
- response = Faraday.post(@config.token_url) do |req|
132
+ def token_request(data, path)
133
+ response = Faraday.post("#{@config.token_url}#{path}") do |req|
125
134
  req.headers['Authorization'] = "Basic " + Base64.strict_encode64("#{@client_id}:#{@client_secret}")
126
135
  req.headers['Content-Type'] = 'application/x-www-form-urlencoded'
127
136
  req.body = URI.encode_www_form(data)
128
137
  end
129
138
  return_error(response) unless response.success?
130
- body = JSON.parse(response.body)
131
- set_token_set(body)
139
+ if !response.body.blank?
140
+ body = JSON.parse(response.body)
141
+ set_token_set(body)
142
+ else
143
+ body = {}
144
+ end
132
145
  return body
133
146
  end
134
147
 
@@ -499,55 +512,6 @@ module XeroRuby
499
512
  end
500
513
  end
501
514
 
502
- # START - Re-serializes snake_cased params to PascalCase required by XeroAPI
503
- def to_camel_keys(value = self)
504
- case value
505
- when Array
506
- value.map { |v| to_camel_keys(v) }
507
- when Hash
508
- Hash[value.map { |k, v| [camelize_key(k), to_camel_keys(v)] }]
509
- else
510
- value
511
- end
512
- end
513
-
514
- def camelize_key(key, first_upper = true)
515
- if key.is_a? Symbol
516
- camelize(key.to_s, first_upper).to_sym
517
- elsif key.is_a? String
518
- camelize(key, first_upper)
519
- else
520
- key # can't camelize anything except strings and symbols
521
- end
522
- end
523
-
524
- def camelize(word, first_upper = true)
525
- if first_upper
526
- str = word.to_s
527
- str = gsubbed(str, /(?:^|_)([^_\s]+)/)
528
- str = gsubbed(str, %r{/([^/]*)}, "::")
529
- str
530
- else
531
- parts = word.split("_", 2)
532
- parts[0] << camelize(parts[1]) if parts.size > 1
533
- parts[0] || ""
534
- end
535
- end
536
-
537
- def gsubbed(str, pattern, extra = "")
538
- key_map_scronyms = {}
539
- str = str.gsub(pattern) do
540
- extra + (key_map_scronyms[Regexp.last_match(1)] || capitalize_first(Regexp.last_match(1)))
541
- end
542
- str
543
- end
544
-
545
- def capitalize_first(word)
546
- split = word.split('')
547
- "#{split[0].capitalize}#{split[1..-1].join}"
548
- end
549
- # END - Re-serializes snake_cased params to PascalCase required by XeroAPI
550
-
551
515
  # Build parameter value according to the given collection format.
552
516
  # @param [String] collection_format one of :csv, :ssv, :tsv, :pipes and :multi
553
517
  def build_collection_param(param, collection_format)
@@ -569,36 +533,7 @@ module XeroRuby
569
533
  end
570
534
 
571
535
  def parameterize_where(where_opts)
572
- where_opts.map do |k,v|
573
- case v
574
- when Array
575
- operator = v.first
576
- query = v.last
577
- if query.is_a?(Date)
578
- "#{camelize_key(k)} #{operator} DateTime(#{query.strftime("%Y,%m,%d")})"
579
- elsif [Float, Integer].member?(query.class)
580
- %{#{camelize_key(k)} #{operator} #{query}}
581
- elsif [true, false].member?(query)
582
- %{#{camelize_key(k)} #{operator} #{query}}
583
- else
584
- if k == :contact_id
585
- %{Contact.ContactID #{operator} guid("#{query}")}
586
- elsif k == :contact_number
587
- %{Contact.ContactNumber #{operator} "#{query}"}
588
- else
589
- %{#{camelize_key(k)} #{operator} "#{query}"}
590
- end
591
- end
592
- when Range
593
- if v.first.is_a?(DateTime) || v.first.is_a?(Date) || v.first.is_a?(Time)
594
- "#{camelize_key(k)} >= DateTime(#{v.first.strftime("%Y,%m,%d")}) AND #{camelize_key(k)} <= DateTime(#{v.last.strftime("%Y,%m,%d")})"
595
- else
596
- "#{camelize_key(k)} >= #{v.first} AND #{camelize_key(k)} <= #{v.last}"
597
- end
598
- else
599
- %{#{camelize_key(k)} #{v}}
600
- end
601
- end.join(' AND ')
536
+ Where.new(where_opts).to_param
602
537
  end
603
538
  end
604
539
  end