xero-ruby 2.8.0 → 2.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +17 -29
- data/lib/xero-ruby.rb +1 -1
- data/lib/xero-ruby/api/files_api.rb +126 -17
- data/lib/xero-ruby/api/payroll_uk_api.rb +6 -12
- data/lib/xero-ruby/models/accounting/batch_payment.rb +16 -4
- data/lib/xero-ruby/models/accounting/import_summary_accounts.rb +8 -8
- data/lib/xero-ruby/models/files/{inline_object.rb → upload_object.rb} +18 -3
- data/lib/xero-ruby/models/payroll_nz/salary_and_wage.rb +3 -2
- data/lib/xero-ruby/models/payroll_nz/timesheet.rb +3 -2
- data/lib/xero-ruby/version.rb +2 -2
- data/spec/files/models/inline_object_spec.rb +3 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eec58bb28471c43b81d1bed37d1201cab4f323a15c16eef399c36f3d17b83c2f
|
4
|
+
data.tar.gz: ca0c2bcacb4cf2bdff3b21dd8942ff3fef968ce9dfa1aba7055409dd5b06125e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d647375ed88c3154a5bdcb1156c5da25ef1dd47c1d2d1485bfa4dd5326264d2d6d2e6cbaf11c98c7bfdc05aeec5a0acd3409a9c655ae8c1a6ea460320aa7123
|
7
|
+
data.tar.gz: 5bcef855ca40c2175d801820a0ae17920382db45033a774959e05a080ede1ff4769ad129e8b5dcda0f3ae7c95fa03a9e86c09c2b6012bba1e0745002fe79f92f
|
data/README.md
CHANGED
@@ -7,22 +7,18 @@ Xero Ruby SDK for OAuth 2.0 generated from [Xero API OpenAPI Spec](https://githu
|
|
7
7
|
Xero Ruby SDK supports Xero's OAuth2.0 authentication and the following Xero API sets.
|
8
8
|
|
9
9
|
## API Client Docs
|
10
|
-
|
10
|
+
|
11
|
+
* Core [Accounting Api Docs](https://xeroapi.github.io/xero-ruby/accounting/index.html)
|
12
|
+
---
|
11
13
|
* [Asset Api Docs](/docs/assets/AssetApi.md)
|
12
14
|
* [Project Api Docs](docs/projects/ProjectApi.md)
|
13
|
-
* [
|
15
|
+
* [Files Api Docs](docs/files/FileApi.md)
|
14
16
|
* [Payroll Docs (AU)](docs/payroll_au/PayrollAuApi.md)
|
15
17
|
* [Payroll Docs (NZ)](docs/payroll_nz/PayrollNzApi.md)
|
16
18
|
* [Payroll Docs (UK)](docs/payroll_uk/PayrollUkApi.md)
|
17
19
|
|
18
20
|
## API Model Docs
|
19
|
-
* [
|
20
|
-
* [Asset Models Docs](/docs/assets/)
|
21
|
-
* [Project Models Docs](/docs/projects/)
|
22
|
-
* [File Models Docs](/docs/files/)
|
23
|
-
* [Payroll Models (AU)](docs/payroll_au/)
|
24
|
-
* [Payroll Models (NZ)](docs/payroll_nz/)
|
25
|
-
* [Payroll Models (UK)](docs/payroll_uk/)
|
21
|
+
* [XeroRuby Models Docs](/docs/)
|
26
22
|
|
27
23
|
## Sample Apps
|
28
24
|
We have two apps showing SDK usage.
|
@@ -31,9 +27,6 @@ We have two apps showing SDK usage.
|
|
31
27
|
|
32
28
|

|
33
29
|
|
34
|
-
## Looking for OAuth 1.0a support?
|
35
|
-
Check out the [Xeroizer](https://github.com/waynerobinson/xeroizer) gem (maintained by community).
|
36
|
-
|
37
30
|
---
|
38
31
|
## Installation
|
39
32
|
To install this gem to your current gemset.
|
@@ -49,7 +42,7 @@ gem 'xero-ruby'
|
|
49
42
|
* Create a [free Xero user account](https://www.xero.com/us/signup/api/)
|
50
43
|
* Login to your Xero developer [/myapps](https://developer.xero.com/myapps) dashboard & create an API application and note your API app's credentials.
|
51
44
|
|
52
|
-
### Creating a
|
45
|
+
### Creating a client
|
53
46
|
* Get the credential values from an API application at https://developer.xero.com/myapps/.
|
54
47
|
* Include [neccesary scopes](https://developer.xero.com/documentation/oauth2/scopes) as a space-seperated list
|
55
48
|
* example => "`openid profile email accounting.transactions accounting.settings`"
|
@@ -77,10 +70,11 @@ To generate a valid `token_set` send a user to the `authorization_url`:
|
|
77
70
|
redirect_to @authorization_url
|
78
71
|
```
|
79
72
|
|
80
|
-
Xero will then redirect back to the URI defined in your
|
73
|
+
Xero will then redirect back to the URI defined in your `redirect_uri` config.
|
74
|
+
|
81
75
|
*This must match **exactly** with the variable in your /myapps dashboard.*
|
82
76
|
|
83
|
-
In your callback
|
77
|
+
In your callback, calling `get_token_set_from_callback` will exchange the temporary code Xero return, with a valid `token_set` that you can use to make API calls.
|
84
78
|
```ruby
|
85
79
|
# => http://localhost:3000/oauth/callback
|
86
80
|
|
@@ -93,11 +87,12 @@ puts params['state']
|
|
93
87
|
```
|
94
88
|
|
95
89
|
## Making API calls once you have a token_set
|
96
|
-
|
90
|
+
Once you already have a token_set stored from this initual user interaction, you can setup a new client by passing the whole token_set to `refresh_token_set` or `set_token_set`.
|
97
91
|
```ruby
|
98
|
-
xero_client.refresh_token_set(user.token_set)
|
99
|
-
|
100
92
|
xero_client.set_token_set(user.token_set)
|
93
|
+
|
94
|
+
xero_client.refresh_token_set(user.token_set)
|
95
|
+
# this will set the access_token on the client, and return a refreshed `token_set` you need to save.
|
101
96
|
```
|
102
97
|
A `token_set` contains data about your API connection most importantly :
|
103
98
|
* `access_token`
|
@@ -171,6 +166,7 @@ end
|
|
171
166
|
## API Usage
|
172
167
|
|
173
168
|
### Accounting API
|
169
|
+
> https://xeroapi.github.io/xero-ruby/accounting/index.html
|
174
170
|
```ruby
|
175
171
|
require 'xero-ruby'
|
176
172
|
|
@@ -179,8 +175,6 @@ xero_client.refresh_token_set(user.token_set)
|
|
179
175
|
tenant_id = user.active_tenant_id
|
180
176
|
# example of how to store the `tenantId` of the specific tenant (aka organisation)
|
181
177
|
|
182
|
-
# https://github.com/XeroAPI/xero-ruby/blob/master/accounting/lib/xero-ruby/api/accounting_api.rb
|
183
|
-
|
184
178
|
# Get Accounts
|
185
179
|
accounts = xero_client.accounting_api.get_accounts(tenant_id).accounts
|
186
180
|
|
@@ -208,10 +202,8 @@ attachment = xero_client.accounting_api.create_account_attachment_by_file_name(t
|
|
208
202
|
```
|
209
203
|
|
210
204
|
### Assets API
|
205
|
+
> https://github.com/XeroAPI/xero-ruby/blob/master/accounting/lib/xero-ruby/api/asset_api.rb
|
211
206
|
```ruby
|
212
|
-
# https://github.com/XeroAPI/xero-ruby/blob/master/accounting/lib/xero-ruby/api/asset_api.rb
|
213
|
-
|
214
|
-
# Create Asset
|
215
207
|
asset = {
|
216
208
|
"assetName": "AssetName: #{rand(10000)}",
|
217
209
|
"assetNumber": "Asset: #{rand(10000)}",
|
@@ -221,18 +213,14 @@ asset = xero_client.asset_api.create_asset(tenant_id, asset)
|
|
221
213
|
```
|
222
214
|
|
223
215
|
### Project API
|
216
|
+
> https://github.com/XeroAPI/xero-ruby/blob/master/docs/projects/ProjectApi.md
|
224
217
|
```ruby
|
225
|
-
# https://github.com/XeroAPI/xero-ruby/blob/master/docs/projects/ProjectApi.md
|
226
|
-
|
227
|
-
# Get Projects
|
228
218
|
projects = xero_client.project_api.get_projects(tenant_id).items
|
229
219
|
```
|
230
220
|
|
231
221
|
### Files API
|
222
|
+
> https://github.com/XeroAPI/xero-ruby/blob/master/docs/files/FileApi.md
|
232
223
|
```ruby
|
233
|
-
# https://github.com/XeroAPI/xero-ruby/blob/master/docs/files/FileApi.md
|
234
|
-
|
235
|
-
# Get Files
|
236
224
|
opts = {
|
237
225
|
pagesize: 50, # Integer | pass an optional page size value
|
238
226
|
page: 2, # Integer | number of records to skip for pagination
|
data/lib/xero-ruby.rb
CHANGED
@@ -290,9 +290,9 @@ require 'xero-ruby/models/files/file_object'
|
|
290
290
|
require 'xero-ruby/models/files/files'
|
291
291
|
require 'xero-ruby/models/files/folder'
|
292
292
|
require 'xero-ruby/models/files/folders'
|
293
|
-
require 'xero-ruby/models/files/inline_object'
|
294
293
|
require 'xero-ruby/models/files/object_group'
|
295
294
|
require 'xero-ruby/models/files/object_type'
|
295
|
+
require 'xero-ruby/models/files/upload_object'
|
296
296
|
require 'xero-ruby/models/files/user'
|
297
297
|
require 'xero-ruby/models/projects/amount'
|
298
298
|
require 'xero-ruby/models/projects/charge_type'
|
@@ -1176,30 +1176,28 @@ module XeroRuby
|
|
1176
1176
|
return data, status_code, headers
|
1177
1177
|
end
|
1178
1178
|
|
1179
|
-
# Uploads a File
|
1179
|
+
# Uploads a File to the inbox
|
1180
1180
|
# @param xero_tenant_id [String] Xero identifier for Tenant
|
1181
|
+
# @param body [String]
|
1182
|
+
# @param name [String] exact name of the file you are uploading
|
1183
|
+
# @param filename [String]
|
1181
1184
|
# @param [Hash] opts the optional parameters
|
1182
|
-
# @option opts [String] :folder_id pass an optional folder id to save file to specific folder
|
1183
|
-
# @option opts [String] :body
|
1184
|
-
# @option opts [String] :name exact name of the file you are uploading
|
1185
|
-
# @option opts [String] :filename
|
1186
1185
|
# @option opts [String] :mime_type
|
1187
1186
|
# @return [FileObject]
|
1188
|
-
def upload_file(xero_tenant_id, opts = {})
|
1189
|
-
data, _status_code, _headers = upload_file_with_http_info(xero_tenant_id, opts)
|
1187
|
+
def upload_file(xero_tenant_id, body, name, filename, opts = {})
|
1188
|
+
data, _status_code, _headers = upload_file_with_http_info(xero_tenant_id, body, name, filename, opts)
|
1190
1189
|
data
|
1191
1190
|
end
|
1192
1191
|
|
1193
|
-
# Uploads a File
|
1192
|
+
# Uploads a File to the inbox
|
1194
1193
|
# @param xero_tenant_id [String] Xero identifier for Tenant
|
1194
|
+
# @param body [String]
|
1195
|
+
# @param name [String] exact name of the file you are uploading
|
1196
|
+
# @param filename [String]
|
1195
1197
|
# @param [Hash] opts the optional parameters
|
1196
|
-
# @option opts [String] :folder_id pass an optional folder id to save file to specific folder
|
1197
|
-
# @option opts [String] :body
|
1198
|
-
# @option opts [String] :name exact name of the file you are uploading
|
1199
|
-
# @option opts [String] :filename
|
1200
1198
|
# @option opts [String] :mime_type
|
1201
1199
|
# @return [Array<(FileObject, Integer, Hash)>] FileObject data, response status code and response headers
|
1202
|
-
def upload_file_with_http_info(xero_tenant_id, opts = {})
|
1200
|
+
def upload_file_with_http_info(xero_tenant_id, body, name, filename, opts = {})
|
1203
1201
|
if @api_client.config.debugging
|
1204
1202
|
@api_client.config.logger.debug 'Calling API: FilesApi.upload_file ...'
|
1205
1203
|
end
|
@@ -1207,6 +1205,18 @@ module XeroRuby
|
|
1207
1205
|
if @api_client.config.client_side_validation && xero_tenant_id.nil?
|
1208
1206
|
fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling FilesApi.upload_file"
|
1209
1207
|
end
|
1208
|
+
# verify the required parameter 'body' is set
|
1209
|
+
if @api_client.config.client_side_validation && body.nil?
|
1210
|
+
fail ArgumentError, "Missing the required parameter 'body' when calling FilesApi.upload_file"
|
1211
|
+
end
|
1212
|
+
# verify the required parameter 'name' is set
|
1213
|
+
if @api_client.config.client_side_validation && name.nil?
|
1214
|
+
fail ArgumentError, "Missing the required parameter 'name' when calling FilesApi.upload_file"
|
1215
|
+
end
|
1216
|
+
# verify the required parameter 'filename' is set
|
1217
|
+
if @api_client.config.client_side_validation && filename.nil?
|
1218
|
+
fail ArgumentError, "Missing the required parameter 'filename' when calling FilesApi.upload_file"
|
1219
|
+
end
|
1210
1220
|
# resource path
|
1211
1221
|
local_var_path = '/Files'
|
1212
1222
|
|
@@ -1215,7 +1225,6 @@ module XeroRuby
|
|
1215
1225
|
|
1216
1226
|
# query parameters
|
1217
1227
|
query_params = opts[:query_params] || {}
|
1218
|
-
query_params[:'FolderId'] = opts[:'folder_id'] if !opts[:'folder_id'].nil?
|
1219
1228
|
|
1220
1229
|
# XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
|
1221
1230
|
query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
|
@@ -1231,9 +1240,9 @@ module XeroRuby
|
|
1231
1240
|
|
1232
1241
|
# form parameters
|
1233
1242
|
form_params = opts[:form_params] || {}
|
1234
|
-
form_params['body'] =
|
1235
|
-
form_params['name'] =
|
1236
|
-
form_params['filename'] =
|
1243
|
+
form_params['body'] = body
|
1244
|
+
form_params['name'] = name
|
1245
|
+
form_params['filename'] = filename
|
1237
1246
|
form_params['mimeType'] = opts[:'mime_type'] if !opts[:'mime_type'].nil?
|
1238
1247
|
|
1239
1248
|
# http body (model)
|
@@ -1260,5 +1269,105 @@ module XeroRuby
|
|
1260
1269
|
end
|
1261
1270
|
return data, status_code, headers
|
1262
1271
|
end
|
1272
|
+
|
1273
|
+
# Uploads a File to a specific folder
|
1274
|
+
# @param xero_tenant_id [String] Xero identifier for Tenant
|
1275
|
+
# @param folder_id [String] pass required folder id to save file to specific folder
|
1276
|
+
# @param body [String]
|
1277
|
+
# @param name [String] exact name of the file you are uploading
|
1278
|
+
# @param filename [String]
|
1279
|
+
# @param [Hash] opts the optional parameters
|
1280
|
+
# @option opts [String] :mime_type
|
1281
|
+
# @return [FileObject]
|
1282
|
+
def upload_file_to_folder(xero_tenant_id, folder_id, body, name, filename, opts = {})
|
1283
|
+
data, _status_code, _headers = upload_file_to_folder_with_http_info(xero_tenant_id, folder_id, body, name, filename, opts)
|
1284
|
+
data
|
1285
|
+
end
|
1286
|
+
|
1287
|
+
# Uploads a File to a specific folder
|
1288
|
+
# @param xero_tenant_id [String] Xero identifier for Tenant
|
1289
|
+
# @param folder_id [String] pass required folder id to save file to specific folder
|
1290
|
+
# @param body [String]
|
1291
|
+
# @param name [String] exact name of the file you are uploading
|
1292
|
+
# @param filename [String]
|
1293
|
+
# @param [Hash] opts the optional parameters
|
1294
|
+
# @option opts [String] :mime_type
|
1295
|
+
# @return [Array<(FileObject, Integer, Hash)>] FileObject data, response status code and response headers
|
1296
|
+
def upload_file_to_folder_with_http_info(xero_tenant_id, folder_id, body, name, filename, opts = {})
|
1297
|
+
if @api_client.config.debugging
|
1298
|
+
@api_client.config.logger.debug 'Calling API: FilesApi.upload_file_to_folder ...'
|
1299
|
+
end
|
1300
|
+
# verify the required parameter 'xero_tenant_id' is set
|
1301
|
+
if @api_client.config.client_side_validation && xero_tenant_id.nil?
|
1302
|
+
fail ArgumentError, "Missing the required parameter 'xero_tenant_id' when calling FilesApi.upload_file_to_folder"
|
1303
|
+
end
|
1304
|
+
# verify the required parameter 'folder_id' is set
|
1305
|
+
if @api_client.config.client_side_validation && folder_id.nil?
|
1306
|
+
fail ArgumentError, "Missing the required parameter 'folder_id' when calling FilesApi.upload_file_to_folder"
|
1307
|
+
end
|
1308
|
+
# verify the required parameter 'body' is set
|
1309
|
+
if @api_client.config.client_side_validation && body.nil?
|
1310
|
+
fail ArgumentError, "Missing the required parameter 'body' when calling FilesApi.upload_file_to_folder"
|
1311
|
+
end
|
1312
|
+
# verify the required parameter 'name' is set
|
1313
|
+
if @api_client.config.client_side_validation && name.nil?
|
1314
|
+
fail ArgumentError, "Missing the required parameter 'name' when calling FilesApi.upload_file_to_folder"
|
1315
|
+
end
|
1316
|
+
# verify the required parameter 'filename' is set
|
1317
|
+
if @api_client.config.client_side_validation && filename.nil?
|
1318
|
+
fail ArgumentError, "Missing the required parameter 'filename' when calling FilesApi.upload_file_to_folder"
|
1319
|
+
end
|
1320
|
+
# resource path
|
1321
|
+
local_var_path = '/Files/{FolderId}'.sub('{' + 'FolderId' + '}', folder_id.to_s)
|
1322
|
+
|
1323
|
+
# camelize keys of incoming `where` opts
|
1324
|
+
opts[:'where'] = @api_client.parameterize_where(opts[:'where']) if !opts[:'where'].nil?
|
1325
|
+
|
1326
|
+
# query parameters
|
1327
|
+
query_params = opts[:query_params] || {}
|
1328
|
+
|
1329
|
+
# XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
|
1330
|
+
query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
|
1331
|
+
query_params[:'ContactIDs'] = @api_client.build_collection_param(opts[:'contact_ids'], :csv) if !opts[:'contact_ids'].nil?
|
1332
|
+
|
1333
|
+
# header parameters
|
1334
|
+
header_params = opts[:header_params] || {}
|
1335
|
+
# HTTP header 'Accept' (if needed)
|
1336
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
1337
|
+
# HTTP header 'Content-Type'
|
1338
|
+
header_params['Content-Type'] = @api_client.select_header_content_type(['multipart/form-data'])
|
1339
|
+
header_params[:'xero-tenant-id'] = xero_tenant_id
|
1340
|
+
|
1341
|
+
# form parameters
|
1342
|
+
form_params = opts[:form_params] || {}
|
1343
|
+
form_params['body'] = body
|
1344
|
+
form_params['name'] = name
|
1345
|
+
form_params['filename'] = filename
|
1346
|
+
form_params['mimeType'] = opts[:'mime_type'] if !opts[:'mime_type'].nil?
|
1347
|
+
|
1348
|
+
# http body (model)
|
1349
|
+
post_body = opts[:body]
|
1350
|
+
|
1351
|
+
# return_type
|
1352
|
+
return_type = opts[:return_type] || 'FileObject'
|
1353
|
+
|
1354
|
+
# auth_names
|
1355
|
+
auth_names = opts[:auth_names] || ['OAuth2']
|
1356
|
+
|
1357
|
+
new_options = opts.merge(
|
1358
|
+
:header_params => header_params,
|
1359
|
+
:query_params => query_params,
|
1360
|
+
:form_params => form_params,
|
1361
|
+
:body => post_body,
|
1362
|
+
:auth_names => auth_names,
|
1363
|
+
:return_type => return_type
|
1364
|
+
)
|
1365
|
+
|
1366
|
+
data, status_code, headers = @api_client.call_api(:POST, local_var_path, "FilesApi", new_options)
|
1367
|
+
if @api_client.config.debugging
|
1368
|
+
@api_client.config.logger.debug "API called: FilesApi#upload_file_to_folder\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
1369
|
+
end
|
1370
|
+
return data, status_code, headers
|
1371
|
+
end
|
1263
1372
|
end
|
1264
1373
|
end
|
@@ -3548,8 +3548,7 @@ module XeroRuby
|
|
3548
3548
|
# Retrieves employees
|
3549
3549
|
# @param xero_tenant_id [String] Xero identifier for Tenant
|
3550
3550
|
# @param [Hash] opts the optional parameters
|
3551
|
-
# @option opts [String] :
|
3552
|
-
# @option opts [String] :last_name Filter by last name
|
3551
|
+
# @option opts [String] :filter Filter by first name and/or lastname
|
3553
3552
|
# @option opts [Integer] :page Page number which specifies the set of records to retrieve. By default the number of the records per set is 100.
|
3554
3553
|
# @return [Employees]
|
3555
3554
|
def get_employees(xero_tenant_id, opts = {})
|
@@ -3560,8 +3559,7 @@ module XeroRuby
|
|
3560
3559
|
# Retrieves employees
|
3561
3560
|
# @param xero_tenant_id [String] Xero identifier for Tenant
|
3562
3561
|
# @param [Hash] opts the optional parameters
|
3563
|
-
# @option opts [String] :
|
3564
|
-
# @option opts [String] :last_name Filter by last name
|
3562
|
+
# @option opts [String] :filter Filter by first name and/or lastname
|
3565
3563
|
# @option opts [Integer] :page Page number which specifies the set of records to retrieve. By default the number of the records per set is 100.
|
3566
3564
|
# @return [Array<(Employees, Integer, Hash)>] Employees data, response status code and response headers
|
3567
3565
|
def get_employees_with_http_info(xero_tenant_id, opts = {})
|
@@ -3580,8 +3578,7 @@ module XeroRuby
|
|
3580
3578
|
|
3581
3579
|
# query parameters
|
3582
3580
|
query_params = opts[:query_params] || {}
|
3583
|
-
query_params[:'
|
3584
|
-
query_params[:'lastName'] = opts[:'last_name'] if !opts[:'last_name'].nil?
|
3581
|
+
query_params[:'filter'] = opts[:'filter'] if !opts[:'filter'].nil?
|
3585
3582
|
query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
|
3586
3583
|
|
3587
3584
|
# XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
|
@@ -4587,8 +4584,7 @@ module XeroRuby
|
|
4587
4584
|
# @param xero_tenant_id [String] Xero identifier for Tenant
|
4588
4585
|
# @param [Hash] opts the optional parameters
|
4589
4586
|
# @option opts [Integer] :page Page number which specifies the set of records to retrieve. By default the number of the records per set is 100.
|
4590
|
-
# @option opts [String] :
|
4591
|
-
# @option opts [String] :payroll_calendar_id By default get Timesheets will return all the timesheets for an organization. You can add GET https://…/timesheets?filter=payrollCalendarId=={PayrollCalendarID} to filter the timesheets by payroll calendar id
|
4587
|
+
# @option opts [String] :filter Filter by first name and/or lastname
|
4592
4588
|
# @return [Timesheets]
|
4593
4589
|
def get_timesheets(xero_tenant_id, opts = {})
|
4594
4590
|
data, _status_code, _headers = get_timesheets_with_http_info(xero_tenant_id, opts)
|
@@ -4599,8 +4595,7 @@ module XeroRuby
|
|
4599
4595
|
# @param xero_tenant_id [String] Xero identifier for Tenant
|
4600
4596
|
# @param [Hash] opts the optional parameters
|
4601
4597
|
# @option opts [Integer] :page Page number which specifies the set of records to retrieve. By default the number of the records per set is 100.
|
4602
|
-
# @option opts [String] :
|
4603
|
-
# @option opts [String] :payroll_calendar_id By default get Timesheets will return all the timesheets for an organization. You can add GET https://…/timesheets?filter=payrollCalendarId=={PayrollCalendarID} to filter the timesheets by payroll calendar id
|
4598
|
+
# @option opts [String] :filter Filter by first name and/or lastname
|
4604
4599
|
# @return [Array<(Timesheets, Integer, Hash)>] Timesheets data, response status code and response headers
|
4605
4600
|
def get_timesheets_with_http_info(xero_tenant_id, opts = {})
|
4606
4601
|
if @api_client.config.debugging
|
@@ -4619,8 +4614,7 @@ module XeroRuby
|
|
4619
4614
|
# query parameters
|
4620
4615
|
query_params = opts[:query_params] || {}
|
4621
4616
|
query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
|
4622
|
-
query_params[:'
|
4623
|
-
query_params[:'payrollCalendarId'] = opts[:'payroll_calendar_id'] if !opts[:'payroll_calendar_id'].nil?
|
4617
|
+
query_params[:'filter'] = opts[:'filter'] if !opts[:'filter'].nil?
|
4624
4618
|
|
4625
4619
|
# XeroAPI's `IDs` convention openapi-generator does not snake_case properly.. manual over-riding `i_ds` malformations:
|
4626
4620
|
query_params[:'IDs'] = @api_client.build_collection_param(opts[:'ids'], :csv) if !opts[:'ids'].nil?
|
@@ -68,6 +68,9 @@ module XeroRuby::Accounting
|
|
68
68
|
# Booelan that tells you if the batch payment has been reconciled (read-only)
|
69
69
|
attr_accessor :is_reconciled
|
70
70
|
|
71
|
+
# Displays array of validation error messages from the API
|
72
|
+
attr_accessor :validation_errors
|
73
|
+
|
71
74
|
class EnumAttributeValidator
|
72
75
|
attr_reader :datatype
|
73
76
|
attr_reader :allowable_values
|
@@ -108,7 +111,8 @@ module XeroRuby::Accounting
|
|
108
111
|
:'status' => :'Status',
|
109
112
|
:'total_amount' => :'TotalAmount',
|
110
113
|
:'updated_date_utc' => :'UpdatedDateUTC',
|
111
|
-
:'is_reconciled' => :'IsReconciled'
|
114
|
+
:'is_reconciled' => :'IsReconciled',
|
115
|
+
:'validation_errors' => :'ValidationErrors'
|
112
116
|
}
|
113
117
|
end
|
114
118
|
|
@@ -130,7 +134,8 @@ module XeroRuby::Accounting
|
|
130
134
|
:'status' => :'String',
|
131
135
|
:'total_amount' => :'String',
|
132
136
|
:'updated_date_utc' => :'DateTime',
|
133
|
-
:'is_reconciled' => :'String'
|
137
|
+
:'is_reconciled' => :'String',
|
138
|
+
:'validation_errors' => :'Array<ValidationError>'
|
134
139
|
}
|
135
140
|
end
|
136
141
|
|
@@ -214,6 +219,12 @@ module XeroRuby::Accounting
|
|
214
219
|
if attributes.key?(:'is_reconciled')
|
215
220
|
self.is_reconciled = attributes[:'is_reconciled']
|
216
221
|
end
|
222
|
+
|
223
|
+
if attributes.key?(:'validation_errors')
|
224
|
+
if (value = attributes[:'validation_errors']).is_a?(Array)
|
225
|
+
self.validation_errors = value
|
226
|
+
end
|
227
|
+
end
|
217
228
|
end
|
218
229
|
|
219
230
|
# Show invalid properties with the reasons. Usually used together with valid?
|
@@ -333,7 +344,8 @@ module XeroRuby::Accounting
|
|
333
344
|
status == o.status &&
|
334
345
|
total_amount == o.total_amount &&
|
335
346
|
updated_date_utc == o.updated_date_utc &&
|
336
|
-
is_reconciled == o.is_reconciled
|
347
|
+
is_reconciled == o.is_reconciled &&
|
348
|
+
validation_errors == o.validation_errors
|
337
349
|
end
|
338
350
|
|
339
351
|
# @see the `==` method
|
@@ -345,7 +357,7 @@ module XeroRuby::Accounting
|
|
345
357
|
# Calculates hash code according to all attributes.
|
346
358
|
# @return [Integer] Hash code
|
347
359
|
def hash
|
348
|
-
[account, reference, particulars, code, details, narrative, batch_payment_id, date_string, date, amount, payments, type, status, total_amount, updated_date_utc, is_reconciled].hash
|
360
|
+
[account, reference, particulars, code, details, narrative, batch_payment_id, date_string, date, amount, payments, type, status, total_amount, updated_date_utc, is_reconciled, validation_errors].hash
|
349
361
|
end
|
350
362
|
|
351
363
|
# Builds the object from hash
|
@@ -62,15 +62,15 @@ module XeroRuby::Accounting
|
|
62
62
|
# Attribute type mapping.
|
63
63
|
def self.openapi_types
|
64
64
|
{
|
65
|
-
:'total' => :'
|
66
|
-
:'new' => :'
|
67
|
-
:'updated' => :'
|
68
|
-
:'deleted' => :'
|
69
|
-
:'locked' => :'
|
70
|
-
:'system' => :'
|
71
|
-
:'errored' => :'
|
65
|
+
:'total' => :'Integer',
|
66
|
+
:'new' => :'Integer',
|
67
|
+
:'updated' => :'Integer',
|
68
|
+
:'deleted' => :'Integer',
|
69
|
+
:'locked' => :'Integer',
|
70
|
+
:'system' => :'Integer',
|
71
|
+
:'errored' => :'Integer',
|
72
72
|
:'present' => :'Boolean',
|
73
|
-
:'new_or_updated' => :'
|
73
|
+
:'new_or_updated' => :'Integer'
|
74
74
|
}
|
75
75
|
end
|
76
76
|
|
@@ -15,7 +15,7 @@ require 'date'
|
|
15
15
|
module XeroRuby::Files
|
16
16
|
require 'bigdecimal'
|
17
17
|
|
18
|
-
class
|
18
|
+
class UploadObject
|
19
19
|
|
20
20
|
attr_accessor :body
|
21
21
|
|
@@ -52,13 +52,13 @@ module XeroRuby::Files
|
|
52
52
|
# @param [Hash] attributes Model attributes in the form of hash
|
53
53
|
def initialize(attributes = {})
|
54
54
|
if (!attributes.is_a?(Hash))
|
55
|
-
fail ArgumentError, "The input argument (attributes) must be a hash in `XeroRuby::Files::
|
55
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `XeroRuby::Files::UploadObject` initialize method"
|
56
56
|
end
|
57
57
|
|
58
58
|
# check to see if the attribute exists and convert string to symbol for hash key
|
59
59
|
attributes = attributes.each_with_object({}) { |(k, v), h|
|
60
60
|
if (!self.class.attribute_map.key?(k.to_sym))
|
61
|
-
fail ArgumentError, "`#{k}` is not a valid attribute in `XeroRuby::Files::
|
61
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `XeroRuby::Files::UploadObject`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
|
62
62
|
end
|
63
63
|
h[k.to_sym] = v
|
64
64
|
}
|
@@ -84,12 +84,27 @@ module XeroRuby::Files
|
|
84
84
|
# @return Array for valid properties with the reasons
|
85
85
|
def list_invalid_properties
|
86
86
|
invalid_properties = Array.new
|
87
|
+
if @body.nil?
|
88
|
+
invalid_properties.push('invalid value for "body", body cannot be nil.')
|
89
|
+
end
|
90
|
+
|
91
|
+
if @name.nil?
|
92
|
+
invalid_properties.push('invalid value for "name", name cannot be nil.')
|
93
|
+
end
|
94
|
+
|
95
|
+
if @filename.nil?
|
96
|
+
invalid_properties.push('invalid value for "filename", filename cannot be nil.')
|
97
|
+
end
|
98
|
+
|
87
99
|
invalid_properties
|
88
100
|
end
|
89
101
|
|
90
102
|
# Check to see if the all the properties in the model are valid
|
91
103
|
# @return true if the model is valid
|
92
104
|
def valid?
|
105
|
+
return false if @body.nil?
|
106
|
+
return false if @name.nil?
|
107
|
+
return false if @filename.nil?
|
93
108
|
true
|
94
109
|
end
|
95
110
|
|
@@ -44,6 +44,7 @@ module XeroRuby::PayrollNz
|
|
44
44
|
attr_accessor :status
|
45
45
|
ACTIVE = "Active".freeze
|
46
46
|
PENDING = "Pending".freeze
|
47
|
+
HISTORY = "History".freeze
|
47
48
|
|
48
49
|
# The type of the payment of the corresponding salary and wages
|
49
50
|
attr_accessor :payment_type
|
@@ -204,7 +205,7 @@ module XeroRuby::PayrollNz
|
|
204
205
|
return false if @effective_from.nil?
|
205
206
|
return false if @annual_salary.nil?
|
206
207
|
return false if @status.nil?
|
207
|
-
status_validator = EnumAttributeValidator.new('String', ["Active", "Pending"])
|
208
|
+
status_validator = EnumAttributeValidator.new('String', ["Active", "Pending", "History"])
|
208
209
|
return false unless status_validator.valid?(@status)
|
209
210
|
return false if @payment_type.nil?
|
210
211
|
payment_type_validator = EnumAttributeValidator.new('String', ["Salary", "Hourly"])
|
@@ -215,7 +216,7 @@ module XeroRuby::PayrollNz
|
|
215
216
|
# Custom attribute writer method checking allowed values (enum).
|
216
217
|
# @param [Object] status Object to be assigned
|
217
218
|
def status=(status)
|
218
|
-
validator = EnumAttributeValidator.new('String', ["Active", "Pending"])
|
219
|
+
validator = EnumAttributeValidator.new('String', ["Active", "Pending", "History"])
|
219
220
|
unless validator.valid?(status)
|
220
221
|
fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
|
221
222
|
end
|
@@ -36,6 +36,7 @@ module XeroRuby::PayrollNz
|
|
36
36
|
DRAFT = "Draft".freeze
|
37
37
|
APPROVED = "Approved".freeze
|
38
38
|
COMPLETED = "Completed".freeze
|
39
|
+
REQUESTED = "Requested".freeze
|
39
40
|
|
40
41
|
# The Total Hours of the Timesheet
|
41
42
|
attr_accessor :total_hours
|
@@ -182,7 +183,7 @@ module XeroRuby::PayrollNz
|
|
182
183
|
return false if @employee_id.nil?
|
183
184
|
return false if @start_date.nil?
|
184
185
|
return false if @end_date.nil?
|
185
|
-
status_validator = EnumAttributeValidator.new('String', ["Draft", "Approved", "Completed"])
|
186
|
+
status_validator = EnumAttributeValidator.new('String', ["Draft", "Approved", "Completed", "Requested"])
|
186
187
|
return false unless status_validator.valid?(@status)
|
187
188
|
true
|
188
189
|
end
|
@@ -190,7 +191,7 @@ module XeroRuby::PayrollNz
|
|
190
191
|
# Custom attribute writer method checking allowed values (enum).
|
191
192
|
# @param [Object] status Object to be assigned
|
192
193
|
def status=(status)
|
193
|
-
validator = EnumAttributeValidator.new('String', ["Draft", "Approved", "Completed"])
|
194
|
+
validator = EnumAttributeValidator.new('String', ["Draft", "Approved", "Completed", "Requested"])
|
194
195
|
unless validator.valid?(status)
|
195
196
|
fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
|
196
197
|
end
|
data/lib/xero-ruby/version.rb
CHANGED
@@ -7,9 +7,9 @@ Contact: api@xero.com
|
|
7
7
|
Generated by: https://openapi-generator.tech
|
8
8
|
OpenAPI Generator version: 4.3.1
|
9
9
|
|
10
|
-
The version of the XeroOpenAPI document: 2.
|
10
|
+
The version of the XeroOpenAPI document: 2.10.3
|
11
11
|
=end
|
12
12
|
|
13
13
|
module XeroRuby
|
14
|
-
VERSION = '2.8.
|
14
|
+
VERSION = '2.8.1'
|
15
15
|
end
|
@@ -14,13 +14,13 @@ require 'spec_helper'
|
|
14
14
|
require 'json'
|
15
15
|
require 'date'
|
16
16
|
|
17
|
-
# Unit tests for XeroRuby::Files::
|
17
|
+
# Unit tests for XeroRuby::Files::FileObject
|
18
18
|
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
19
19
|
# Please update as you see appropriate
|
20
20
|
describe 'InlineObject' do
|
21
21
|
before do
|
22
22
|
# run before each test
|
23
|
-
@instance = XeroRuby::Files::
|
23
|
+
@instance = XeroRuby::Files::FileObject.new
|
24
24
|
end
|
25
25
|
|
26
26
|
after do
|
@@ -29,7 +29,7 @@ describe 'InlineObject' do
|
|
29
29
|
|
30
30
|
describe 'test an instance of InlineObject' do
|
31
31
|
it 'should create an instance of InlineObject' do
|
32
|
-
expect(@instance).to be_instance_of(XeroRuby::Files::
|
32
|
+
expect(@instance).to be_instance_of(XeroRuby::Files::FileObject)
|
33
33
|
end
|
34
34
|
end
|
35
35
|
describe 'test attribute "body"' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xero-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.8.
|
4
|
+
version: 2.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Xero API Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-03-
|
11
|
+
date: 2021-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -232,9 +232,9 @@ files:
|
|
232
232
|
- lib/xero-ruby/models/files/files.rb
|
233
233
|
- lib/xero-ruby/models/files/folder.rb
|
234
234
|
- lib/xero-ruby/models/files/folders.rb
|
235
|
-
- lib/xero-ruby/models/files/inline_object.rb
|
236
235
|
- lib/xero-ruby/models/files/object_group.rb
|
237
236
|
- lib/xero-ruby/models/files/object_type.rb
|
237
|
+
- lib/xero-ruby/models/files/upload_object.rb
|
238
238
|
- lib/xero-ruby/models/files/user.rb
|
239
239
|
- lib/xero-ruby/models/payroll_au/account.rb
|
240
240
|
- lib/xero-ruby/models/payroll_au/account_type.rb
|