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.
- checksums.yaml +4 -4
- data/README.md +18 -8
- data/lib/xero-ruby.rb +4 -2
- data/lib/xero-ruby/api/accounting_api.rb +446 -446
- data/lib/xero-ruby/api/asset_api.rb +3 -7
- data/lib/xero-ruby/api/files_api.rb +49 -55
- data/lib/xero-ruby/api/payroll_au_api.rb +63 -63
- data/lib/xero-ruby/api/payroll_nz_api.rb +171 -171
- data/lib/xero-ruby/api/payroll_uk_api.rb +173 -173
- data/lib/xero-ruby/api/project_api.rb +45 -45
- data/lib/xero-ruby/api_client.rb +22 -87
- data/lib/xero-ruby/api_error.rb +1 -1
- data/lib/xero-ruby/configuration.rb +3 -3
- data/lib/xero-ruby/models/accounting/account.rb +1 -1
- data/lib/xero-ruby/models/accounting/account_type.rb +1 -1
- data/lib/xero-ruby/models/accounting/accounts.rb +1 -1
- data/lib/xero-ruby/models/accounting/accounts_payable.rb +1 -1
- data/lib/xero-ruby/models/accounting/accounts_receivable.rb +1 -1
- data/lib/xero-ruby/models/accounting/action.rb +1 -1
- data/lib/xero-ruby/models/accounting/actions.rb +1 -1
- data/lib/xero-ruby/models/accounting/address.rb +1 -1
- data/lib/xero-ruby/models/accounting/address_for_organisation.rb +1 -1
- data/lib/xero-ruby/models/accounting/allocation.rb +1 -1
- data/lib/xero-ruby/models/accounting/allocations.rb +1 -1
- data/lib/xero-ruby/models/accounting/attachment.rb +1 -1
- data/lib/xero-ruby/models/accounting/attachments.rb +1 -1
- data/lib/xero-ruby/models/accounting/balance_details.rb +1 -1
- data/lib/xero-ruby/models/accounting/balances.rb +1 -1
- data/lib/xero-ruby/models/accounting/bank_transaction.rb +1 -1
- data/lib/xero-ruby/models/accounting/bank_transactions.rb +1 -1
- data/lib/xero-ruby/models/accounting/bank_transfer.rb +1 -1
- data/lib/xero-ruby/models/accounting/bank_transfers.rb +1 -1
- data/lib/xero-ruby/models/accounting/batch_payment.rb +1 -1
- data/lib/xero-ruby/models/accounting/batch_payment_details.rb +1 -1
- data/lib/xero-ruby/models/accounting/batch_payments.rb +1 -1
- data/lib/xero-ruby/models/accounting/bill.rb +1 -1
- data/lib/xero-ruby/models/accounting/branding_theme.rb +1 -1
- data/lib/xero-ruby/models/accounting/branding_themes.rb +1 -1
- data/lib/xero-ruby/models/accounting/cis_org_setting.rb +1 -1
- data/lib/xero-ruby/models/{files/file_response204.rb → accounting/cis_org_settings.rb} +16 -14
- data/lib/xero-ruby/models/accounting/cis_setting.rb +1 -1
- data/lib/xero-ruby/models/accounting/cis_settings.rb +1 -1
- data/lib/xero-ruby/models/accounting/contact.rb +1 -1
- data/lib/xero-ruby/models/accounting/contact_group.rb +1 -1
- data/lib/xero-ruby/models/accounting/contact_groups.rb +1 -1
- data/lib/xero-ruby/models/accounting/contact_person.rb +1 -1
- data/lib/xero-ruby/models/accounting/contacts.rb +1 -1
- data/lib/xero-ruby/models/accounting/conversion_balances.rb +1 -1
- data/lib/xero-ruby/models/accounting/conversion_date.rb +1 -1
- data/lib/xero-ruby/models/accounting/country_code.rb +1 -1
- data/lib/xero-ruby/models/accounting/credit_note.rb +18 -6
- data/lib/xero-ruby/models/accounting/credit_notes.rb +1 -1
- data/lib/xero-ruby/models/accounting/currencies.rb +1 -1
- data/lib/xero-ruby/models/accounting/currency.rb +1 -1
- data/lib/xero-ruby/models/accounting/currency_code.rb +1 -1
- data/lib/xero-ruby/models/accounting/element.rb +1 -1
- data/lib/xero-ruby/models/accounting/employee.rb +1 -1
- data/lib/xero-ruby/models/accounting/employees.rb +1 -1
- data/lib/xero-ruby/models/accounting/error.rb +1 -1
- data/lib/xero-ruby/models/accounting/expense_claim.rb +1 -1
- data/lib/xero-ruby/models/accounting/expense_claims.rb +1 -1
- data/lib/xero-ruby/models/accounting/external_link.rb +1 -1
- data/lib/xero-ruby/models/accounting/history_record.rb +1 -1
- data/lib/xero-ruby/models/accounting/history_records.rb +1 -1
- data/lib/xero-ruby/models/accounting/import_summary.rb +1 -1
- data/lib/xero-ruby/models/accounting/import_summary_accounts.rb +1 -1
- data/lib/xero-ruby/models/accounting/import_summary_object.rb +1 -1
- data/lib/xero-ruby/models/accounting/import_summary_organisation.rb +1 -1
- data/lib/xero-ruby/models/accounting/invoice.rb +1 -1
- data/lib/xero-ruby/models/accounting/invoice_reminder.rb +1 -1
- data/lib/xero-ruby/models/accounting/invoice_reminders.rb +1 -1
- data/lib/xero-ruby/models/accounting/invoices.rb +1 -1
- data/lib/xero-ruby/models/accounting/item.rb +1 -1
- data/lib/xero-ruby/models/accounting/items.rb +1 -1
- data/lib/xero-ruby/models/accounting/journal.rb +1 -1
- data/lib/xero-ruby/models/accounting/journal_line.rb +1 -1
- data/lib/xero-ruby/models/accounting/journals.rb +1 -1
- data/lib/xero-ruby/models/accounting/line_amount_types.rb +1 -1
- data/lib/xero-ruby/models/accounting/line_item.rb +1 -1
- data/lib/xero-ruby/models/accounting/line_item_tracking.rb +1 -1
- data/lib/xero-ruby/models/accounting/linked_transaction.rb +1 -1
- data/lib/xero-ruby/models/accounting/linked_transactions.rb +1 -1
- data/lib/xero-ruby/models/accounting/manual_journal.rb +1 -1
- data/lib/xero-ruby/models/accounting/manual_journal_line.rb +1 -1
- data/lib/xero-ruby/models/accounting/manual_journals.rb +1 -1
- data/lib/xero-ruby/models/accounting/online_invoice.rb +1 -1
- data/lib/xero-ruby/models/accounting/online_invoices.rb +1 -1
- data/lib/xero-ruby/models/accounting/organisation.rb +1 -1
- data/lib/xero-ruby/models/accounting/organisations.rb +1 -1
- data/lib/xero-ruby/models/accounting/overpayment.rb +1 -1
- data/lib/xero-ruby/models/accounting/overpayments.rb +1 -1
- data/lib/xero-ruby/models/accounting/payment.rb +12 -2
- data/lib/xero-ruby/models/accounting/payment_delete.rb +1 -1
- data/lib/xero-ruby/models/accounting/payment_service.rb +1 -1
- data/lib/xero-ruby/models/accounting/payment_services.rb +1 -1
- data/lib/xero-ruby/models/accounting/payment_term.rb +1 -1
- data/lib/xero-ruby/models/accounting/payment_term_type.rb +1 -1
- data/lib/xero-ruby/models/accounting/payments.rb +1 -1
- data/lib/xero-ruby/models/accounting/phone.rb +1 -1
- data/lib/xero-ruby/models/accounting/prepayment.rb +1 -1
- data/lib/xero-ruby/models/accounting/prepayments.rb +1 -1
- data/lib/xero-ruby/models/accounting/purchase.rb +1 -1
- data/lib/xero-ruby/models/accounting/purchase_order.rb +1 -1
- data/lib/xero-ruby/models/accounting/purchase_orders.rb +1 -1
- data/lib/xero-ruby/models/accounting/quote.rb +1 -1
- data/lib/xero-ruby/models/accounting/quote_line_amount_types.rb +1 -1
- data/lib/xero-ruby/models/accounting/quote_status_codes.rb +1 -1
- data/lib/xero-ruby/models/accounting/quotes.rb +1 -1
- data/lib/xero-ruby/models/accounting/receipt.rb +1 -1
- data/lib/xero-ruby/models/accounting/receipts.rb +1 -1
- data/lib/xero-ruby/models/accounting/repeating_invoice.rb +1 -1
- data/lib/xero-ruby/models/accounting/repeating_invoices.rb +1 -1
- data/lib/xero-ruby/models/accounting/report.rb +1 -1
- data/lib/xero-ruby/models/accounting/report_attribute.rb +1 -1
- data/lib/xero-ruby/models/accounting/report_cell.rb +1 -1
- data/lib/xero-ruby/models/accounting/report_fields.rb +1 -1
- data/lib/xero-ruby/models/accounting/report_row.rb +1 -1
- data/lib/xero-ruby/models/accounting/report_rows.rb +1 -1
- data/lib/xero-ruby/models/accounting/report_with_row.rb +1 -1
- data/lib/xero-ruby/models/accounting/report_with_rows.rb +1 -1
- data/lib/xero-ruby/models/accounting/reports.rb +1 -1
- data/lib/xero-ruby/models/accounting/request_empty.rb +1 -1
- data/lib/xero-ruby/models/accounting/row_type.rb +1 -1
- data/lib/xero-ruby/models/accounting/sales_tracking_category.rb +1 -1
- data/lib/xero-ruby/models/accounting/schedule.rb +1 -1
- data/lib/xero-ruby/models/accounting/setup.rb +1 -1
- data/lib/xero-ruby/models/accounting/tax_component.rb +1 -1
- data/lib/xero-ruby/models/accounting/tax_rate.rb +1 -1
- data/lib/xero-ruby/models/accounting/tax_rates.rb +1 -1
- data/lib/xero-ruby/models/accounting/tax_type.rb +1 -1
- data/lib/xero-ruby/models/accounting/ten_ninety_nine_contact.rb +1 -1
- data/lib/xero-ruby/models/accounting/time_zone.rb +1 -1
- data/lib/xero-ruby/models/accounting/tracking_categories.rb +1 -1
- data/lib/xero-ruby/models/accounting/tracking_category.rb +1 -1
- data/lib/xero-ruby/models/accounting/tracking_option.rb +1 -1
- data/lib/xero-ruby/models/accounting/tracking_options.rb +1 -1
- data/lib/xero-ruby/models/accounting/user.rb +1 -1
- data/lib/xero-ruby/models/accounting/users.rb +1 -1
- data/lib/xero-ruby/models/accounting/validation_error.rb +1 -1
- data/lib/xero-ruby/models/assets/asset.rb +1 -1
- data/lib/xero-ruby/models/assets/asset_status.rb +1 -1
- data/lib/xero-ruby/models/assets/asset_status_query_param.rb +1 -1
- data/lib/xero-ruby/models/assets/asset_type.rb +1 -1
- data/lib/xero-ruby/models/assets/assets.rb +1 -1
- data/lib/xero-ruby/models/assets/book_depreciation_detail.rb +1 -1
- data/lib/xero-ruby/models/assets/book_depreciation_setting.rb +1 -1
- data/lib/xero-ruby/models/assets/error.rb +1 -1
- data/lib/xero-ruby/models/assets/field_validation_errors_element.rb +2 -2
- data/lib/xero-ruby/models/assets/pagination.rb +1 -1
- data/lib/xero-ruby/models/assets/resource_validation_errors_element.rb +2 -2
- data/lib/xero-ruby/models/assets/setting.rb +1 -1
- data/lib/xero-ruby/models/files/association.rb +1 -1
- data/lib/xero-ruby/models/files/file_object.rb +1 -1
- data/lib/xero-ruby/models/files/files.rb +1 -1
- data/lib/xero-ruby/models/files/folder.rb +1 -1
- data/lib/xero-ruby/models/files/folders.rb +1 -1
- data/lib/xero-ruby/models/files/inline_object.rb +1 -1
- data/lib/xero-ruby/models/files/object_group.rb +1 -1
- data/lib/xero-ruby/models/files/object_type.rb +1 -1
- data/lib/xero-ruby/models/files/user.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/account.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/account_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/allowance_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/api_exception.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/bank_account.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/calendar_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/deduction_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/deduction_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/deduction_type_calculation_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/earnings_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/earnings_rate.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/earnings_rate_calculation_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/earnings_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/employee.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/employee_status.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/employees.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/employment_basis.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/employment_termination_payment_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/entitlement_final_pay_payout_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/home_address.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_accrual_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_application.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_applications.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_balance.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_earnings_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_line_calculation_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_lines.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_period.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_period_status.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/leave_type_contribution_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/manual_tax_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/opening_balances.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/pay_item.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/pay_items.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/pay_run.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/pay_run_status.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/pay_runs.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/pay_template.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/payment_frequency_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/payroll_calendar.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/payroll_calendars.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/payslip.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/payslip_lines.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/payslip_object.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/payslip_summary.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/payslips.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/rate_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/reimbursement_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/reimbursement_lines.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/reimbursement_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/residency_status.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/settings.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/settings_object.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/settings_tracking_categories.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_employee_groups.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/settings_tracking_categories_timesheet_categories.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/state.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/super_fund.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/super_fund_product.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/super_fund_products.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/super_fund_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/super_funds.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/super_line.rb +2 -2
- data/lib/xero-ruby/models/payroll_au/super_membership.rb +2 -2
- data/lib/xero-ruby/models/payroll_au/superannuation_calculation_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/superannuation_contribution_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/superannuation_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/tax_declaration.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/tax_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/tfn_exemption_type.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/timesheet.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/timesheet_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/timesheet_object.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/timesheet_status.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/timesheets.rb +1 -1
- data/lib/xero-ruby/models/payroll_au/validation_error.rb +1 -1
- data/lib/xero-ruby/models/payroll_nz/earnings_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_nz/employee_statutory_sick_leave.rb +1 -1
- data/lib/xero-ruby/models/payroll_nz/leave_earnings_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_nz/superannuation_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_nz/timesheet.rb +1 -1
- data/lib/xero-ruby/models/payroll_nz/timesheet_earnings_line.rb +1 -1
- data/lib/xero-ruby/models/payroll_uk/employee_statutory_sick_leave.rb +1 -1
- data/lib/xero-ruby/models/payroll_uk/timesheet.rb +1 -1
- data/lib/xero-ruby/string_serialization.rb +52 -0
- data/lib/xero-ruby/version.rb +3 -3
- data/lib/xero-ruby/where.rb +65 -0
- data/spec/configuration_spec.rb +1 -1
- data/spec/where_spec.rb +82 -0
- metadata +8 -6
- 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
|
-
#
|
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
|
-
#
|
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 = '/
|
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
|
-
#
|
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
|
-
#
|
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 = '/
|
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
|
-
#
|
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
|
-
#
|
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 = '/
|
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
|
-
#
|
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
|
-
#
|
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 = '/
|
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 = '/
|
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
|
-
#
|
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
|
-
#
|
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 = '/
|
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
|
-
#
|
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/{
|
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
|
-
#
|
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/{
|
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 = '/
|
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
|
-
#
|
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={
|
601
|
+
# @option opts [String] :task_ids taskIdsSearch for all tasks that match a comma separated list of taskIds, i.e. GET https://.../tasks?taskIds={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
|
-
#
|
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={
|
616
|
+
# @option opts [String] :task_ids taskIdsSearch for all tasks that match a comma separated list of taskIds, i.e. GET https://.../tasks?taskIds={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 = '/
|
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
|
-
#
|
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
|
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 `TIME` or `FIXED`.
|
695
695
|
# @option opts [DateTime] :date_after_utc ISO 8601 UTC date. Finds all time entries on or after this date filtered on the `dateUtc` 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 `dateUtc` field.
|
@@ -700,7 +700,7 @@ module XeroRuby
|
|
700
700
|
data
|
701
701
|
end
|
702
702
|
|
703
|
-
#
|
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
|
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 `TIME` or `FIXED`.
|
716
716
|
# @option opts [DateTime] :date_after_utc ISO 8601 UTC date. Finds all time entries on or after this date filtered on the `dateUtc` 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 `dateUtc` 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 = '/
|
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 = '/
|
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 = '/
|
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
|
-
#
|
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
|
-
#
|
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 = '/
|
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
|
-
#
|
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
|
-
#
|
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 = '/
|
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?
|
data/lib/xero-ruby/api_client.rb
CHANGED
@@ -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
|
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
|
-
|
131
|
-
|
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.
|
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
|