tripletex_ruby_client 1.0.4 → 1.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a9445abae75f90c7ef39e1bf730db40fa55570bd8c9abacb300273ff0d7acb77
4
- data.tar.gz: 2ef8251586c54308a491079a4fa9ff11ebdd59d9db4b7170d5aae2e71d941eec
3
+ metadata.gz: 5cc5ed9deb0b1961f486d3dcdda1dfc0947d05a279bbcbe4b50cb41d70e45e6b
4
+ data.tar.gz: c8aadc530518cded2246f000c85dd78eaee27fd0375b6f935ec06901d5c7e25b
5
5
  SHA512:
6
- metadata.gz: 78017d209dbdc274b553b3996bd55426a113e076ed93c6382ff529ca5d7795c443a953bb7fcdfa81749a8c32fa2714879ac5271cdcc6f8ed59f818d61bb26241
7
- data.tar.gz: ec465b46e4b7f924589fefa09dd1cd9b8b535a50fac671d6cd64e73552df11aaf8773d293c1bd1a5ec18cde04c7be3f1060aee591e486377fe64334e44929849
6
+ metadata.gz: 8d37586cee50ae446fbcf6669578d16274cbf9c8321bf0d1402560fab14dc1bcb89d41f66f7d290c50ef443574e9a553bbea50281ecab62637170251388ab3f8
7
+ data.tar.gz: 41001b1d23ab2334ed0b59b3d29b2dd1b095a6b1c4cf3eebe01cc21aeed6ce23da8db1a4d838052e9875f7c18f0fc8d60c58223f2a4a815c60156734522aa8e5
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tripletex_ruby_client (1.0.3)
4
+ tripletex_ruby_client (1.0.6)
5
5
  addressable (~> 2.3, >= 2.3.0)
6
6
  json (~> 2.1, >= 2.1.0)
7
7
  typhoeus (~> 1.0, >= 1.0.1)
@@ -14,18 +14,18 @@ GEM
14
14
  public_suffix (>= 2.0.2, < 5.0)
15
15
  autotest (4.4.6)
16
16
  ZenTest (>= 4.4.1)
17
- autotest-fsevent (0.2.18)
17
+ autotest-fsevent (0.2.20)
18
18
  sys-uname
19
19
  autotest-growl (0.2.16)
20
20
  autotest-rails-pure (4.1.2)
21
21
  crack (0.4.5)
22
22
  rexml
23
23
  diff-lcs (1.4.4)
24
- ethon (0.15.0)
24
+ ethon (0.16.0)
25
25
  ffi (>= 1.15.0)
26
- ffi (1.15.4)
26
+ ffi (1.15.5)
27
27
  hashdiff (1.0.1)
28
- json (2.6.1)
28
+ json (2.6.3)
29
29
  public_suffix (4.0.6)
30
30
  rake (12.3.3)
31
31
  rexml (3.2.5)
data/README.md CHANGED
@@ -4,7 +4,11 @@ TripletexRubyClient - the Ruby gem for the Tripletex API, at the courtesy of Rub
4
4
 
5
5
  Used in production.
6
6
 
7
- This was built using swagger-codegen first, from [https://tripletex.no/v2-docs/](https://tripletex.no/v2-docs/), but it didn't work out of the box.
7
+ This was built using swagger-codegen first, from [https://tripletex.no/v2-docs/](https://tripletex.no/v2-docs/), then changed manually for it to work.
8
+
9
+ To help make it better, fork it and create Pull Request, thanks !
10
+
11
+ Team Rubynor
8
12
 
9
13
  ## Getting Started
10
14
 
@@ -3,7 +3,7 @@
3
3
 
4
4
  ### Usage - **Download the spec** [swagger.json](/v2/swagger.json) file, it is a [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification). - **Generating a client** can easily be done using tools like [swagger-codegen](https://github.com/swagger-api/swagger-codegen) or other that accepts [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification) specs. - For swagger codegen it is recommended to use the flag: **--removeOperationIdPrefix**. Unique operation ids are about to be introduced to the spec, and this ensures forward compatibility - and results in less verbose generated code. ## Overview - Partial resource updating is done using the `PUT` method with optional fields instead of the `PATCH` method. - **Actions** or **commands** are represented in our RESTful path with a prefixed `:`. Example: `/v2/hours/123/:approve`. - **Summaries** or **aggregated** results are represented in our RESTful path with a prefixed `>`. Example: `/v2/hours/>thisWeeksBillables`. - **Request ID** is a key found in all responses in the header with the name `x-tlx-request-id`. For validation and error responses it is also in the response body. If additional log information is absolutely necessary, our support division can locate the key value. - **version** This is a revision number found on all persisted resources. If included, it will prevent your PUT/POST from overriding any updates to the resource since your GET. - **Date** follows the **[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)** standard, meaning the format `YYYY-MM-DD`. - **DateTime** follows the **[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)** standard, meaning the format `YYYY-MM-DDThh:mm:ss`. - **Searching** is done by entering values in the optional fields for each API call. The values fall into the following categories: range, in, exact and like. - **Missing fields** or even **no response data** can occur because result objects and fields are filtered on authorization. - **See [GitHub](https://github.com/Tripletex/tripletex-api2) for more documentation, examples, changelog and more.** - **See [FAQ](https://tripletex.no/execute/docViewer?articleId=906&language=0) for additional information.** ## Authentication - **Tokens:** The Tripletex API uses 3 different tokens - **consumerToken** is a token provided to the consumer by Tripletex after the API 2.0 registration is completed. - **employeeToken** is a token created by an administrator in your Tripletex account via the user settings and the tab \"API access\". Each employee token must be given a set of entitlements. [Read more here.](https://tripletex.no/execute/docViewer?articleId=1505&languageId=0) - **sessionToken** is the token from `/token/session/:create` which requires a consumerToken and an employeeToken created with the same consumer token, but not an authentication header. - **Authentication** is done via [Basic access authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) - **username** is used to specify what company to access. - `0` or blank means the company of the employee. - Any other value means accountant clients. Use `/company/>withLoginAccess` to get a list of those. - **password** is the **sessionToken**. - If you need to create the header yourself use `Authorization: Basic <encoded token>` where `encoded token` is the string `<target company id or 0>:<your session token>` Base64 encoded. ## Tags - `[BETA]` This is a beta endpoint and can be subject to change. - `[DEPRECATED]` Deprecated means that we intend to remove/change this feature or capability in a future \"major\" API release. We therefore discourage all use of this feature/capability. ## Fields Use the `fields` parameter to specify which fields should be returned. This also supports fields from sub elements, done via `<field>(<subResourceFields>)`. `*` means all fields for that resource. Example values: - `project,activity,hours` returns `{project:..., activity:...., hours:...}`. - just `project` returns `\"project\" : { \"id\": 12345, \"url\": \"tripletex.no/v2/projects/12345\" }`. - `project(*)` returns `\"project\" : { \"id\": 12345 \"name\":\"ProjectName\" \"number.....startDate\": \"2013-01-07\" }`. - `project(name)` returns `\"project\" : { \"name\":\"ProjectName\" }`. - All resources and some subResources : `*,activity(name),employee(*)`. ## Sorting Use the `sorting` parameter to specify sorting. It takes a comma separated list, where a `-` prefix denotes descending. You can sort by sub object with the following format: `<field>.<subObjectField>`. Example values: - `date` - `project.name` - `project.name, -date` ## Changes To get the changes for a resource, `changes` have to be explicitly specified as part of the `fields` parameter, e.g. `*,changes`. There are currently two types of change available: - `CREATE` for when the resource was created - `UPDATE` for when the resource was updated **NOTE** > For objects created prior to October 24th 2018 the list may be incomplete, but will always contain the CREATE and the last change (if the object has been changed after creation). ## Rate limiting Rate limiting is performed on the API calls for an employee for each API consumer. Status regarding the rate limit is returned as headers: - `X-Rate-Limit-Limit` - The number of allowed requests in the current period. - `X-Rate-Limit-Remaining` - The number of remaining requests. - `X-Rate-Limit-Reset` - The number of seconds left in the current period. Once the rate limit is hit, all requests will return HTTP status code `429` for the remainder of the current period. ## Response envelope #### Multiple values ```json { \"fullResultSize\": ###, // {number} [DEPRECATED] \"from\": ###, // {number} Paging starting from \"count\": ###, // {number} Paging count \"versionDigest\": \"###\", // {string} Hash of full result, null if no result \"values\": [...{...object...},{...object...},{...object...}...] } ``` #### Single value ```json { \"value\": {...single object...} } ``` ## WebHook envelope ```json { \"subscriptionId\": ###, // Subscription id \"event\": \"object.verb\", // As listed from /v2/event/ \"id\": ###, // Id of object this event is for \"value\": {... single object, null if object.deleted ...} } ``` ## Error/warning envelope ```json { \"status\": ###, // {number} HTTP status code \"code\": #####, // {number} internal status code of event \"message\": \"###\", // {string} Basic feedback message in your language \"link\": \"###\", // {string} Link to doc \"developerMessage\": \"###\", // {string} More technical message \"validationMessages\": [ // {array} List of validation messages, can be null { \"field\": \"###\", // {string} Name of field \"message\": \"###\" // {string} Validation message for field } ], \"requestId\": \"###\" // {string} Same as x-tlx-request-id } ``` ## Status codes / Error codes - **200 OK** - **201 Created** - From POSTs that create something new. - **204 No Content** - When there is no answer, ex: \"/:anAction\" or DELETE. - **400 Bad request** - - **4000** Bad Request Exception - **11000** Illegal Filter Exception - **12000** Path Param Exception - **24000** Cryptography Exception - **401 Unauthorized** - When authentication is required and has failed or has not yet been provided - **3000** Authentication Exception - **403 Forbidden** - When AuthorisationManager says no. - **9000** Security Exception - **404 Not Found** - For resources that does not exist. - **6000** Not Found Exception - **409 Conflict** - Such as an edit conflict between multiple simultaneous updates - **7000** Object Exists Exception - **8000** Revision Exception - **10000** Locked Exception - **14000** Duplicate entry - **422 Bad Request** - For Required fields or things like malformed payload. - **15000** Value Validation Exception - **16000** Mapping Exception - **17000** Sorting Exception - **18000** Validation Exception - **21000** Param Exception - **22000** Invalid JSON Exception - **23000** Result Set Too Large Exception - **429 Too Many Requests** - Request rate limit hit - **500 Internal Error** - Unexpected condition was encountered and no more specific message is suitable - **1000** Exception
5
5
 
6
- OpenAPI spec version: 2.69.5
6
+ OpenAPI spec version: 2.70.15
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
  Swagger Codegen version: 2.4.24
@@ -20,12 +20,13 @@ module TripletexRubyClient
20
20
  @api_client = api_client
21
21
  end
22
22
  # Creates a new Invoice representing a credit memo that nullifies the given invoice. Updates this invoice and any pre-existing inverse invoice.
23
- #
23
+ #
24
24
  # @param id Invoice id
25
25
  # @param date Credit note date
26
26
  # @param [Hash] opts the optional parameters
27
27
  # @option opts [String] :comment Comment
28
- # @option opts [String] :credit_note_email The credit note will be sent electronically if this field is filled out
28
+ # @option opts [String] :credit_note_email The credit note will not be sent if the customer send type is email and this field is empty
29
+ # @option opts [BOOLEAN] :send_to_customer Equals (default to true)
29
30
  # @return [ResponseWrapperInvoice]
30
31
  def create_credit_note(id, date, opts = {})
31
32
  data, _status_code, _headers = create_credit_note_with_http_info(id, date, opts)
@@ -33,12 +34,13 @@ module TripletexRubyClient
33
34
  end
34
35
 
35
36
  # Creates a new Invoice representing a credit memo that nullifies the given invoice. Updates this invoice and any pre-existing inverse invoice.
36
- #
37
+ #
37
38
  # @param id Invoice id
38
39
  # @param date Credit note date
39
40
  # @param [Hash] opts the optional parameters
40
41
  # @option opts [String] :comment Comment
41
- # @option opts [String] :credit_note_email The credit note will be sent electronically if this field is filled out
42
+ # @option opts [String] :credit_note_email The credit note will not be sent if the customer send type is email and this field is empty
43
+ # @option opts [BOOLEAN] :send_to_customer Equals
42
44
  # @return [Array<(ResponseWrapperInvoice, Fixnum, Hash)>] ResponseWrapperInvoice data, response status code and response headers
43
45
  def create_credit_note_with_http_info(id, date, opts = {})
44
46
  if @api_client.config.debugging
@@ -60,6 +62,7 @@ module TripletexRubyClient
60
62
  query_params[:'date'] = date
61
63
  query_params[:'comment'] = opts[:'comment'] if !opts[:'comment'].nil?
62
64
  query_params[:'creditNoteEmail'] = opts[:'credit_note_email'] if !opts[:'credit_note_email'].nil?
65
+ query_params[:'sendToCustomer'] = opts[:'send_to_customer'] if !opts[:'send_to_customer'].nil?
63
66
 
64
67
  # header parameters
65
68
  header_params = {}
@@ -83,7 +86,7 @@ module TripletexRubyClient
83
86
  return data, status_code, headers
84
87
  end
85
88
  # Create invoice reminder and sends it by the given dispatch type. Supports the reminder types SOFT_REMINDER, REMINDER and NOTICE_OF_DEBT_COLLECTION. DispatchType NETS_PRINT must have type NOTICE_OF_DEBT_COLLECTION. SMS and NETS_PRINT must be activated prior to usage in the API.
86
- #
89
+ #
87
90
  # @param id Element ID
88
91
  # @param type type
89
92
  # @param date yyyy-MM-dd. Defaults to today.
@@ -99,7 +102,7 @@ module TripletexRubyClient
99
102
  end
100
103
 
101
104
  # Create invoice reminder and sends it by the given dispatch type. Supports the reminder types SOFT_REMINDER, REMINDER and NOTICE_OF_DEBT_COLLECTION. DispatchType NETS_PRINT must have type NOTICE_OF_DEBT_COLLECTION. SMS and NETS_PRINT must be activated prior to usage in the API.
102
- #
105
+ #
103
106
  # @param id Element ID
104
107
  # @param type type
105
108
  # @param date yyyy-MM-dd. Defaults to today.
@@ -173,6 +176,7 @@ module TripletexRubyClient
173
176
  #
174
177
  # @param invoice_id Invoice ID from which PDF is downloaded.
175
178
  # @param [Hash] opts the optional parameters
179
+ # @option opts [BOOLEAN] :download Equals (default to true)
176
180
  # @return [String]
177
181
  def download_pdf(invoice_id, opts = {})
178
182
  data, _status_code, _headers = download_pdf_with_http_info(invoice_id, opts)
@@ -180,9 +184,10 @@ module TripletexRubyClient
180
184
  end
181
185
 
182
186
  # Get invoice document by invoice ID.
183
- #
187
+ #
184
188
  # @param invoice_id Invoice ID from which PDF is downloaded.
185
189
  # @param [Hash] opts the optional parameters
190
+ # @option opts [BOOLEAN] :download Equals
186
191
  # @return [Array<(String, Fixnum, Hash)>] String data, response status code and response headers
187
192
  def download_pdf_with_http_info(invoice_id, opts = {})
188
193
  if @api_client.config.debugging
@@ -197,6 +202,7 @@ module TripletexRubyClient
197
202
 
198
203
  # query parameters
199
204
  query_params = {}
205
+ query_params[:'download'] = opts[:'download'] if !opts[:'download'].nil?
200
206
 
201
207
  # header parameters
202
208
  header_params = {}
@@ -408,7 +414,7 @@ module TripletexRubyClient
408
414
  # [BETA] Create multiple invoices. Max 100 at a time.
409
415
  #
410
416
  # @param [Hash] opts the optional parameters
411
- # @option opts [Array<Invoice>] :body JSON representing a list of new object to be created. Should not have ID and version set.
417
+ # @option opts [Array<Invoice>] :body JSON representing a list of new objects to be created. Should not have ID and version set.
412
418
  # @option opts [BOOLEAN] :send_to_customer Equals (default to true)
413
419
  # @option opts [String] :fields Fields filter pattern (default to *)
414
420
  # @return [ListResponseInvoice]
@@ -418,9 +424,9 @@ module TripletexRubyClient
418
424
  end
419
425
 
420
426
  # [BETA] Create multiple invoices. Max 100 at a time.
421
- #
427
+ #
422
428
  # @param [Hash] opts the optional parameters
423
- # @option opts [Array<Invoice>] :body JSON representing a list of new object to be created. Should not have ID and version set.
429
+ # @option opts [Array<Invoice>] :body JSON representing a list of new objects to be created. Should not have ID and version set.
424
430
  # @option opts [BOOLEAN] :send_to_customer Equals
425
431
  # @option opts [String] :fields Fields filter pattern
426
432
  # @return [Array<(ListResponseInvoice, Fixnum, Hash)>] ListResponseInvoice data, response status code and response headers
@@ -576,8 +582,8 @@ module TripletexRubyClient
576
582
  fail ArgumentError, "Missing the required parameter 'send_type' when calling InvoiceApi.send"
577
583
  end
578
584
  # verify enum value
579
- if @api_client.config.client_side_validation && !['EMAIL', 'EHF', 'AVTALEGIRO', 'EFAKTURA', 'VIPPS', 'PAPER'].include?(send_type)
580
- fail ArgumentError, "invalid value for 'send_type', must be one of EMAIL, EHF, AVTALEGIRO, EFAKTURA, VIPPS, PAPER"
585
+ if @api_client.config.client_side_validation && !['EMAIL', 'EHF', 'AVTALEGIRO', 'EFAKTURA', 'VIPPS', 'PAPER', 'MANUAL'].include?(send_type)
586
+ fail ArgumentError, "invalid value for 'send_type', must be one of EMAIL, EHF, AVTALEGIRO, EFAKTURA, VIPPS, PAPER, MANUAL"
581
587
  end
582
588
  # resource path
583
589
  local_var_path = '/invoice/{id}/:send'.sub('{' + 'id' + '}', id.to_s)
@@ -3,7 +3,7 @@
3
3
 
4
4
  ### Usage - **Download the spec** [swagger.json](/v2/swagger.json) file, it is a [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification). - **Generating a client** can easily be done using tools like [swagger-codegen](https://github.com/swagger-api/swagger-codegen) or other that accepts [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification) specs. - For swagger codegen it is recommended to use the flag: **--removeOperationIdPrefix**. Unique operation ids are about to be introduced to the spec, and this ensures forward compatibility - and results in less verbose generated code. ## Overview - Partial resource updating is done using the `PUT` method with optional fields instead of the `PATCH` method. - **Actions** or **commands** are represented in our RESTful path with a prefixed `:`. Example: `/v2/hours/123/:approve`. - **Summaries** or **aggregated** results are represented in our RESTful path with a prefixed `>`. Example: `/v2/hours/>thisWeeksBillables`. - **Request ID** is a key found in all responses in the header with the name `x-tlx-request-id`. For validation and error responses it is also in the response body. If additional log information is absolutely necessary, our support division can locate the key value. - **version** This is a revision number found on all persisted resources. If included, it will prevent your PUT/POST from overriding any updates to the resource since your GET. - **Date** follows the **[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)** standard, meaning the format `YYYY-MM-DD`. - **DateTime** follows the **[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)** standard, meaning the format `YYYY-MM-DDThh:mm:ss`. - **Searching** is done by entering values in the optional fields for each API call. The values fall into the following categories: range, in, exact and like. - **Missing fields** or even **no response data** can occur because result objects and fields are filtered on authorization. - **See [GitHub](https://github.com/Tripletex/tripletex-api2) for more documentation, examples, changelog and more.** - **See [FAQ](https://tripletex.no/execute/docViewer?articleId=906&language=0) for additional information.** ## Authentication - **Tokens:** The Tripletex API uses 3 different tokens - **consumerToken** is a token provided to the consumer by Tripletex after the API 2.0 registration is completed. - **employeeToken** is a token created by an administrator in your Tripletex account via the user settings and the tab \"API access\". Each employee token must be given a set of entitlements. [Read more here.](https://tripletex.no/execute/docViewer?articleId=1505&languageId=0) - **sessionToken** is the token from `/token/session/:create` which requires a consumerToken and an employeeToken created with the same consumer token, but not an authentication header. - **Authentication** is done via [Basic access authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) - **username** is used to specify what company to access. - `0` or blank means the company of the employee. - Any other value means accountant clients. Use `/company/>withLoginAccess` to get a list of those. - **password** is the **sessionToken**. - If you need to create the header yourself use `Authorization: Basic <encoded token>` where `encoded token` is the string `<target company id or 0>:<your session token>` Base64 encoded. ## Tags - `[BETA]` This is a beta endpoint and can be subject to change. - `[DEPRECATED]` Deprecated means that we intend to remove/change this feature or capability in a future \"major\" API release. We therefore discourage all use of this feature/capability. ## Fields Use the `fields` parameter to specify which fields should be returned. This also supports fields from sub elements, done via `<field>(<subResourceFields>)`. `*` means all fields for that resource. Example values: - `project,activity,hours` returns `{project:..., activity:...., hours:...}`. - just `project` returns `\"project\" : { \"id\": 12345, \"url\": \"tripletex.no/v2/projects/12345\" }`. - `project(*)` returns `\"project\" : { \"id\": 12345 \"name\":\"ProjectName\" \"number.....startDate\": \"2013-01-07\" }`. - `project(name)` returns `\"project\" : { \"name\":\"ProjectName\" }`. - All resources and some subResources : `*,activity(name),employee(*)`. ## Sorting Use the `sorting` parameter to specify sorting. It takes a comma separated list, where a `-` prefix denotes descending. You can sort by sub object with the following format: `<field>.<subObjectField>`. Example values: - `date` - `project.name` - `project.name, -date` ## Changes To get the changes for a resource, `changes` have to be explicitly specified as part of the `fields` parameter, e.g. `*,changes`. There are currently two types of change available: - `CREATE` for when the resource was created - `UPDATE` for when the resource was updated **NOTE** > For objects created prior to October 24th 2018 the list may be incomplete, but will always contain the CREATE and the last change (if the object has been changed after creation). ## Rate limiting Rate limiting is performed on the API calls for an employee for each API consumer. Status regarding the rate limit is returned as headers: - `X-Rate-Limit-Limit` - The number of allowed requests in the current period. - `X-Rate-Limit-Remaining` - The number of remaining requests. - `X-Rate-Limit-Reset` - The number of seconds left in the current period. Once the rate limit is hit, all requests will return HTTP status code `429` for the remainder of the current period. ## Response envelope #### Multiple values ```json { \"fullResultSize\": ###, // {number} [DEPRECATED] \"from\": ###, // {number} Paging starting from \"count\": ###, // {number} Paging count \"versionDigest\": \"###\", // {string} Hash of full result, null if no result \"values\": [...{...object...},{...object...},{...object...}...] } ``` #### Single value ```json { \"value\": {...single object...} } ``` ## WebHook envelope ```json { \"subscriptionId\": ###, // Subscription id \"event\": \"object.verb\", // As listed from /v2/event/ \"id\": ###, // Id of object this event is for \"value\": {... single object, null if object.deleted ...} } ``` ## Error/warning envelope ```json { \"status\": ###, // {number} HTTP status code \"code\": #####, // {number} internal status code of event \"message\": \"###\", // {string} Basic feedback message in your language \"link\": \"###\", // {string} Link to doc \"developerMessage\": \"###\", // {string} More technical message \"validationMessages\": [ // {array} List of validation messages, can be null { \"field\": \"###\", // {string} Name of field \"message\": \"###\" // {string} Validation message for field } ], \"requestId\": \"###\" // {string} Same as x-tlx-request-id } ``` ## Status codes / Error codes - **200 OK** - **201 Created** - From POSTs that create something new. - **204 No Content** - When there is no answer, ex: \"/:anAction\" or DELETE. - **400 Bad request** - - **4000** Bad Request Exception - **11000** Illegal Filter Exception - **12000** Path Param Exception - **24000** Cryptography Exception - **401 Unauthorized** - When authentication is required and has failed or has not yet been provided - **3000** Authentication Exception - **403 Forbidden** - When AuthorisationManager says no. - **9000** Security Exception - **404 Not Found** - For resources that does not exist. - **6000** Not Found Exception - **409 Conflict** - Such as an edit conflict between multiple simultaneous updates - **7000** Object Exists Exception - **8000** Revision Exception - **10000** Locked Exception - **14000** Duplicate entry - **422 Bad Request** - For Required fields or things like malformed payload. - **15000** Value Validation Exception - **16000** Mapping Exception - **17000** Sorting Exception - **18000** Validation Exception - **21000** Param Exception - **22000** Invalid JSON Exception - **23000** Result Set Too Large Exception - **429 Too Many Requests** - Request rate limit hit - **500 Internal Error** - Unexpected condition was encountered and no more specific message is suitable - **1000** Exception
5
5
 
6
- OpenAPI spec version: 2.69.5
6
+ OpenAPI spec version: 2.70.15
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
  Swagger Codegen version: 2.4.24
@@ -20,7 +20,7 @@ module TripletexRubyClient
20
20
  @api_client = api_client
21
21
  end
22
22
  # Get reminder by ID.
23
- #
23
+ #
24
24
  # @param id Element ID
25
25
  # @param [Hash] opts the optional parameters
26
26
  # @option opts [String] :fields Fields filter pattern
@@ -31,7 +31,7 @@ module TripletexRubyClient
31
31
  end
32
32
 
33
33
  # Get reminder by ID.
34
- #
34
+ #
35
35
  # @param id Element ID
36
36
  # @param [Hash] opts the optional parameters
37
37
  # @option opts [String] :fields Fields filter pattern
@@ -72,6 +72,58 @@ module TripletexRubyClient
72
72
  end
73
73
  return data, status_code, headers
74
74
  end
75
+ # Get reminder document by reminder ID.
76
+ #
77
+ # @param reminder_id Reminder ID from which PDF is downloaded.
78
+ # @param [Hash] opts the optional parameters
79
+ # @return [String]
80
+ def download_pdf(reminder_id, opts = {})
81
+ data, _status_code, _headers = download_pdf_with_http_info(reminder_id, opts)
82
+ data
83
+ end
84
+
85
+ # Get reminder document by reminder ID.
86
+ #
87
+ # @param reminder_id Reminder ID from which PDF is downloaded.
88
+ # @param [Hash] opts the optional parameters
89
+ # @return [Array<(String, Fixnum, Hash)>] String data, response status code and response headers
90
+ def download_pdf_with_http_info(reminder_id, opts = {})
91
+ if @api_client.config.debugging
92
+ @api_client.config.logger.debug 'Calling API: ReminderApi.download_pdf ...'
93
+ end
94
+ # verify the required parameter 'reminder_id' is set
95
+ if @api_client.config.client_side_validation && reminder_id.nil?
96
+ fail ArgumentError, "Missing the required parameter 'reminder_id' when calling ReminderApi.download_pdf"
97
+ end
98
+ # resource path
99
+ local_var_path = '/reminder/{reminderId}/pdf'.sub('{' + 'reminderId' + '}', reminder_id.to_s)
100
+
101
+ # query parameters
102
+ query_params = {}
103
+
104
+ # header parameters
105
+ header_params = {}
106
+ # HTTP header 'Accept' (if needed)
107
+ header_params['Accept'] = @api_client.select_header_accept(['application/octet-stream'])
108
+
109
+ # form parameters
110
+ form_params = {}
111
+
112
+ # http body (model)
113
+ post_body = nil
114
+ auth_names = ['tokenAuthScheme']
115
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
116
+ :header_params => header_params,
117
+ :query_params => query_params,
118
+ :form_params => form_params,
119
+ :body => post_body,
120
+ :auth_names => auth_names,
121
+ :return_type => 'String')
122
+ if @api_client.config.debugging
123
+ @api_client.config.logger.debug "API called: ReminderApi#download_pdf\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
124
+ end
125
+ return data, status_code, headers
126
+ end
75
127
  # Find reminders corresponding with sent data.
76
128
  #
77
129
  # @param date_from From and including
@@ -62,10 +62,7 @@ module TripletexRubyClient
62
62
  fail ApiError.new(:code => 0,
63
63
  :message => response.return_message)
64
64
  else
65
- fail ApiError.new(:code => response.code,
66
- :response_headers => response.headers.to_h,
67
- :response_body => response.body),
68
- response.status_message
65
+ raise_error(response)
69
66
  end
70
67
  end
71
68
 
@@ -387,5 +384,25 @@ module TripletexRubyClient
387
384
  fail "unknown collection format: #{collection_format.inspect}"
388
385
  end
389
386
  end
387
+
388
+ private
389
+
390
+ def raise_error(response)
391
+ error_klass = case response.code
392
+ when 401
393
+ UnauthorizedError
394
+ when 429
395
+ RateLimitExceededError
396
+ when (400..499)
397
+ ClientError
398
+ when (500..599)
399
+ ServerError
400
+ else
401
+ ApiError
402
+ end
403
+ fail error_klass.new(code: response.code,
404
+ response_headers: response.headers.to_h,
405
+ response_body: response.body), response.status_message
406
+ end
390
407
  end
391
408
  end
@@ -43,4 +43,16 @@ module TripletexRubyClient
43
43
  end.to_s
44
44
  end
45
45
  end
46
+
47
+ class ClientError < ApiError
48
+ end
49
+
50
+ class ServerError < ApiError
51
+ end
52
+
53
+ class RateLimitExceededError < ClientError
54
+ end
55
+
56
+ class UnauthorizedError < ClientError
57
+ end
46
58
  end
@@ -3,7 +3,7 @@
3
3
 
4
4
  ### Usage - **Download the spec** [swagger.json](/v2/swagger.json) file, it is a [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification). - **Generating a client** can easily be done using tools like [swagger-codegen](https://github.com/swagger-api/swagger-codegen) or other that accepts [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification) specs. - For swagger codegen it is recommended to use the flag: **--removeOperationIdPrefix**. Unique operation ids are about to be introduced to the spec, and this ensures forward compatibility - and results in less verbose generated code. ## Overview - Partial resource updating is done using the `PUT` method with optional fields instead of the `PATCH` method. - **Actions** or **commands** are represented in our RESTful path with a prefixed `:`. Example: `/v2/hours/123/:approve`. - **Summaries** or **aggregated** results are represented in our RESTful path with a prefixed `>`. Example: `/v2/hours/>thisWeeksBillables`. - **Request ID** is a key found in all responses in the header with the name `x-tlx-request-id`. For validation and error responses it is also in the response body. If additional log information is absolutely necessary, our support division can locate the key value. - **version** This is a revision number found on all persisted resources. If included, it will prevent your PUT/POST from overriding any updates to the resource since your GET. - **Date** follows the **[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)** standard, meaning the format `YYYY-MM-DD`. - **DateTime** follows the **[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)** standard, meaning the format `YYYY-MM-DDThh:mm:ss`. - **Searching** is done by entering values in the optional fields for each API call. The values fall into the following categories: range, in, exact and like. - **Missing fields** or even **no response data** can occur because result objects and fields are filtered on authorization. - **See [GitHub](https://github.com/Tripletex/tripletex-api2) for more documentation, examples, changelog and more.** - **See [FAQ](https://tripletex.no/execute/docViewer?articleId=906&language=0) for additional information.** ## Authentication - **Tokens:** The Tripletex API uses 3 different tokens - **consumerToken** is a token provided to the consumer by Tripletex after the API 2.0 registration is completed. - **employeeToken** is a token created by an administrator in your Tripletex account via the user settings and the tab \"API access\". Each employee token must be given a set of entitlements. [Read more here.](https://tripletex.no/execute/docViewer?articleId=1505&languageId=0) - **sessionToken** is the token from `/token/session/:create` which requires a consumerToken and an employeeToken created with the same consumer token, but not an authentication header. - **Authentication** is done via [Basic access authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) - **username** is used to specify what company to access. - `0` or blank means the company of the employee. - Any other value means accountant clients. Use `/company/>withLoginAccess` to get a list of those. - **password** is the **sessionToken**. - If you need to create the header yourself use `Authorization: Basic <encoded token>` where `encoded token` is the string `<target company id or 0>:<your session token>` Base64 encoded. ## Tags - `[BETA]` This is a beta endpoint and can be subject to change. - `[DEPRECATED]` Deprecated means that we intend to remove/change this feature or capability in a future \"major\" API release. We therefore discourage all use of this feature/capability. ## Fields Use the `fields` parameter to specify which fields should be returned. This also supports fields from sub elements, done via `<field>(<subResourceFields>)`. `*` means all fields for that resource. Example values: - `project,activity,hours` returns `{project:..., activity:...., hours:...}`. - just `project` returns `\"project\" : { \"id\": 12345, \"url\": \"tripletex.no/v2/projects/12345\" }`. - `project(*)` returns `\"project\" : { \"id\": 12345 \"name\":\"ProjectName\" \"number.....startDate\": \"2013-01-07\" }`. - `project(name)` returns `\"project\" : { \"name\":\"ProjectName\" }`. - All resources and some subResources : `*,activity(name),employee(*)`. ## Sorting Use the `sorting` parameter to specify sorting. It takes a comma separated list, where a `-` prefix denotes descending. You can sort by sub object with the following format: `<field>.<subObjectField>`. Example values: - `date` - `project.name` - `project.name, -date` ## Changes To get the changes for a resource, `changes` have to be explicitly specified as part of the `fields` parameter, e.g. `*,changes`. There are currently two types of change available: - `CREATE` for when the resource was created - `UPDATE` for when the resource was updated **NOTE** > For objects created prior to October 24th 2018 the list may be incomplete, but will always contain the CREATE and the last change (if the object has been changed after creation). ## Rate limiting Rate limiting is performed on the API calls for an employee for each API consumer. Status regarding the rate limit is returned as headers: - `X-Rate-Limit-Limit` - The number of allowed requests in the current period. - `X-Rate-Limit-Remaining` - The number of remaining requests. - `X-Rate-Limit-Reset` - The number of seconds left in the current period. Once the rate limit is hit, all requests will return HTTP status code `429` for the remainder of the current period. ## Response envelope #### Multiple values ```json { \"fullResultSize\": ###, // {number} [DEPRECATED] \"from\": ###, // {number} Paging starting from \"count\": ###, // {number} Paging count \"versionDigest\": \"###\", // {string} Hash of full result, null if no result \"values\": [...{...object...},{...object...},{...object...}...] } ``` #### Single value ```json { \"value\": {...single object...} } ``` ## WebHook envelope ```json { \"subscriptionId\": ###, // Subscription id \"event\": \"object.verb\", // As listed from /v2/event/ \"id\": ###, // Id of object this event is for \"value\": {... single object, null if object.deleted ...} } ``` ## Error/warning envelope ```json { \"status\": ###, // {number} HTTP status code \"code\": #####, // {number} internal status code of event \"message\": \"###\", // {string} Basic feedback message in your language \"link\": \"###\", // {string} Link to doc \"developerMessage\": \"###\", // {string} More technical message \"validationMessages\": [ // {array} List of validation messages, can be null { \"field\": \"###\", // {string} Name of field \"message\": \"###\" // {string} Validation message for field } ], \"requestId\": \"###\" // {string} Same as x-tlx-request-id } ``` ## Status codes / Error codes - **200 OK** - **201 Created** - From POSTs that create something new. - **204 No Content** - When there is no answer, ex: \"/:anAction\" or DELETE. - **400 Bad request** - - **4000** Bad Request Exception - **11000** Illegal Filter Exception - **12000** Path Param Exception - **24000** Cryptography Exception - **401 Unauthorized** - When authentication is required and has failed or has not yet been provided - **3000** Authentication Exception - **403 Forbidden** - When AuthorisationManager says no. - **9000** Security Exception - **404 Not Found** - For resources that does not exist. - **6000** Not Found Exception - **409 Conflict** - Such as an edit conflict between multiple simultaneous updates - **7000** Object Exists Exception - **8000** Revision Exception - **10000** Locked Exception - **14000** Duplicate entry - **422 Bad Request** - For Required fields or things like malformed payload. - **15000** Value Validation Exception - **16000** Mapping Exception - **17000** Sorting Exception - **18000** Validation Exception - **21000** Param Exception - **22000** Invalid JSON Exception - **23000** Result Set Too Large Exception - **429 Too Many Requests** - Request rate limit hit - **500 Internal Error** - Unexpected condition was encountered and no more specific message is suitable - **1000** Exception
5
5
 
6
- OpenAPI spec version: 2.69.5
6
+ OpenAPI spec version: 2.70.15
7
7
 
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
9
  Swagger Codegen version: 2.4.24
@@ -111,15 +111,20 @@ module TripletexRubyClient
111
111
  # Invoice debt collection and reminders.
112
112
  attr_accessor :reminders
113
113
 
114
- # Invoice remarks - automatically stops reminder/notice of debt collection if specified.
114
+ # Deprecated Invoice remarks - please use the 'invoiceRemark' instead.
115
115
  attr_accessor :invoice_remarks
116
116
 
117
+ # Invoice remark - automatically stops reminder/notice of debt collection until specified date.
118
+ attr_accessor :invoice_remark
119
+
117
120
  # [BETA] Optional. Used to specify payment type for prepaid invoices. Payment type can be specified here, or as a parameter to the /invoice API endpoint.
118
121
  attr_accessor :payment_type_id
119
122
 
120
123
  # [BETA] Optional. Used to specify the prepaid amount of the invoice. The paid amount can be specified here, or as a parameter to the /invoice API endpoint.
121
124
  attr_accessor :paid_amount
122
125
 
126
+ attr_accessor :is_periodization_possible
127
+
123
128
  # [Deprecated] EHF (Peppol) send status. This only shows status for historic EHFs.
124
129
  attr_accessor :ehf_send_status
125
130
 
@@ -185,8 +190,10 @@ module TripletexRubyClient
185
190
  :'postings' => :'postings',
186
191
  :'reminders' => :'reminders',
187
192
  :'invoice_remarks' => :'invoiceRemarks',
193
+ :'invoice_remark' => :'invoiceRemark',
188
194
  :'payment_type_id' => :'paymentTypeId',
189
195
  :'paid_amount' => :'paidAmount',
196
+ :'is_periodization_possible' => :'isPeriodizationPossible',
190
197
  :'ehf_send_status' => :'ehfSendStatus'
191
198
  }
192
199
  end
@@ -231,8 +238,10 @@ module TripletexRubyClient
231
238
  :'postings' => :'Array<Posting>',
232
239
  :'reminders' => :'Array<Reminder>',
233
240
  :'invoice_remarks' => :'String',
241
+ :'invoice_remark' => :'InvoiceRemark',
234
242
  :'payment_type_id' => :'Integer',
235
243
  :'paid_amount' => :'Float',
244
+ :'is_periodization_possible' => :'BOOLEAN',
236
245
  :'ehf_send_status' => :'String'
237
246
  }
238
247
  end
@@ -407,6 +416,10 @@ module TripletexRubyClient
407
416
  self.invoice_remarks = attributes[:'invoiceRemarks']
408
417
  end
409
418
 
419
+ if attributes.has_key?(:'invoiceRemark')
420
+ self.invoice_remark = attributes[:'invoiceRemark']
421
+ end
422
+
410
423
  if attributes.has_key?(:'paymentTypeId')
411
424
  self.payment_type_id = attributes[:'paymentTypeId']
412
425
  end
@@ -415,6 +428,10 @@ module TripletexRubyClient
415
428
  self.paid_amount = attributes[:'paidAmount']
416
429
  end
417
430
 
431
+ if attributes.has_key?(:'isPeriodizationPossible')
432
+ self.is_periodization_possible = attributes[:'isPeriodizationPossible']
433
+ end
434
+
418
435
  if attributes.has_key?(:'ehfSendStatus')
419
436
  self.ehf_send_status = attributes[:'ehfSendStatus']
420
437
  end
@@ -547,8 +564,10 @@ module TripletexRubyClient
547
564
  postings == o.postings &&
548
565
  reminders == o.reminders &&
549
566
  invoice_remarks == o.invoice_remarks &&
567
+ invoice_remark == o.invoice_remark &&
550
568
  payment_type_id == o.payment_type_id &&
551
569
  paid_amount == o.paid_amount &&
570
+ is_periodization_possible == o.is_periodization_possible &&
552
571
  ehf_send_status == o.ehf_send_status
553
572
  end
554
573
 
@@ -561,7 +580,7 @@ module TripletexRubyClient
561
580
  # Calculates hash code according to all attributes.
562
581
  # @return [Fixnum] Hash code
563
582
  def hash
564
- [id, version, changes, url, invoice_number, invoice_date, customer, credited_invoice, is_credited, invoice_due_date, kid, invoice_comment, comment, orders, order_lines, travel_reports, project_invoice_details, voucher, delivery_date, amount, amount_currency, amount_excluding_vat, amount_excluding_vat_currency, amount_roundoff, amount_roundoff_currency, amount_outstanding, amount_currency_outstanding, amount_outstanding_total, amount_currency_outstanding_total, sum_remits, currency, is_credit_note, is_charged, is_approved, postings, reminders, invoice_remarks, payment_type_id, paid_amount, ehf_send_status].hash
583
+ [id, version, changes, url, invoice_number, invoice_date, customer, credited_invoice, is_credited, invoice_due_date, kid, invoice_comment, comment, orders, order_lines, travel_reports, project_invoice_details, voucher, delivery_date, amount, amount_currency, amount_excluding_vat, amount_excluding_vat_currency, amount_roundoff, amount_roundoff_currency, amount_outstanding, amount_currency_outstanding, amount_outstanding_total, amount_currency_outstanding_total, sum_remits, currency, is_credit_note, is_charged, is_approved, postings, reminders, invoice_remarks, invoice_remark, payment_type_id, paid_amount, is_periodization_possible, ehf_send_status].hash
565
584
  end
566
585
 
567
586
  # Builds the object from hash