xero-ruby 3.9.0 → 7.0.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.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/lib/xero-ruby/api/accounting_api.rb +1136 -46
- data/lib/xero-ruby/api/app_store_api.rb +244 -0
- data/lib/xero-ruby/api/asset_api.rb +16 -6
- data/lib/xero-ruby/api/files_api.rb +156 -20
- data/lib/xero-ruby/api/payroll_au_api.rb +326 -30
- data/lib/xero-ruby/api/payroll_nz_api.rb +87 -0
- data/lib/xero-ruby/api/payroll_uk_api.rb +81 -0
- data/lib/xero-ruby/api/project_api.rb +286 -2
- data/lib/xero-ruby/api_client.rb +9 -3
- data/lib/xero-ruby/models/accounting/account.rb +1 -1
- data/lib/xero-ruby/models/accounting/account_type.rb +0 -4
- data/lib/xero-ruby/models/accounting/allocation.rb +21 -1
- data/lib/xero-ruby/models/accounting/batch_payment.rb +2 -2
- data/lib/xero-ruby/models/accounting/batch_payment_delete.rb +244 -0
- data/lib/xero-ruby/models/accounting/batch_payment_delete_by_url_param.rb +229 -0
- data/lib/xero-ruby/models/accounting/contact.rb +1 -11
- data/lib/xero-ruby/models/accounting/currency_code.rb +10 -8
- data/lib/xero-ruby/models/accounting/journal_line.rb +1 -1
- data/lib/xero-ruby/models/accounting/line_item.rb +2 -2
- data/lib/xero-ruby/models/accounting/organisation.rb +6 -2
- data/lib/xero-ruby/models/accounting/payment.rb +26 -4
- data/lib/xero-ruby/models/accounting/repeating_invoice.rb +53 -5
- data/lib/xero-ruby/models/accounting/tax_rate.rb +23 -5
- data/lib/xero-ruby/models/accounting/tax_type.rb +60 -3
- data/lib/xero-ruby/models/accounting/ten_ninety_nine_contact.rb +75 -4
- data/lib/xero-ruby/models/accounting/time_zone.rb +123 -91
- data/lib/xero-ruby/models/app_store/create_usage_record.rb +243 -0
- data/lib/xero-ruby/models/app_store/update_usage_record.rb +228 -0
- data/lib/xero-ruby/models/app_store/usage_record.rb +332 -0
- data/lib/xero-ruby/models/app_store/usage_records_list.rb +230 -0
- data/lib/xero-ruby/models/files/association.rb +31 -1
- data/lib/xero-ruby/models/finance/problem_type.rb +1 -0
- data/lib/xero-ruby/models/finance/statement_line_response.rb +11 -1
- data/lib/xero-ruby/models/finance/statement_response.rb +24 -4
- data/lib/xero-ruby/models/payroll_au/allowance_type.rb +0 -1
- data/lib/xero-ruby/models/payroll_au/country_of_residence.rb +284 -0
- data/lib/xero-ruby/models/payroll_au/earnings_rate.rb +21 -1
- data/lib/xero-ruby/models/payroll_au/earnings_type.rb +2 -0
- data/lib/xero-ruby/models/payroll_au/employee.rb +42 -2
- data/lib/xero-ruby/models/payroll_au/employment_basis.rb +1 -0
- data/lib/xero-ruby/models/payroll_au/employment_type.rb +36 -0
- data/lib/xero-ruby/models/payroll_au/income_type.rb +39 -0
- data/lib/xero-ruby/models/payroll_au/leave_application.rb +11 -1
- data/lib/xero-ruby/models/payroll_au/leave_category_code.rb +46 -0
- data/lib/xero-ruby/models/payroll_au/leave_earnings_line.rb +14 -4
- data/lib/xero-ruby/models/payroll_au/leave_line_calculation_type.rb +0 -1
- data/lib/xero-ruby/models/payroll_au/leave_period_status.rb +2 -0
- data/lib/xero-ruby/models/payroll_au/leave_type.rb +24 -4
- data/lib/xero-ruby/models/payroll_au/opening_balances.rb +16 -4
- data/lib/xero-ruby/models/payroll_au/paid_leave_earnings_line.rb +272 -0
- data/lib/xero-ruby/models/payroll_au/pay_out_type.rb +36 -0
- data/lib/xero-ruby/models/payroll_au/senior_marital_status.rb +37 -0
- data/lib/xero-ruby/models/payroll_au/settings.rb +14 -4
- data/lib/xero-ruby/models/payroll_au/tax_declaration.rb +51 -1
- data/lib/xero-ruby/models/payroll_au/tax_scale_type.rb +40 -0
- data/lib/xero-ruby/models/payroll_au/work_condition.rb +37 -0
- data/lib/xero-ruby/models/payroll_nz/employee.rb +14 -4
- data/lib/xero-ruby/models/payroll_uk/earnings_rate.rb +3 -3
- data/lib/xero-ruby/models/projects/currency_code.rb +0 -1
- data/lib/xero-ruby/models/projects/task.rb +6 -6
- data/lib/xero-ruby/models/projects/task_create_or_update.rb +1 -1
- data/lib/xero-ruby/version.rb +2 -2
- data/lib/xero-ruby/where.rb +2 -0
- data/lib/xero-ruby.rb +15 -0
- metadata +30 -15
@@ -20,6 +20,7 @@ module XeroRuby
|
|
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
|
23
|
+
# @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
|
23
24
|
# @return [Project]
|
24
25
|
def create_project(xero_tenant_id, project_create_or_update, opts = {})
|
25
26
|
data, _status_code, _headers = create_project_with_http_info(xero_tenant_id, project_create_or_update, opts)
|
@@ -30,6 +31,7 @@ module XeroRuby
|
|
30
31
|
# @param xero_tenant_id [String] Xero identifier for Tenant
|
31
32
|
# @param project_create_or_update [ProjectCreateOrUpdate] Create a new project with ProjectCreateOrUpdate object
|
32
33
|
# @param [Hash] opts the optional parameters
|
34
|
+
# @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
|
33
35
|
# @return [Array<(Project, Integer, Hash)>] Project data, response status code and response headers
|
34
36
|
def create_project_with_http_info(xero_tenant_id, project_create_or_update, options = {})
|
35
37
|
opts = options.dup
|
@@ -64,6 +66,7 @@ module XeroRuby
|
|
64
66
|
# HTTP header 'Content-Type'
|
65
67
|
header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
|
66
68
|
header_params[:'Xero-Tenant-Id'] = xero_tenant_id
|
69
|
+
header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
|
67
70
|
|
68
71
|
# form parameters
|
69
72
|
form_params = opts[:form_params] || {}
|
@@ -93,12 +96,101 @@ module XeroRuby
|
|
93
96
|
return data, status_code, headers
|
94
97
|
end
|
95
98
|
|
99
|
+
# Allows you to create a task
|
100
|
+
# Allows you to create a specific task
|
101
|
+
# @param xero_tenant_id [String] Xero identifier for Tenant
|
102
|
+
# @param project_id [String] You can create a task on a specified projectId
|
103
|
+
# @param task_create_or_update [TaskCreateOrUpdate] The task object you are creating
|
104
|
+
# @param [Hash] opts the optional parameters
|
105
|
+
# @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
|
106
|
+
# @return [Task]
|
107
|
+
def create_task(xero_tenant_id, project_id, task_create_or_update, opts = {})
|
108
|
+
data, _status_code, _headers = create_task_with_http_info(xero_tenant_id, project_id, task_create_or_update, opts)
|
109
|
+
data
|
110
|
+
end
|
111
|
+
|
112
|
+
# Allows you to create a task
|
113
|
+
# Allows you to create a specific task
|
114
|
+
# @param xero_tenant_id [String] Xero identifier for Tenant
|
115
|
+
# @param project_id [String] You can create a task on a specified projectId
|
116
|
+
# @param task_create_or_update [TaskCreateOrUpdate] The task object you are creating
|
117
|
+
# @param [Hash] opts the optional parameters
|
118
|
+
# @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
|
119
|
+
# @return [Array<(Task, Integer, Hash)>] Task data, response status code and response headers
|
120
|
+
def create_task_with_http_info(xero_tenant_id, project_id, task_create_or_update, options = {})
|
121
|
+
opts = options.dup
|
122
|
+
if @api_client.config.debugging
|
123
|
+
@api_client.config.logger.debug 'Calling API: ProjectApi.create_task ...'
|
124
|
+
end
|
125
|
+
# verify the required parameter 'xero_tenant_id' is set
|
126
|
+
if @api_client.config.client_side_validation && xero_tenant_id.nil?
|
127
|
+
fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling ProjectApi.create_task"
|
128
|
+
end
|
129
|
+
# verify the required parameter 'project_id' is set
|
130
|
+
if @api_client.config.client_side_validation && project_id.nil?
|
131
|
+
fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectApi.create_task"
|
132
|
+
end
|
133
|
+
# verify the required parameter 'task_create_or_update' is set
|
134
|
+
if @api_client.config.client_side_validation && task_create_or_update.nil?
|
135
|
+
fail ArgumentError, "Missing the required parameter 'task_create_or_update' when calling ProjectApi.create_task"
|
136
|
+
end
|
137
|
+
# resource path
|
138
|
+
local_var_path = '/Projects/{projectId}/Tasks'.sub('{' + 'projectId' + '}', project_id.to_s)
|
139
|
+
|
140
|
+
# camelize keys of incoming `where` opts
|
141
|
+
opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
|
142
|
+
|
143
|
+
# query parameters
|
144
|
+
query_params = opts[:query_params] || {}
|
145
|
+
|
146
|
+
# XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
|
147
|
+
query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
|
148
|
+
query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
|
149
|
+
|
150
|
+
# header parameters
|
151
|
+
header_params = opts[:header_params] || {}
|
152
|
+
# HTTP header 'Accept' (if needed)
|
153
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
154
|
+
# HTTP header 'Content-Type'
|
155
|
+
header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
|
156
|
+
header_params[:'Xero-Tenant-Id'] = xero_tenant_id
|
157
|
+
header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
|
158
|
+
|
159
|
+
# form parameters
|
160
|
+
form_params = opts[:form_params] || {}
|
161
|
+
|
162
|
+
# http body (model)
|
163
|
+
post_body = opts[:body] || @api_client.object_to_http_body(task_create_or_update)
|
164
|
+
|
165
|
+
# return_type
|
166
|
+
return_type = opts[:return_type] || 'Task'
|
167
|
+
|
168
|
+
# auth_names
|
169
|
+
auth_names = opts[:auth_names] || ['OAuth2']
|
170
|
+
|
171
|
+
new_options = opts.merge(
|
172
|
+
:header_params => header_params,
|
173
|
+
:query_params => query_params,
|
174
|
+
:form_params => form_params,
|
175
|
+
:body => post_body,
|
176
|
+
:auth_names => auth_names,
|
177
|
+
:return_type => return_type
|
178
|
+
)
|
179
|
+
|
180
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, "ProjectApi", new_options)
|
181
|
+
if @api_client.config.debugging
|
182
|
+
@api_client.config.logger.debug "API called: ProjectApi#create_task\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
183
|
+
end
|
184
|
+
return data, status_code, headers
|
185
|
+
end
|
186
|
+
|
96
187
|
# Creates a time entry for a specific project
|
97
188
|
# Allows you to create a specific task
|
98
189
|
# @param xero_tenant_id [String] Xero identifier for Tenant
|
99
190
|
# @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
|
100
191
|
# @param time_entry_create_or_update [TimeEntryCreateOrUpdate] The time entry object you are creating
|
101
192
|
# @param [Hash] opts the optional parameters
|
193
|
+
# @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
|
102
194
|
# @return [TimeEntry]
|
103
195
|
def create_time_entry(xero_tenant_id, project_id, time_entry_create_or_update, opts = {})
|
104
196
|
data, _status_code, _headers = create_time_entry_with_http_info(xero_tenant_id, project_id, time_entry_create_or_update, opts)
|
@@ -111,6 +203,7 @@ module XeroRuby
|
|
111
203
|
# @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
|
112
204
|
# @param time_entry_create_or_update [TimeEntryCreateOrUpdate] The time entry object you are creating
|
113
205
|
# @param [Hash] opts the optional parameters
|
206
|
+
# @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
|
114
207
|
# @return [Array<(TimeEntry, Integer, Hash)>] TimeEntry data, response status code and response headers
|
115
208
|
def create_time_entry_with_http_info(xero_tenant_id, project_id, time_entry_create_or_update, options = {})
|
116
209
|
opts = options.dup
|
@@ -149,6 +242,7 @@ module XeroRuby
|
|
149
242
|
# HTTP header 'Content-Type'
|
150
243
|
header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
|
151
244
|
header_params[:'Xero-Tenant-Id'] = xero_tenant_id
|
245
|
+
header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
|
152
246
|
|
153
247
|
# form parameters
|
154
248
|
form_params = opts[:form_params] || {}
|
@@ -178,6 +272,89 @@ module XeroRuby
|
|
178
272
|
return data, status_code, headers
|
179
273
|
end
|
180
274
|
|
275
|
+
# Allows you to delete a task
|
276
|
+
# Allows you to delete a specific task
|
277
|
+
# @param xero_tenant_id [String] Xero identifier for Tenant
|
278
|
+
# @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
|
279
|
+
# @param task_id [String] You can specify an individual task by appending the id to the endpoint
|
280
|
+
# @param [Hash] opts the optional parameters
|
281
|
+
# @return [nil]
|
282
|
+
def delete_task(xero_tenant_id, project_id, task_id, opts = {})
|
283
|
+
delete_task_with_http_info(xero_tenant_id, project_id, task_id, opts)
|
284
|
+
nil
|
285
|
+
end
|
286
|
+
|
287
|
+
# Allows you to delete a task
|
288
|
+
# Allows you to delete a specific task
|
289
|
+
# @param xero_tenant_id [String] Xero identifier for Tenant
|
290
|
+
# @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
|
291
|
+
# @param task_id [String] You can specify an individual task by appending the id to the endpoint
|
292
|
+
# @param [Hash] opts the optional parameters
|
293
|
+
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
294
|
+
def delete_task_with_http_info(xero_tenant_id, project_id, task_id, options = {})
|
295
|
+
opts = options.dup
|
296
|
+
if @api_client.config.debugging
|
297
|
+
@api_client.config.logger.debug 'Calling API: ProjectApi.delete_task ...'
|
298
|
+
end
|
299
|
+
# verify the required parameter 'xero_tenant_id' is set
|
300
|
+
if @api_client.config.client_side_validation && xero_tenant_id.nil?
|
301
|
+
fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling ProjectApi.delete_task"
|
302
|
+
end
|
303
|
+
# verify the required parameter 'project_id' is set
|
304
|
+
if @api_client.config.client_side_validation && project_id.nil?
|
305
|
+
fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectApi.delete_task"
|
306
|
+
end
|
307
|
+
# verify the required parameter 'task_id' is set
|
308
|
+
if @api_client.config.client_side_validation && task_id.nil?
|
309
|
+
fail ArgumentError, "Missing the required parameter 'task_id' when calling ProjectApi.delete_task"
|
310
|
+
end
|
311
|
+
# resource path
|
312
|
+
local_var_path = '/Projects/{projectId}/Tasks/{taskId}'.sub('{' + 'projectId' + '}', project_id.to_s).sub('{' + 'taskId' + '}', task_id.to_s)
|
313
|
+
|
314
|
+
# camelize keys of incoming `where` opts
|
315
|
+
opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
|
316
|
+
|
317
|
+
# query parameters
|
318
|
+
query_params = opts[:query_params] || {}
|
319
|
+
|
320
|
+
# XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
|
321
|
+
query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
|
322
|
+
query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
|
323
|
+
|
324
|
+
# header parameters
|
325
|
+
header_params = opts[:header_params] || {}
|
326
|
+
# HTTP header 'Accept' (if needed)
|
327
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
328
|
+
header_params[:'Xero-Tenant-Id'] = xero_tenant_id
|
329
|
+
|
330
|
+
# form parameters
|
331
|
+
form_params = opts[:form_params] || {}
|
332
|
+
|
333
|
+
# http body (model)
|
334
|
+
post_body = opts[:body]
|
335
|
+
|
336
|
+
# return_type
|
337
|
+
return_type = opts[:return_type]
|
338
|
+
|
339
|
+
# auth_names
|
340
|
+
auth_names = opts[:auth_names] || ['OAuth2']
|
341
|
+
|
342
|
+
new_options = opts.merge(
|
343
|
+
:header_params => header_params,
|
344
|
+
:query_params => query_params,
|
345
|
+
:form_params => form_params,
|
346
|
+
:body => post_body,
|
347
|
+
:auth_names => auth_names,
|
348
|
+
:return_type => return_type
|
349
|
+
)
|
350
|
+
|
351
|
+
data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, "ProjectApi", new_options)
|
352
|
+
if @api_client.config.debugging
|
353
|
+
@api_client.config.logger.debug "API called: ProjectApi#delete_task\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
354
|
+
end
|
355
|
+
return data, status_code, headers
|
356
|
+
end
|
357
|
+
|
181
358
|
# Deletes a time entry for a specific project
|
182
359
|
# Allows you to delete a specific time entry
|
183
360
|
# @param xero_tenant_id [String] Xero identifier for Tenant
|
@@ -229,6 +406,8 @@ module XeroRuby
|
|
229
406
|
|
230
407
|
# header parameters
|
231
408
|
header_params = opts[:header_params] || {}
|
409
|
+
# HTTP header 'Accept' (if needed)
|
410
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
232
411
|
header_params[:'Xero-Tenant-Id'] = xero_tenant_id
|
233
412
|
|
234
413
|
# form parameters
|
@@ -605,7 +784,7 @@ module XeroRuby
|
|
605
784
|
# @param [Hash] opts the optional parameters
|
606
785
|
# @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.
|
607
786
|
# @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.
|
608
|
-
# @option opts [String] :task_ids
|
787
|
+
# @option opts [String] :task_ids Search for all tasks that match a comma separated list of taskIds, i.e. GET https://.../tasks?taskIds={taskID},{taskID}
|
609
788
|
# @option opts [ChargeType] :charge_type
|
610
789
|
# @return [Tasks]
|
611
790
|
def get_tasks(xero_tenant_id, project_id, opts = {})
|
@@ -620,7 +799,7 @@ module XeroRuby
|
|
620
799
|
# @param [Hash] opts the optional parameters
|
621
800
|
# @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.
|
622
801
|
# @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.
|
623
|
-
# @option opts [String] :task_ids
|
802
|
+
# @option opts [String] :task_ids Search for all tasks that match a comma separated list of taskIds, i.e. GET https://.../tasks?taskIds={taskID},{taskID}
|
624
803
|
# @option opts [ChargeType] :charge_type
|
625
804
|
# @return [Array<(Tasks, Integer, Hash)>] Tasks data, response status code and response headers
|
626
805
|
def get_tasks_with_http_info(xero_tenant_id, project_id, options = {})
|
@@ -883,6 +1062,7 @@ module XeroRuby
|
|
883
1062
|
# @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
|
884
1063
|
# @param project_patch [ProjectPatch] Update the status of an existing Project
|
885
1064
|
# @param [Hash] opts the optional parameters
|
1065
|
+
# @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
|
886
1066
|
# @return [nil]
|
887
1067
|
def patch_project(xero_tenant_id, project_id, project_patch, opts = {})
|
888
1068
|
patch_project_with_http_info(xero_tenant_id, project_id, project_patch, opts)
|
@@ -895,6 +1075,7 @@ module XeroRuby
|
|
895
1075
|
# @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
|
896
1076
|
# @param project_patch [ProjectPatch] Update the status of an existing Project
|
897
1077
|
# @param [Hash] opts the optional parameters
|
1078
|
+
# @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
|
898
1079
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
899
1080
|
def patch_project_with_http_info(xero_tenant_id, project_id, project_patch, options = {})
|
900
1081
|
opts = options.dup
|
@@ -933,6 +1114,7 @@ module XeroRuby
|
|
933
1114
|
# HTTP header 'Content-Type'
|
934
1115
|
header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
|
935
1116
|
header_params[:'Xero-Tenant-Id'] = xero_tenant_id
|
1117
|
+
header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
|
936
1118
|
|
937
1119
|
# form parameters
|
938
1120
|
form_params = opts[:form_params] || {}
|
@@ -968,6 +1150,7 @@ module XeroRuby
|
|
968
1150
|
# @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
|
969
1151
|
# @param project_create_or_update [ProjectCreateOrUpdate] Request of type ProjectCreateOrUpdate
|
970
1152
|
# @param [Hash] opts the optional parameters
|
1153
|
+
# @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
|
971
1154
|
# @return [nil]
|
972
1155
|
def update_project(xero_tenant_id, project_id, project_create_or_update, opts = {})
|
973
1156
|
update_project_with_http_info(xero_tenant_id, project_id, project_create_or_update, opts)
|
@@ -980,6 +1163,7 @@ module XeroRuby
|
|
980
1163
|
# @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
|
981
1164
|
# @param project_create_or_update [ProjectCreateOrUpdate] Request of type ProjectCreateOrUpdate
|
982
1165
|
# @param [Hash] opts the optional parameters
|
1166
|
+
# @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
|
983
1167
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
984
1168
|
def update_project_with_http_info(xero_tenant_id, project_id, project_create_or_update, options = {})
|
985
1169
|
opts = options.dup
|
@@ -1018,6 +1202,7 @@ module XeroRuby
|
|
1018
1202
|
# HTTP header 'Content-Type'
|
1019
1203
|
header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
|
1020
1204
|
header_params[:'Xero-Tenant-Id'] = xero_tenant_id
|
1205
|
+
header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
|
1021
1206
|
|
1022
1207
|
# form parameters
|
1023
1208
|
form_params = opts[:form_params] || {}
|
@@ -1047,6 +1232,100 @@ module XeroRuby
|
|
1047
1232
|
return data, status_code, headers
|
1048
1233
|
end
|
1049
1234
|
|
1235
|
+
# Allows you to update a task
|
1236
|
+
# Allows you to update a specific task
|
1237
|
+
# @param xero_tenant_id [String] Xero identifier for Tenant
|
1238
|
+
# @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
|
1239
|
+
# @param task_id [String] You can specify an individual task by appending the id to the endpoint
|
1240
|
+
# @param task_create_or_update [TaskCreateOrUpdate] The task object you are updating
|
1241
|
+
# @param [Hash] opts the optional parameters
|
1242
|
+
# @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
|
1243
|
+
# @return [nil]
|
1244
|
+
def update_task(xero_tenant_id, project_id, task_id, task_create_or_update, opts = {})
|
1245
|
+
update_task_with_http_info(xero_tenant_id, project_id, task_id, task_create_or_update, opts)
|
1246
|
+
nil
|
1247
|
+
end
|
1248
|
+
|
1249
|
+
# Allows you to update a task
|
1250
|
+
# Allows you to update a specific task
|
1251
|
+
# @param xero_tenant_id [String] Xero identifier for Tenant
|
1252
|
+
# @param project_id [String] You can specify an individual project by appending the projectId to the endpoint
|
1253
|
+
# @param task_id [String] You can specify an individual task by appending the id to the endpoint
|
1254
|
+
# @param task_create_or_update [TaskCreateOrUpdate] The task object you are updating
|
1255
|
+
# @param [Hash] opts the optional parameters
|
1256
|
+
# @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
|
1257
|
+
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
1258
|
+
def update_task_with_http_info(xero_tenant_id, project_id, task_id, task_create_or_update, options = {})
|
1259
|
+
opts = options.dup
|
1260
|
+
if @api_client.config.debugging
|
1261
|
+
@api_client.config.logger.debug 'Calling API: ProjectApi.update_task ...'
|
1262
|
+
end
|
1263
|
+
# verify the required parameter 'xero_tenant_id' is set
|
1264
|
+
if @api_client.config.client_side_validation && xero_tenant_id.nil?
|
1265
|
+
fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling ProjectApi.update_task"
|
1266
|
+
end
|
1267
|
+
# verify the required parameter 'project_id' is set
|
1268
|
+
if @api_client.config.client_side_validation && project_id.nil?
|
1269
|
+
fail ArgumentError, "Missing the required parameter 'project_id' when calling ProjectApi.update_task"
|
1270
|
+
end
|
1271
|
+
# verify the required parameter 'task_id' is set
|
1272
|
+
if @api_client.config.client_side_validation && task_id.nil?
|
1273
|
+
fail ArgumentError, "Missing the required parameter 'task_id' when calling ProjectApi.update_task"
|
1274
|
+
end
|
1275
|
+
# verify the required parameter 'task_create_or_update' is set
|
1276
|
+
if @api_client.config.client_side_validation && task_create_or_update.nil?
|
1277
|
+
fail ArgumentError, "Missing the required parameter 'task_create_or_update' when calling ProjectApi.update_task"
|
1278
|
+
end
|
1279
|
+
# resource path
|
1280
|
+
local_var_path = '/Projects/{projectId}/Tasks/{taskId}'.sub('{' + 'projectId' + '}', project_id.to_s).sub('{' + 'taskId' + '}', task_id.to_s)
|
1281
|
+
|
1282
|
+
# camelize keys of incoming `where` opts
|
1283
|
+
opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
|
1284
|
+
|
1285
|
+
# query parameters
|
1286
|
+
query_params = opts[:query_params] || {}
|
1287
|
+
|
1288
|
+
# XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
|
1289
|
+
query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
|
1290
|
+
query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
|
1291
|
+
|
1292
|
+
# header parameters
|
1293
|
+
header_params = opts[:header_params] || {}
|
1294
|
+
# HTTP header 'Accept' (if needed)
|
1295
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
1296
|
+
# HTTP header 'Content-Type'
|
1297
|
+
header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
|
1298
|
+
header_params[:'Xero-Tenant-Id'] = xero_tenant_id
|
1299
|
+
header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
|
1300
|
+
|
1301
|
+
# form parameters
|
1302
|
+
form_params = opts[:form_params] || {}
|
1303
|
+
|
1304
|
+
# http body (model)
|
1305
|
+
post_body = opts[:body] || @api_client.object_to_http_body(task_create_or_update)
|
1306
|
+
|
1307
|
+
# return_type
|
1308
|
+
return_type = opts[:return_type]
|
1309
|
+
|
1310
|
+
# auth_names
|
1311
|
+
auth_names = opts[:auth_names] || ['OAuth2']
|
1312
|
+
|
1313
|
+
new_options = opts.merge(
|
1314
|
+
:header_params => header_params,
|
1315
|
+
:query_params => query_params,
|
1316
|
+
:form_params => form_params,
|
1317
|
+
:body => post_body,
|
1318
|
+
:auth_names => auth_names,
|
1319
|
+
:return_type => return_type
|
1320
|
+
)
|
1321
|
+
|
1322
|
+
data, status_code, headers = @api_client.call_api(:PUT, local_var_path, "ProjectApi", new_options)
|
1323
|
+
if @api_client.config.debugging
|
1324
|
+
@api_client.config.logger.debug "API called: ProjectApi#update_task\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
1325
|
+
end
|
1326
|
+
return data, status_code, headers
|
1327
|
+
end
|
1328
|
+
|
1050
1329
|
# Updates a time entry for a specific project
|
1051
1330
|
# Allows you to update time entry in a project
|
1052
1331
|
# @param xero_tenant_id [String] Xero identifier for Tenant
|
@@ -1054,6 +1333,7 @@ module XeroRuby
|
|
1054
1333
|
# @param time_entry_id [String] You can specify an individual time entry by appending the id to the endpoint
|
1055
1334
|
# @param time_entry_create_or_update [TimeEntryCreateOrUpdate] The time entry object you are updating
|
1056
1335
|
# @param [Hash] opts the optional parameters
|
1336
|
+
# @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
|
1057
1337
|
# @return [nil]
|
1058
1338
|
def update_time_entry(xero_tenant_id, project_id, time_entry_id, time_entry_create_or_update, opts = {})
|
1059
1339
|
update_time_entry_with_http_info(xero_tenant_id, project_id, time_entry_id, time_entry_create_or_update, opts)
|
@@ -1067,6 +1347,7 @@ module XeroRuby
|
|
1067
1347
|
# @param time_entry_id [String] You can specify an individual time entry by appending the id to the endpoint
|
1068
1348
|
# @param time_entry_create_or_update [TimeEntryCreateOrUpdate] The time entry object you are updating
|
1069
1349
|
# @param [Hash] opts the optional parameters
|
1350
|
+
# @option opts [String] :idempotency_key This allows you to safely retry requests without the risk of duplicate processing. 128 character max.
|
1070
1351
|
# @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
|
1071
1352
|
def update_time_entry_with_http_info(xero_tenant_id, project_id, time_entry_id, time_entry_create_or_update, options = {})
|
1072
1353
|
opts = options.dup
|
@@ -1104,9 +1385,12 @@ module XeroRuby
|
|
1104
1385
|
|
1105
1386
|
# header parameters
|
1106
1387
|
header_params = opts[:header_params] || {}
|
1388
|
+
# HTTP header 'Accept' (if needed)
|
1389
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
1107
1390
|
# HTTP header 'Content-Type'
|
1108
1391
|
header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
|
1109
1392
|
header_params[:'Xero-Tenant-Id'] = xero_tenant_id
|
1393
|
+
header_params[:'Idempotency-Key'] = opts[:'idempotency_key'] if !opts[:'idempotency_key'].nil?
|
1110
1394
|
|
1111
1395
|
# form parameters
|
1112
1396
|
form_params = opts[:form_params] || {}
|
data/lib/xero-ruby/api_client.rb
CHANGED
@@ -196,7 +196,12 @@ module XeroRuby
|
|
196
196
|
|
197
197
|
def decode_jwt(tkn, verify=true)
|
198
198
|
if verify == true
|
199
|
-
|
199
|
+
|
200
|
+
response = Faraday.get('https://identity.xero.com/.well-known/openid-configuration/jwks') do |req|
|
201
|
+
req.headers['User-Agent'] = @user_agent
|
202
|
+
end
|
203
|
+
|
204
|
+
jwks_data = JSON.parse(response.body)
|
200
205
|
jwk_set = JSON::JWK::Set.new(jwks_data)
|
201
206
|
JSON::JWT.decode(tkn, jwk_set)
|
202
207
|
else
|
@@ -230,6 +235,7 @@ module XeroRuby
|
|
230
235
|
response = Faraday.post("#{@config.token_url}#{path}") do |req|
|
231
236
|
req.headers['Authorization'] = "Basic " + Base64.strict_encode64("#{@client_id}:#{@client_secret}")
|
232
237
|
req.headers['Content-Type'] = 'application/x-www-form-urlencoded'
|
238
|
+
req.headers['User-Agent'] = @user_agent
|
233
239
|
req.body = URI.encode_www_form(data)
|
234
240
|
end
|
235
241
|
return_error(response) unless response.success?
|
@@ -251,7 +257,7 @@ module XeroRuby
|
|
251
257
|
end
|
252
258
|
|
253
259
|
def last_connection
|
254
|
-
connections.sort { |a,b| DateTime.parse(a['updatedDateUtc']) <=> DateTime.parse(b['updatedDateUtc'])}.
|
260
|
+
connections.sort { |a,b| DateTime.parse(a['updatedDateUtc']) <=> DateTime.parse(b['updatedDateUtc'])}.last
|
255
261
|
end
|
256
262
|
|
257
263
|
def disconnect(connection_id)
|
@@ -298,7 +304,7 @@ module XeroRuby
|
|
298
304
|
end
|
299
305
|
|
300
306
|
connection = Faraday.new(:url => method_base_url, :ssl => ssl_options) do |conn|
|
301
|
-
conn.request(:
|
307
|
+
conn.request(:authorization, :basic, config.username, config.password)
|
302
308
|
if opts[:header_params]["Content-Type"] == "multipart/form-data"
|
303
309
|
conn.request :multipart
|
304
310
|
conn.request :url_encoded
|
@@ -31,11 +31,7 @@ module XeroRuby::Accounting
|
|
31
31
|
REVENUE ||= "REVENUE".freeze
|
32
32
|
SALES ||= "SALES".freeze
|
33
33
|
TERMLIAB ||= "TERMLIAB".freeze
|
34
|
-
PAYGLIABILITY ||= "PAYGLIABILITY".freeze
|
35
34
|
PAYG ||= "PAYG".freeze
|
36
|
-
SUPERANNUATIONEXPENSE ||= "SUPERANNUATIONEXPENSE".freeze
|
37
|
-
SUPERANNUATIONLIABILITY ||= "SUPERANNUATIONLIABILITY".freeze
|
38
|
-
WAGESEXPENSE ||= "WAGESEXPENSE".freeze
|
39
35
|
|
40
36
|
# Builds the enum from string
|
41
37
|
# @param [String] The enum value in the form of the string
|
@@ -16,6 +16,9 @@ module XeroRuby::Accounting
|
|
16
16
|
require 'bigdecimal'
|
17
17
|
|
18
18
|
class Allocation
|
19
|
+
# Xero generated unique identifier
|
20
|
+
attr_accessor :allocation_id
|
21
|
+
|
19
22
|
|
20
23
|
attr_accessor :invoice
|
21
24
|
|
@@ -34,6 +37,9 @@ module XeroRuby::Accounting
|
|
34
37
|
# the date the allocation is applied YYYY-MM-DD.
|
35
38
|
attr_accessor :date
|
36
39
|
|
40
|
+
# A flag that returns true when the allocation is succesfully deleted
|
41
|
+
attr_accessor :is_deleted
|
42
|
+
|
37
43
|
# A string to indicate if a invoice status
|
38
44
|
attr_accessor :status_attribute_string
|
39
45
|
|
@@ -43,12 +49,14 @@ module XeroRuby::Accounting
|
|
43
49
|
# Attribute mapping from ruby-style variable name to JSON key.
|
44
50
|
def self.attribute_map
|
45
51
|
{
|
52
|
+
:'allocation_id' => :'AllocationID',
|
46
53
|
:'invoice' => :'Invoice',
|
47
54
|
:'overpayment' => :'Overpayment',
|
48
55
|
:'prepayment' => :'Prepayment',
|
49
56
|
:'credit_note' => :'CreditNote',
|
50
57
|
:'amount' => :'Amount',
|
51
58
|
:'date' => :'Date',
|
59
|
+
:'is_deleted' => :'IsDeleted',
|
52
60
|
:'status_attribute_string' => :'StatusAttributeString',
|
53
61
|
:'validation_errors' => :'ValidationErrors'
|
54
62
|
}
|
@@ -57,12 +65,14 @@ module XeroRuby::Accounting
|
|
57
65
|
# Attribute type mapping.
|
58
66
|
def self.openapi_types
|
59
67
|
{
|
68
|
+
:'allocation_id' => :'String',
|
60
69
|
:'invoice' => :'Invoice',
|
61
70
|
:'overpayment' => :'Overpayment',
|
62
71
|
:'prepayment' => :'Prepayment',
|
63
72
|
:'credit_note' => :'CreditNote',
|
64
73
|
:'amount' => :'BigDecimal',
|
65
74
|
:'date' => :'Date',
|
75
|
+
:'is_deleted' => :'Boolean',
|
66
76
|
:'status_attribute_string' => :'String',
|
67
77
|
:'validation_errors' => :'Array<ValidationError>'
|
68
78
|
}
|
@@ -83,6 +93,10 @@ module XeroRuby::Accounting
|
|
83
93
|
h[k.to_sym] = v
|
84
94
|
}
|
85
95
|
|
96
|
+
if attributes.key?(:'allocation_id')
|
97
|
+
self.allocation_id = attributes[:'allocation_id']
|
98
|
+
end
|
99
|
+
|
86
100
|
if attributes.key?(:'invoice')
|
87
101
|
self.invoice = attributes[:'invoice']
|
88
102
|
end
|
@@ -107,6 +121,10 @@ module XeroRuby::Accounting
|
|
107
121
|
self.date = attributes[:'date']
|
108
122
|
end
|
109
123
|
|
124
|
+
if attributes.key?(:'is_deleted')
|
125
|
+
self.is_deleted = attributes[:'is_deleted']
|
126
|
+
end
|
127
|
+
|
110
128
|
if attributes.key?(:'status_attribute_string')
|
111
129
|
self.status_attribute_string = attributes[:'status_attribute_string']
|
112
130
|
end
|
@@ -151,12 +169,14 @@ module XeroRuby::Accounting
|
|
151
169
|
def ==(o)
|
152
170
|
return true if self.equal?(o)
|
153
171
|
self.class == o.class &&
|
172
|
+
allocation_id == o.allocation_id &&
|
154
173
|
invoice == o.invoice &&
|
155
174
|
overpayment == o.overpayment &&
|
156
175
|
prepayment == o.prepayment &&
|
157
176
|
credit_note == o.credit_note &&
|
158
177
|
amount == o.amount &&
|
159
178
|
date == o.date &&
|
179
|
+
is_deleted == o.is_deleted &&
|
160
180
|
status_attribute_string == o.status_attribute_string &&
|
161
181
|
validation_errors == o.validation_errors
|
162
182
|
end
|
@@ -170,7 +190,7 @@ module XeroRuby::Accounting
|
|
170
190
|
# Calculates hash code according to all attributes.
|
171
191
|
# @return [Integer] Hash code
|
172
192
|
def hash
|
173
|
-
[invoice, overpayment, prepayment, credit_note, amount, date, status_attribute_string, validation_errors].hash
|
193
|
+
[allocation_id, invoice, overpayment, prepayment, credit_note, amount, date, is_deleted, status_attribute_string, validation_errors].hash
|
174
194
|
end
|
175
195
|
|
176
196
|
# Builds the object from hash
|
@@ -132,9 +132,9 @@ module XeroRuby::Accounting
|
|
132
132
|
:'payments' => :'Array<Payment>',
|
133
133
|
:'type' => :'String',
|
134
134
|
:'status' => :'String',
|
135
|
-
:'total_amount' => :'
|
135
|
+
:'total_amount' => :'BigDecimal',
|
136
136
|
:'updated_date_utc' => :'DateTime',
|
137
|
-
:'is_reconciled' => :'
|
137
|
+
:'is_reconciled' => :'Boolean',
|
138
138
|
:'validation_errors' => :'Array<ValidationError>'
|
139
139
|
}
|
140
140
|
end
|