ultracart_api 4.1.227 → 4.1.228
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 +7 -2
- data/docs/SfvbApi.md +59 -0
- data/docs/SfvbBlogPostDetail.md +2 -0
- data/docs/SfvbBlogPostRequest.md +2 -0
- data/docs/SfvbStepCounts.md +34 -0
- data/docs/SfvbStepDispatchLog.md +22 -0
- data/docs/SfvbStepDispatchLogsResponse.md +32 -0
- data/lib/ultracart_api/api/sfvb_api.rb +85 -0
- data/lib/ultracart_api/models/sfvb_blog_post_detail.rb +11 -1
- data/lib/ultracart_api/models/sfvb_blog_post_request.rb +11 -1
- data/lib/ultracart_api/models/sfvb_step_counts.rb +300 -0
- data/lib/ultracart_api/models/sfvb_step_dispatch_log.rb +240 -0
- data/lib/ultracart_api/models/sfvb_step_dispatch_logs_response.rb +293 -0
- data/lib/ultracart_api/version.rb +1 -1
- data/lib/ultracart_api.rb +3 -0
- metadata +7 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c64fd152d42f965a2ef426e407e1258fe1e7b46be93a9cfc578955d6dc3638b1
|
|
4
|
+
data.tar.gz: 7a54648d773d9dc420e048a8056dcb80ff54a968dbf9579c0d8eecfddd9dffd6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6b3e8e124b3f40204cef7eb855d34b008422574f478baaebcaae1550d7eeebcdc48a85c5878657ea5ee1b7bfa470aa1112456c70ab64beb1fdf4a0e037b06440
|
|
7
|
+
data.tar.gz: ff5e768083598808d88e5f536a05f3630ad334880c8e2cef8282c09fb2d6377fd14f03596271882225999ab6116968e821237590247018f83e9f8e20d09a23e4
|
data/README.md
CHANGED
|
@@ -7,7 +7,7 @@ Note: Every method has a sample for every language. See https://github.com/Ultr
|
|
|
7
7
|
This SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
|
8
8
|
|
|
9
9
|
- API version: 2.0.0
|
|
10
|
-
- Package version: 4.1.
|
|
10
|
+
- Package version: 4.1.228
|
|
11
11
|
- Build package: org.openapitools.codegen.languages.RubyClientCodegen
|
|
12
12
|
- For more information, please visit [http://www.ultracart.com/api/](http://www.ultracart.com/api/)
|
|
13
13
|
|
|
@@ -16,7 +16,7 @@ This SDK is automatically generated by the [OpenAPI Generator](https://openapi-g
|
|
|
16
16
|
gemfile:
|
|
17
17
|
|
|
18
18
|
```shell
|
|
19
|
-
gem 'ultracart_api', '4.1.
|
|
19
|
+
gem 'ultracart_api', '4.1.228'
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
install:
|
|
@@ -582,6 +582,7 @@ Class | Method | HTTP request | Description
|
|
|
582
582
|
*UltracartClient::SfvbApi* | [**get_sfvb_secret_request**](docs/SfvbApi.md#get_sfvb_secret_request) | **GET** /sfvb/secrets/{request_id} | Read one secret request
|
|
583
583
|
*UltracartClient::SfvbApi* | [**get_sfvb_secret_requests**](docs/SfvbApi.md#get_sfvb_secret_requests) | **GET** /sfvb/secrets | List this sign-in's secret requests
|
|
584
584
|
*UltracartClient::SfvbApi* | [**get_sfvb_sequence**](docs/SfvbApi.md#get_sfvb_sequence) | **GET** /sfvb/storefronts/{storefront_oid}/sequences/{sequence_uuid} | Get a campaign's or flow's steps as a tree
|
|
585
|
+
*UltracartClient::SfvbApi* | [**get_sfvb_sequence_step_dispatch_logs**](docs/SfvbApi.md#get_sfvb_sequence_step_dispatch_logs) | **GET** /sfvb/storefronts/{storefront_oid}/sequences/{sequence_uuid}/steps/{step_uuid}/dispatch_logs | Read a flow or campaign step's dispatch log and counts
|
|
585
586
|
*UltracartClient::SfvbApi* | [**get_sfvb_server_log**](docs/SfvbApi.md#get_sfvb_server_log) | **GET** /sfvb/storefronts/{storefront_oid}/logs/{log_id} | Get one storefront render log
|
|
586
587
|
*UltracartClient::SfvbApi* | [**get_sfvb_site_attributes**](docs/SfvbApi.md#get_sfvb_site_attributes) | **GET** /sfvb/storefronts/{storefront_oid}/attributes | Read a storefront's site attributes
|
|
587
588
|
*UltracartClient::SfvbApi* | [**get_sfvb_sitemaps**](docs/SfvbApi.md#get_sfvb_sitemaps) | **GET** /sfvb/storefronts/{storefront_oid}/sitemaps | Read a storefront's sitemaps and robots.txt
|
|
@@ -2178,6 +2179,9 @@ Class | Method | HTTP request | Description
|
|
|
2178
2179
|
- [UltracartClient::SfvbSmartAttribution](docs/SfvbSmartAttribution.md)
|
|
2179
2180
|
- [UltracartClient::SfvbSmartAttributionPlatform](docs/SfvbSmartAttributionPlatform.md)
|
|
2180
2181
|
- [UltracartClient::SfvbSmartAttributionRequest](docs/SfvbSmartAttributionRequest.md)
|
|
2182
|
+
- [UltracartClient::SfvbStepCounts](docs/SfvbStepCounts.md)
|
|
2183
|
+
- [UltracartClient::SfvbStepDispatchLog](docs/SfvbStepDispatchLog.md)
|
|
2184
|
+
- [UltracartClient::SfvbStepDispatchLogsResponse](docs/SfvbStepDispatchLogsResponse.md)
|
|
2181
2185
|
- [UltracartClient::SfvbStorefront](docs/SfvbStorefront.md)
|
|
2182
2186
|
- [UltracartClient::SfvbStorefrontsResponse](docs/SfvbStorefrontsResponse.md)
|
|
2183
2187
|
- [UltracartClient::SfvbTemplate](docs/SfvbTemplate.md)
|
|
@@ -2408,6 +2412,7 @@ Not every change is committed to every SDK.
|
|
|
2408
2412
|
|
|
2409
2413
|
| Version | Date | Comments |
|
|
2410
2414
|
| --: | :-: | --- |
|
|
2415
|
+
| 4.1.228 | 11/04/2026 | sfvb internal testing |
|
|
2411
2416
|
| 4.1.227 | 11/04/2026 | sfvb internal testing |
|
|
2412
2417
|
| 4.1.226 | 11/04/2026 | sfvb internal testing |
|
|
2413
2418
|
| 4.1.225 | 11/03/2026 | sfvb internal testing |
|
data/docs/SfvbApi.md
CHANGED
|
@@ -110,6 +110,7 @@ All URIs are relative to *https://secure.ultracart.com/rest/v2*
|
|
|
110
110
|
| [**get_sfvb_secret_request**](SfvbApi.md#get_sfvb_secret_request) | **GET** /sfvb/secrets/{request_id} | Read one secret request |
|
|
111
111
|
| [**get_sfvb_secret_requests**](SfvbApi.md#get_sfvb_secret_requests) | **GET** /sfvb/secrets | List this sign-in's secret requests |
|
|
112
112
|
| [**get_sfvb_sequence**](SfvbApi.md#get_sfvb_sequence) | **GET** /sfvb/storefronts/{storefront_oid}/sequences/{sequence_uuid} | Get a campaign's or flow's steps as a tree |
|
|
113
|
+
| [**get_sfvb_sequence_step_dispatch_logs**](SfvbApi.md#get_sfvb_sequence_step_dispatch_logs) | **GET** /sfvb/storefronts/{storefront_oid}/sequences/{sequence_uuid}/steps/{step_uuid}/dispatch_logs | Read a flow or campaign step's dispatch log and counts |
|
|
113
114
|
| [**get_sfvb_server_log**](SfvbApi.md#get_sfvb_server_log) | **GET** /sfvb/storefronts/{storefront_oid}/logs/{log_id} | Get one storefront render log |
|
|
114
115
|
| [**get_sfvb_site_attributes**](SfvbApi.md#get_sfvb_site_attributes) | **GET** /sfvb/storefronts/{storefront_oid}/attributes | Read a storefront's site attributes |
|
|
115
116
|
| [**get_sfvb_sitemaps**](SfvbApi.md#get_sfvb_sitemaps) | **GET** /sfvb/storefronts/{storefront_oid}/sitemaps | Read a storefront's sitemaps and robots.txt |
|
|
@@ -5997,6 +5998,64 @@ end
|
|
|
5997
5998
|
- **Accept**: application/json
|
|
5998
5999
|
|
|
5999
6000
|
|
|
6001
|
+
## get_sfvb_sequence_step_dispatch_logs
|
|
6002
|
+
|
|
6003
|
+
> <SfvbStepDispatchLogsResponse> get_sfvb_sequence_step_dispatch_logs(storefront_oid, sequence_uuid, step_uuid, opts)
|
|
6004
|
+
|
|
6005
|
+
Read a flow or campaign step's dispatch log and counts
|
|
6006
|
+
|
|
6007
|
+
Why customers were sent, skipped or ended at this step, newest first, as the admin's Dispatch Logs screen shows it, with the step's counts. An email step's counts are its email's; any other step's are its own over 90 days. Email addresses and phone numbers in the text are masked. since is 15m, 2h or 7d, or an ISO-8601 time, default 7d; entries are kept 90 days. limit is 1 to 200, default 50; send next_offset as offset for the next page. Read only.
|
|
6008
|
+
|
|
6009
|
+
|
|
6010
|
+
### Examples
|
|
6011
|
+
|
|
6012
|
+
|
|
6013
|
+
(No example for this operation).
|
|
6014
|
+
|
|
6015
|
+
|
|
6016
|
+
#### Using the get_sfvb_sequence_step_dispatch_logs_with_http_info variant
|
|
6017
|
+
|
|
6018
|
+
This returns an Array which contains the response data, status code and headers.
|
|
6019
|
+
|
|
6020
|
+
> <Array(<SfvbStepDispatchLogsResponse>, Integer, Hash)> get_sfvb_sequence_step_dispatch_logs_with_http_info(storefront_oid, sequence_uuid, step_uuid, opts)
|
|
6021
|
+
|
|
6022
|
+
```ruby
|
|
6023
|
+
begin
|
|
6024
|
+
# Read a flow or campaign step's dispatch log and counts
|
|
6025
|
+
data, status_code, headers = api_instance.get_sfvb_sequence_step_dispatch_logs_with_http_info(storefront_oid, sequence_uuid, step_uuid, opts)
|
|
6026
|
+
p status_code # => 2xx
|
|
6027
|
+
p headers # => { ... }
|
|
6028
|
+
p data # => <SfvbStepDispatchLogsResponse>
|
|
6029
|
+
rescue UltracartClient::ApiError => e
|
|
6030
|
+
puts "Error when calling SfvbApi->get_sfvb_sequence_step_dispatch_logs_with_http_info: #{e}"
|
|
6031
|
+
end
|
|
6032
|
+
```
|
|
6033
|
+
|
|
6034
|
+
### Parameters
|
|
6035
|
+
|
|
6036
|
+
| Name | Type | Description | Notes |
|
|
6037
|
+
| ---- | ---- | ----------- | ----- |
|
|
6038
|
+
| **storefront_oid** | **Integer** | | |
|
|
6039
|
+
| **sequence_uuid** | **String** | | |
|
|
6040
|
+
| **step_uuid** | **String** | | |
|
|
6041
|
+
| **since** | **String** | | [optional] |
|
|
6042
|
+
| **limit** | **Integer** | | [optional] |
|
|
6043
|
+
| **offset** | **Integer** | | [optional] |
|
|
6044
|
+
|
|
6045
|
+
### Return type
|
|
6046
|
+
|
|
6047
|
+
[**SfvbStepDispatchLogsResponse**](SfvbStepDispatchLogsResponse.md)
|
|
6048
|
+
|
|
6049
|
+
### Authorization
|
|
6050
|
+
|
|
6051
|
+
[ultraCartOauth](../README.md#ultraCartOauth), [ultraCartSimpleApiKey](../README.md#ultraCartSimpleApiKey)
|
|
6052
|
+
|
|
6053
|
+
### HTTP request headers
|
|
6054
|
+
|
|
6055
|
+
- **Content-Type**: Not defined
|
|
6056
|
+
- **Accept**: application/json
|
|
6057
|
+
|
|
6058
|
+
|
|
6000
6059
|
## get_sfvb_server_log
|
|
6001
6060
|
|
|
6002
6061
|
> <SfvbServerLogDetail> get_sfvb_server_log(storefront_oid, log_id, opts)
|
data/docs/SfvbBlogPostDetail.md
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
| **blog_post_oid** | **Integer** | The blog post's oid. This is what a page's blog post assignment names. | [optional] |
|
|
10
10
|
| **body** | **String** | The post body as HTML, exactly as stored. | [optional] |
|
|
11
11
|
| **created_dts** | **String** | When the post was created (ISO 8601, UTC). | [optional] |
|
|
12
|
+
| **dry_run** | **Boolean** | True when this is the result of a dry run and nothing was saved. The post is shown as it is stored. | [optional] |
|
|
12
13
|
| **excerpt** | **String** | The post excerpt as HTML, exactly as stored. | [optional] |
|
|
13
14
|
| **images** | [**Array<SfvbBlogPostImage>**](SfvbBlogPostImage.md) | The post's images, the default image first. | [optional] |
|
|
14
15
|
| **last_modified_dts** | **String** | When the post was last changed (ISO 8601, UTC), or null if it never was. | [optional] |
|
|
@@ -34,6 +35,7 @@ instance = UltracartClient::SfvbBlogPostDetail.new(
|
|
|
34
35
|
blog_post_oid: null,
|
|
35
36
|
body: null,
|
|
36
37
|
created_dts: null,
|
|
38
|
+
dry_run: null,
|
|
37
39
|
excerpt: null,
|
|
38
40
|
images: null,
|
|
39
41
|
last_modified_dts: null,
|
data/docs/SfvbBlogPostRequest.md
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
| **allow_comments** | **Boolean** | Whether shoppers may comment. Defaults to false on create. | [optional] |
|
|
8
8
|
| **author** | **String** | The author's name as plain text, up to 100 characters, with no quotes or angle brackets. | [optional] |
|
|
9
9
|
| **body** | **String** | The post body as HTML, up to 1 MB, rendered exactly as stored. Refused with sfvb.unsafe_html if it could run script - script and other executable tags, on attributes, links that are not http, https, mailto, tel or relative, and iframes other than YouTube or Vimeo players. Reference an attached image by the url the post's images report. | [optional] |
|
|
10
|
+
| **dry_run** | **Boolean** | On an update, true to run every check the write would run and save nothing. A refusal comes back exactly as it would on the real write. | [optional] |
|
|
10
11
|
| **excerpt** | **String** | The post excerpt as HTML, up to 256 KB. Held to the same rule as body. | [optional] |
|
|
11
12
|
| **publication_dts** | **String** | When the post is published, as an ISO 8601 UTC time in the same form publication_dts reads back. Refused on a draft. A post made public without one is published now. | [optional] |
|
|
12
13
|
| **seo_description** | **String** | The meta description (storefrontSEODescription), the search result snippet. Plain text with no angle brackets or double quotes, up to 1000 characters. Left out, it is unchanged; an empty string clears it, and the head falls back to the site's description. | [optional] |
|
|
@@ -26,6 +27,7 @@ instance = UltracartClient::SfvbBlogPostRequest.new(
|
|
|
26
27
|
allow_comments: null,
|
|
27
28
|
author: null,
|
|
28
29
|
body: null,
|
|
30
|
+
dry_run: null,
|
|
29
31
|
excerpt: null,
|
|
30
32
|
publication_dts: null,
|
|
31
33
|
seo_description: null,
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# UltracartClient::SfvbStepCounts
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **clicked** | **Integer** | Messages with a click. | [optional] |
|
|
8
|
+
| **customers** | **Integer** | For a step that isn't an email, the customers that passed through it. | [optional] |
|
|
9
|
+
| **delivered** | **Integer** | Messages delivered. | [optional] |
|
|
10
|
+
| **opened** | **Integer** | Emails opened. | [optional] |
|
|
11
|
+
| **sent** | **Integer** | Messages sent. | [optional] |
|
|
12
|
+
| **skipped** | **Integer** | Customers who reached the step and were not sent anything. The dispatch log says why. | [optional] |
|
|
13
|
+
| **source** | **String** | email (the step's email, all time) or step (this step, the last 90 days). | [optional] |
|
|
14
|
+
| **spam** | **Integer** | Spam complaints. | [optional] |
|
|
15
|
+
| **unsubscribed** | **Integer** | Unsubscribes from these messages. | [optional] |
|
|
16
|
+
|
|
17
|
+
## Example
|
|
18
|
+
|
|
19
|
+
```ruby
|
|
20
|
+
require 'ultracart_api'
|
|
21
|
+
|
|
22
|
+
instance = UltracartClient::SfvbStepCounts.new(
|
|
23
|
+
clicked: null,
|
|
24
|
+
customers: null,
|
|
25
|
+
delivered: null,
|
|
26
|
+
opened: null,
|
|
27
|
+
sent: null,
|
|
28
|
+
skipped: null,
|
|
29
|
+
source: null,
|
|
30
|
+
spam: null,
|
|
31
|
+
unsubscribed: null
|
|
32
|
+
)
|
|
33
|
+
```
|
|
34
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# UltracartClient::SfvbStepDispatchLog
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **customer_uuid** | **String** | The customer the entry is about. | [optional] |
|
|
8
|
+
| **detail** | **String** | What happened, as the admin's Dispatch Logs screen shows it, with email addresses and phone numbers masked. | [optional] |
|
|
9
|
+
| **logged_at** | **String** | When the entry was written, as ISO 8601 with the server's offset. | [optional] |
|
|
10
|
+
|
|
11
|
+
## Example
|
|
12
|
+
|
|
13
|
+
```ruby
|
|
14
|
+
require 'ultracart_api'
|
|
15
|
+
|
|
16
|
+
instance = UltracartClient::SfvbStepDispatchLog.new(
|
|
17
|
+
customer_uuid: null,
|
|
18
|
+
detail: null,
|
|
19
|
+
logged_at: null
|
|
20
|
+
)
|
|
21
|
+
```
|
|
22
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# UltracartClient::SfvbStepDispatchLogsResponse
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **counts** | [**SfvbStepCounts**](SfvbStepCounts.md) | | [optional] |
|
|
8
|
+
| **entries** | [**Array<SfvbStepDispatchLog>**](SfvbStepDispatchLog.md) | The entries in the window, newest first. | [optional] |
|
|
9
|
+
| **next_offset** | **Integer** | Send this as offset for the next page. Absent on the last page. | [optional] |
|
|
10
|
+
| **notes** | **Array<String>** | What a person should know about reading these entries. | [optional] |
|
|
11
|
+
| **sequence_uuid** | **String** | The communication sequence the step is in. | [optional] |
|
|
12
|
+
| **since** | **String** | The start of the window read, as ISO 8601. | [optional] |
|
|
13
|
+
| **step_type** | **String** | The step's type, such as email, sms or wait. | [optional] |
|
|
14
|
+
| **step_uuid** | **String** | The step. | [optional] |
|
|
15
|
+
|
|
16
|
+
## Example
|
|
17
|
+
|
|
18
|
+
```ruby
|
|
19
|
+
require 'ultracart_api'
|
|
20
|
+
|
|
21
|
+
instance = UltracartClient::SfvbStepDispatchLogsResponse.new(
|
|
22
|
+
counts: null,
|
|
23
|
+
entries: null,
|
|
24
|
+
next_offset: null,
|
|
25
|
+
notes: null,
|
|
26
|
+
sequence_uuid: null,
|
|
27
|
+
since: null,
|
|
28
|
+
step_type: null,
|
|
29
|
+
step_uuid: null
|
|
30
|
+
)
|
|
31
|
+
```
|
|
32
|
+
|
|
@@ -7625,6 +7625,91 @@ module UltracartClient
|
|
|
7625
7625
|
return data, status_code, headers
|
|
7626
7626
|
end
|
|
7627
7627
|
|
|
7628
|
+
# Read a flow or campaign step's dispatch log and counts
|
|
7629
|
+
# Why customers were sent, skipped or ended at this step, newest first, as the admin's Dispatch Logs screen shows it, with the step's counts. An email step's counts are its email's; any other step's are its own over 90 days. Email addresses and phone numbers in the text are masked. since is 15m, 2h or 7d, or an ISO-8601 time, default 7d; entries are kept 90 days. limit is 1 to 200, default 50; send next_offset as offset for the next page. Read only.
|
|
7630
|
+
# @param storefront_oid [Integer]
|
|
7631
|
+
# @param sequence_uuid [String]
|
|
7632
|
+
# @param step_uuid [String]
|
|
7633
|
+
# @param [Hash] opts the optional parameters
|
|
7634
|
+
# @option opts [String] :since
|
|
7635
|
+
# @option opts [Integer] :limit
|
|
7636
|
+
# @option opts [Integer] :offset
|
|
7637
|
+
# @return [SfvbStepDispatchLogsResponse]
|
|
7638
|
+
def get_sfvb_sequence_step_dispatch_logs(storefront_oid, sequence_uuid, step_uuid, opts = {})
|
|
7639
|
+
data, _status_code, _headers = get_sfvb_sequence_step_dispatch_logs_with_http_info(storefront_oid, sequence_uuid, step_uuid, opts)
|
|
7640
|
+
data
|
|
7641
|
+
end
|
|
7642
|
+
|
|
7643
|
+
# Read a flow or campaign step's dispatch log and counts
|
|
7644
|
+
# Why customers were sent, skipped or ended at this step, newest first, as the admin's Dispatch Logs screen shows it, with the step's counts. An email step's counts are its email's; any other step's are its own over 90 days. Email addresses and phone numbers in the text are masked. since is 15m, 2h or 7d, or an ISO-8601 time, default 7d; entries are kept 90 days. limit is 1 to 200, default 50; send next_offset as offset for the next page. Read only.
|
|
7645
|
+
# @param storefront_oid [Integer]
|
|
7646
|
+
# @param sequence_uuid [String]
|
|
7647
|
+
# @param step_uuid [String]
|
|
7648
|
+
# @param [Hash] opts the optional parameters
|
|
7649
|
+
# @option opts [String] :since
|
|
7650
|
+
# @option opts [Integer] :limit
|
|
7651
|
+
# @option opts [Integer] :offset
|
|
7652
|
+
# @return [Array<(SfvbStepDispatchLogsResponse, Integer, Hash)>] SfvbStepDispatchLogsResponse data, response status code and response headers
|
|
7653
|
+
def get_sfvb_sequence_step_dispatch_logs_with_http_info(storefront_oid, sequence_uuid, step_uuid, opts = {})
|
|
7654
|
+
if @api_client.config.debugging
|
|
7655
|
+
@api_client.config.logger.debug 'Calling API: SfvbApi.get_sfvb_sequence_step_dispatch_logs ...'
|
|
7656
|
+
end
|
|
7657
|
+
# verify the required parameter 'storefront_oid' is set
|
|
7658
|
+
if @api_client.config.client_side_validation && storefront_oid.nil?
|
|
7659
|
+
fail ArgumentError, "Missing the required parameter 'storefront_oid' when calling SfvbApi.get_sfvb_sequence_step_dispatch_logs"
|
|
7660
|
+
end
|
|
7661
|
+
# verify the required parameter 'sequence_uuid' is set
|
|
7662
|
+
if @api_client.config.client_side_validation && sequence_uuid.nil?
|
|
7663
|
+
fail ArgumentError, "Missing the required parameter 'sequence_uuid' when calling SfvbApi.get_sfvb_sequence_step_dispatch_logs"
|
|
7664
|
+
end
|
|
7665
|
+
# verify the required parameter 'step_uuid' is set
|
|
7666
|
+
if @api_client.config.client_side_validation && step_uuid.nil?
|
|
7667
|
+
fail ArgumentError, "Missing the required parameter 'step_uuid' when calling SfvbApi.get_sfvb_sequence_step_dispatch_logs"
|
|
7668
|
+
end
|
|
7669
|
+
# resource path
|
|
7670
|
+
local_var_path = '/sfvb/storefronts/{storefront_oid}/sequences/{sequence_uuid}/steps/{step_uuid}/dispatch_logs'.sub('{' + 'storefront_oid' + '}', CGI.escape(storefront_oid.to_s)).sub('{' + 'sequence_uuid' + '}', CGI.escape(sequence_uuid.to_s)).sub('{' + 'step_uuid' + '}', CGI.escape(step_uuid.to_s))
|
|
7671
|
+
|
|
7672
|
+
# query parameters
|
|
7673
|
+
query_params = opts[:query_params] || {}
|
|
7674
|
+
query_params[:'since'] = opts[:'since'] if !opts[:'since'].nil?
|
|
7675
|
+
query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
|
|
7676
|
+
query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
|
|
7677
|
+
|
|
7678
|
+
# header parameters
|
|
7679
|
+
header_params = opts[:header_params] || {}
|
|
7680
|
+
header_params['X-UltraCart-Api-Version'] = @api_client.select_header_api_version()
|
|
7681
|
+
# HTTP header 'Accept' (if needed)
|
|
7682
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
|
7683
|
+
|
|
7684
|
+
# form parameters
|
|
7685
|
+
form_params = opts[:form_params] || {}
|
|
7686
|
+
|
|
7687
|
+
# http body (model)
|
|
7688
|
+
post_body = opts[:debug_body]
|
|
7689
|
+
|
|
7690
|
+
# return_type
|
|
7691
|
+
return_type = opts[:debug_return_type] || 'SfvbStepDispatchLogsResponse'
|
|
7692
|
+
|
|
7693
|
+
# auth_names
|
|
7694
|
+
auth_names = opts[:debug_auth_names] || ['ultraCartOauth', 'ultraCartSimpleApiKey']
|
|
7695
|
+
|
|
7696
|
+
new_options = opts.merge(
|
|
7697
|
+
:operation => :"SfvbApi.get_sfvb_sequence_step_dispatch_logs",
|
|
7698
|
+
:header_params => header_params,
|
|
7699
|
+
:query_params => query_params,
|
|
7700
|
+
:form_params => form_params,
|
|
7701
|
+
:body => post_body,
|
|
7702
|
+
:auth_names => auth_names,
|
|
7703
|
+
:return_type => return_type
|
|
7704
|
+
)
|
|
7705
|
+
|
|
7706
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
7707
|
+
if @api_client.config.debugging
|
|
7708
|
+
@api_client.config.logger.debug "API called: SfvbApi#get_sfvb_sequence_step_dispatch_logs\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
7709
|
+
end
|
|
7710
|
+
return data, status_code, headers
|
|
7711
|
+
end
|
|
7712
|
+
|
|
7628
7713
|
# Get one storefront render log
|
|
7629
7714
|
# One render's server log with its lines, each with a level, a category such as VELOCITY or FLOW, and the message. log_id comes from the list, or from the X-UltraCart-Storefront-Log-Id header a page sends inside an SFVB preview session. min_level is debug, info, warn or error, default debug.
|
|
7630
7715
|
# @param storefront_oid [Integer]
|
|
@@ -30,6 +30,9 @@ module UltracartClient
|
|
|
30
30
|
# When the post was created (ISO 8601, UTC).
|
|
31
31
|
attr_accessor :created_dts
|
|
32
32
|
|
|
33
|
+
# True when this is the result of a dry run and nothing was saved. The post is shown as it is stored.
|
|
34
|
+
attr_accessor :dry_run
|
|
35
|
+
|
|
33
36
|
# The post excerpt as HTML, exactly as stored.
|
|
34
37
|
attr_accessor :excerpt
|
|
35
38
|
|
|
@@ -77,6 +80,7 @@ module UltracartClient
|
|
|
77
80
|
:'blog_post_oid' => :'blog_post_oid',
|
|
78
81
|
:'body' => :'body',
|
|
79
82
|
:'created_dts' => :'created_dts',
|
|
83
|
+
:'dry_run' => :'dry_run',
|
|
80
84
|
:'excerpt' => :'excerpt',
|
|
81
85
|
:'images' => :'images',
|
|
82
86
|
:'last_modified_dts' => :'last_modified_dts',
|
|
@@ -106,6 +110,7 @@ module UltracartClient
|
|
|
106
110
|
:'blog_post_oid' => :'Integer',
|
|
107
111
|
:'body' => :'String',
|
|
108
112
|
:'created_dts' => :'String',
|
|
113
|
+
:'dry_run' => :'Boolean',
|
|
109
114
|
:'excerpt' => :'String',
|
|
110
115
|
:'images' => :'Array<SfvbBlogPostImage>',
|
|
111
116
|
:'last_modified_dts' => :'String',
|
|
@@ -163,6 +168,10 @@ module UltracartClient
|
|
|
163
168
|
self.created_dts = attributes[:'created_dts']
|
|
164
169
|
end
|
|
165
170
|
|
|
171
|
+
if attributes.key?(:'dry_run')
|
|
172
|
+
self.dry_run = attributes[:'dry_run']
|
|
173
|
+
end
|
|
174
|
+
|
|
166
175
|
if attributes.key?(:'excerpt')
|
|
167
176
|
self.excerpt = attributes[:'excerpt']
|
|
168
177
|
end
|
|
@@ -243,6 +252,7 @@ module UltracartClient
|
|
|
243
252
|
blog_post_oid == o.blog_post_oid &&
|
|
244
253
|
body == o.body &&
|
|
245
254
|
created_dts == o.created_dts &&
|
|
255
|
+
dry_run == o.dry_run &&
|
|
246
256
|
excerpt == o.excerpt &&
|
|
247
257
|
images == o.images &&
|
|
248
258
|
last_modified_dts == o.last_modified_dts &&
|
|
@@ -267,7 +277,7 @@ module UltracartClient
|
|
|
267
277
|
# Calculates hash code according to all attributes.
|
|
268
278
|
# @return [Integer] Hash code
|
|
269
279
|
def hash
|
|
270
|
-
[allow_comments, author, blog_post_oid, body, created_dts, excerpt, images, last_modified_dts, publication_dts, seo_description, seo_keywords, seo_title, tags, title, unassigned, url_part, view_url, visibility].hash
|
|
280
|
+
[allow_comments, author, blog_post_oid, body, created_dts, dry_run, excerpt, images, last_modified_dts, publication_dts, seo_description, seo_keywords, seo_title, tags, title, unassigned, url_part, view_url, visibility].hash
|
|
271
281
|
end
|
|
272
282
|
|
|
273
283
|
# Builds the object from hash
|
|
@@ -24,6 +24,9 @@ module UltracartClient
|
|
|
24
24
|
# The post body as HTML, up to 1 MB, rendered exactly as stored. Refused with sfvb.unsafe_html if it could run script - script and other executable tags, on attributes, links that are not http, https, mailto, tel or relative, and iframes other than YouTube or Vimeo players. Reference an attached image by the url the post's images report.
|
|
25
25
|
attr_accessor :body
|
|
26
26
|
|
|
27
|
+
# On an update, true to run every check the write would run and save nothing. A refusal comes back exactly as it would on the real write.
|
|
28
|
+
attr_accessor :dry_run
|
|
29
|
+
|
|
27
30
|
# The post excerpt as HTML, up to 256 KB. Held to the same rule as body.
|
|
28
31
|
attr_accessor :excerpt
|
|
29
32
|
|
|
@@ -79,6 +82,7 @@ module UltracartClient
|
|
|
79
82
|
:'allow_comments' => :'allow_comments',
|
|
80
83
|
:'author' => :'author',
|
|
81
84
|
:'body' => :'body',
|
|
85
|
+
:'dry_run' => :'dry_run',
|
|
82
86
|
:'excerpt' => :'excerpt',
|
|
83
87
|
:'publication_dts' => :'publication_dts',
|
|
84
88
|
:'seo_description' => :'seo_description',
|
|
@@ -102,6 +106,7 @@ module UltracartClient
|
|
|
102
106
|
:'allow_comments' => :'Boolean',
|
|
103
107
|
:'author' => :'String',
|
|
104
108
|
:'body' => :'String',
|
|
109
|
+
:'dry_run' => :'Boolean',
|
|
105
110
|
:'excerpt' => :'String',
|
|
106
111
|
:'publication_dts' => :'String',
|
|
107
112
|
:'seo_description' => :'String',
|
|
@@ -147,6 +152,10 @@ module UltracartClient
|
|
|
147
152
|
self.body = attributes[:'body']
|
|
148
153
|
end
|
|
149
154
|
|
|
155
|
+
if attributes.key?(:'dry_run')
|
|
156
|
+
self.dry_run = attributes[:'dry_run']
|
|
157
|
+
end
|
|
158
|
+
|
|
150
159
|
if attributes.key?(:'excerpt')
|
|
151
160
|
self.excerpt = attributes[:'excerpt']
|
|
152
161
|
end
|
|
@@ -219,6 +228,7 @@ module UltracartClient
|
|
|
219
228
|
allow_comments == o.allow_comments &&
|
|
220
229
|
author == o.author &&
|
|
221
230
|
body == o.body &&
|
|
231
|
+
dry_run == o.dry_run &&
|
|
222
232
|
excerpt == o.excerpt &&
|
|
223
233
|
publication_dts == o.publication_dts &&
|
|
224
234
|
seo_description == o.seo_description &&
|
|
@@ -239,7 +249,7 @@ module UltracartClient
|
|
|
239
249
|
# Calculates hash code according to all attributes.
|
|
240
250
|
# @return [Integer] Hash code
|
|
241
251
|
def hash
|
|
242
|
-
[allow_comments, author, body, excerpt, publication_dts, seo_description, seo_keywords, seo_title, tags, title, url_part, visibility].hash
|
|
252
|
+
[allow_comments, author, body, dry_run, excerpt, publication_dts, seo_description, seo_keywords, seo_title, tags, title, url_part, visibility].hash
|
|
243
253
|
end
|
|
244
254
|
|
|
245
255
|
# Builds the object from hash
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#UltraCart Rest API V2
|
|
3
|
+
|
|
4
|
+
#UltraCart REST API Version 2
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 2.0.0
|
|
7
|
+
Contact: support@ultracart.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
OpenAPI Generator version: 6.0.1-SNAPSHOT
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'date'
|
|
14
|
+
require 'time'
|
|
15
|
+
|
|
16
|
+
module UltracartClient
|
|
17
|
+
class SfvbStepCounts
|
|
18
|
+
# Messages with a click.
|
|
19
|
+
attr_accessor :clicked
|
|
20
|
+
|
|
21
|
+
# For a step that isn't an email, the customers that passed through it.
|
|
22
|
+
attr_accessor :customers
|
|
23
|
+
|
|
24
|
+
# Messages delivered.
|
|
25
|
+
attr_accessor :delivered
|
|
26
|
+
|
|
27
|
+
# Emails opened.
|
|
28
|
+
attr_accessor :opened
|
|
29
|
+
|
|
30
|
+
# Messages sent.
|
|
31
|
+
attr_accessor :sent
|
|
32
|
+
|
|
33
|
+
# Customers who reached the step and were not sent anything. The dispatch log says why.
|
|
34
|
+
attr_accessor :skipped
|
|
35
|
+
|
|
36
|
+
# email (the step's email, all time) or step (this step, the last 90 days).
|
|
37
|
+
attr_accessor :source
|
|
38
|
+
|
|
39
|
+
# Spam complaints.
|
|
40
|
+
attr_accessor :spam
|
|
41
|
+
|
|
42
|
+
# Unsubscribes from these messages.
|
|
43
|
+
attr_accessor :unsubscribed
|
|
44
|
+
|
|
45
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
|
46
|
+
def self.attribute_map
|
|
47
|
+
{
|
|
48
|
+
:'clicked' => :'clicked',
|
|
49
|
+
:'customers' => :'customers',
|
|
50
|
+
:'delivered' => :'delivered',
|
|
51
|
+
:'opened' => :'opened',
|
|
52
|
+
:'sent' => :'sent',
|
|
53
|
+
:'skipped' => :'skipped',
|
|
54
|
+
:'source' => :'source',
|
|
55
|
+
:'spam' => :'spam',
|
|
56
|
+
:'unsubscribed' => :'unsubscribed'
|
|
57
|
+
}
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Returns all the JSON keys this model knows about
|
|
61
|
+
def self.acceptable_attributes
|
|
62
|
+
attribute_map.values
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Attribute type mapping.
|
|
66
|
+
def self.openapi_types
|
|
67
|
+
{
|
|
68
|
+
:'clicked' => :'Integer',
|
|
69
|
+
:'customers' => :'Integer',
|
|
70
|
+
:'delivered' => :'Integer',
|
|
71
|
+
:'opened' => :'Integer',
|
|
72
|
+
:'sent' => :'Integer',
|
|
73
|
+
:'skipped' => :'Integer',
|
|
74
|
+
:'source' => :'String',
|
|
75
|
+
:'spam' => :'Integer',
|
|
76
|
+
:'unsubscribed' => :'Integer'
|
|
77
|
+
}
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# List of attributes with nullable: true
|
|
81
|
+
def self.openapi_nullable
|
|
82
|
+
Set.new([
|
|
83
|
+
])
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# Initializes the object
|
|
87
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
88
|
+
def initialize(attributes = {})
|
|
89
|
+
if (!attributes.is_a?(Hash))
|
|
90
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `UltracartClient::SfvbStepCounts` initialize method"
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
|
94
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
95
|
+
if (!self.class.attribute_map.key?(k.to_sym))
|
|
96
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `UltracartClient::SfvbStepCounts`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
|
|
97
|
+
end
|
|
98
|
+
h[k.to_sym] = v
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if attributes.key?(:'clicked')
|
|
102
|
+
self.clicked = attributes[:'clicked']
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
if attributes.key?(:'customers')
|
|
106
|
+
self.customers = attributes[:'customers']
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
if attributes.key?(:'delivered')
|
|
110
|
+
self.delivered = attributes[:'delivered']
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
if attributes.key?(:'opened')
|
|
114
|
+
self.opened = attributes[:'opened']
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
if attributes.key?(:'sent')
|
|
118
|
+
self.sent = attributes[:'sent']
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
if attributes.key?(:'skipped')
|
|
122
|
+
self.skipped = attributes[:'skipped']
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
if attributes.key?(:'source')
|
|
126
|
+
self.source = attributes[:'source']
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
if attributes.key?(:'spam')
|
|
130
|
+
self.spam = attributes[:'spam']
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
if attributes.key?(:'unsubscribed')
|
|
134
|
+
self.unsubscribed = attributes[:'unsubscribed']
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
|
139
|
+
# @return Array for valid properties with the reasons
|
|
140
|
+
def list_invalid_properties
|
|
141
|
+
invalid_properties = Array.new
|
|
142
|
+
invalid_properties
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
# Check to see if the all the properties in the model are valid
|
|
146
|
+
# @return true if the model is valid
|
|
147
|
+
def valid?
|
|
148
|
+
true
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
# Checks equality by comparing each attribute.
|
|
152
|
+
# @param [Object] Object to be compared
|
|
153
|
+
def ==(o)
|
|
154
|
+
return true if self.equal?(o)
|
|
155
|
+
self.class == o.class &&
|
|
156
|
+
clicked == o.clicked &&
|
|
157
|
+
customers == o.customers &&
|
|
158
|
+
delivered == o.delivered &&
|
|
159
|
+
opened == o.opened &&
|
|
160
|
+
sent == o.sent &&
|
|
161
|
+
skipped == o.skipped &&
|
|
162
|
+
source == o.source &&
|
|
163
|
+
spam == o.spam &&
|
|
164
|
+
unsubscribed == o.unsubscribed
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
# @see the `==` method
|
|
168
|
+
# @param [Object] Object to be compared
|
|
169
|
+
def eql?(o)
|
|
170
|
+
self == o
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
# Calculates hash code according to all attributes.
|
|
174
|
+
# @return [Integer] Hash code
|
|
175
|
+
def hash
|
|
176
|
+
[clicked, customers, delivered, opened, sent, skipped, source, spam, unsubscribed].hash
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
# Builds the object from hash
|
|
180
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
181
|
+
# @return [Object] Returns the model itself
|
|
182
|
+
def self.build_from_hash(attributes)
|
|
183
|
+
new.build_from_hash(attributes)
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
# Builds the object from hash
|
|
187
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
188
|
+
# @return [Object] Returns the model itself
|
|
189
|
+
def build_from_hash(attributes)
|
|
190
|
+
return nil unless attributes.is_a?(Hash)
|
|
191
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
192
|
+
self.class.openapi_types.each_pair do |key, type|
|
|
193
|
+
if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
|
|
194
|
+
self.send("#{key}=", nil)
|
|
195
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
196
|
+
# check to ensure the input is an array given that the attribute
|
|
197
|
+
# is documented as an array but the input is not
|
|
198
|
+
if attributes[self.class.attribute_map[key]].is_a?(Array)
|
|
199
|
+
self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
|
|
200
|
+
end
|
|
201
|
+
elsif !attributes[self.class.attribute_map[key]].nil?
|
|
202
|
+
self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
self
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
# Deserializes the data based on type
|
|
210
|
+
# @param string type Data type
|
|
211
|
+
# @param string value Value to be deserialized
|
|
212
|
+
# @return [Object] Deserialized data
|
|
213
|
+
def _deserialize(type, value)
|
|
214
|
+
case type.to_sym
|
|
215
|
+
when :Time
|
|
216
|
+
Time.parse(value)
|
|
217
|
+
when :Date
|
|
218
|
+
Date.parse(value)
|
|
219
|
+
when :String
|
|
220
|
+
value.to_s
|
|
221
|
+
when :Integer
|
|
222
|
+
value.to_i
|
|
223
|
+
when :Float
|
|
224
|
+
value.to_f
|
|
225
|
+
when :Boolean
|
|
226
|
+
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
|
227
|
+
true
|
|
228
|
+
else
|
|
229
|
+
false
|
|
230
|
+
end
|
|
231
|
+
when :Object
|
|
232
|
+
# generic object (usually a Hash), return directly
|
|
233
|
+
value
|
|
234
|
+
when /\AArray<(?<inner_type>.+)>\z/
|
|
235
|
+
inner_type = Regexp.last_match[:inner_type]
|
|
236
|
+
value.map { |v| _deserialize(inner_type, v) }
|
|
237
|
+
when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
|
|
238
|
+
k_type = Regexp.last_match[:k_type]
|
|
239
|
+
v_type = Regexp.last_match[:v_type]
|
|
240
|
+
{}.tap do |hash|
|
|
241
|
+
value.each do |k, v|
|
|
242
|
+
hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
|
|
243
|
+
end
|
|
244
|
+
end
|
|
245
|
+
else # model
|
|
246
|
+
# models (e.g. Pet) or oneOf
|
|
247
|
+
klass = UltracartClient.const_get(type)
|
|
248
|
+
klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
|
|
249
|
+
end
|
|
250
|
+
end
|
|
251
|
+
|
|
252
|
+
# Returns the string representation of the object
|
|
253
|
+
# @return [String] String presentation of the object
|
|
254
|
+
def to_s
|
|
255
|
+
to_hash.to_s
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
# to_body is an alias to to_hash (backward compatibility)
|
|
259
|
+
# @return [Hash] Returns the object in the form of hash
|
|
260
|
+
def to_body
|
|
261
|
+
to_hash
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
# Returns the object in the form of hash
|
|
265
|
+
# @return [Hash] Returns the object in the form of hash
|
|
266
|
+
def to_hash
|
|
267
|
+
hash = {}
|
|
268
|
+
self.class.attribute_map.each_pair do |attr, param|
|
|
269
|
+
value = self.send(attr)
|
|
270
|
+
if value.nil?
|
|
271
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
272
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
hash[param] = _to_hash(value)
|
|
276
|
+
end
|
|
277
|
+
hash
|
|
278
|
+
end
|
|
279
|
+
|
|
280
|
+
# Outputs non-array value in the form of hash
|
|
281
|
+
# For object, use to_hash. Otherwise, just return the value
|
|
282
|
+
# @param [Object] value Any valid value
|
|
283
|
+
# @return [Hash] Returns the value in the form of hash
|
|
284
|
+
def _to_hash(value)
|
|
285
|
+
if value.is_a?(Array)
|
|
286
|
+
value.compact.map { |v| _to_hash(v) }
|
|
287
|
+
elsif value.is_a?(Hash)
|
|
288
|
+
{}.tap do |hash|
|
|
289
|
+
value.each { |k, v| hash[k] = _to_hash(v) }
|
|
290
|
+
end
|
|
291
|
+
elsif value.respond_to? :to_hash
|
|
292
|
+
value.to_hash
|
|
293
|
+
else
|
|
294
|
+
value
|
|
295
|
+
end
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
end
|
|
299
|
+
|
|
300
|
+
end
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#UltraCart Rest API V2
|
|
3
|
+
|
|
4
|
+
#UltraCart REST API Version 2
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 2.0.0
|
|
7
|
+
Contact: support@ultracart.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
OpenAPI Generator version: 6.0.1-SNAPSHOT
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'date'
|
|
14
|
+
require 'time'
|
|
15
|
+
|
|
16
|
+
module UltracartClient
|
|
17
|
+
class SfvbStepDispatchLog
|
|
18
|
+
# The customer the entry is about.
|
|
19
|
+
attr_accessor :customer_uuid
|
|
20
|
+
|
|
21
|
+
# What happened, as the admin's Dispatch Logs screen shows it, with email addresses and phone numbers masked.
|
|
22
|
+
attr_accessor :detail
|
|
23
|
+
|
|
24
|
+
# When the entry was written, as ISO 8601 with the server's offset.
|
|
25
|
+
attr_accessor :logged_at
|
|
26
|
+
|
|
27
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
|
28
|
+
def self.attribute_map
|
|
29
|
+
{
|
|
30
|
+
:'customer_uuid' => :'customer_uuid',
|
|
31
|
+
:'detail' => :'detail',
|
|
32
|
+
:'logged_at' => :'logged_at'
|
|
33
|
+
}
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Returns all the JSON keys this model knows about
|
|
37
|
+
def self.acceptable_attributes
|
|
38
|
+
attribute_map.values
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Attribute type mapping.
|
|
42
|
+
def self.openapi_types
|
|
43
|
+
{
|
|
44
|
+
:'customer_uuid' => :'String',
|
|
45
|
+
:'detail' => :'String',
|
|
46
|
+
:'logged_at' => :'String'
|
|
47
|
+
}
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# List of attributes with nullable: true
|
|
51
|
+
def self.openapi_nullable
|
|
52
|
+
Set.new([
|
|
53
|
+
])
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# Initializes the object
|
|
57
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
58
|
+
def initialize(attributes = {})
|
|
59
|
+
if (!attributes.is_a?(Hash))
|
|
60
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `UltracartClient::SfvbStepDispatchLog` initialize method"
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
|
64
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
65
|
+
if (!self.class.attribute_map.key?(k.to_sym))
|
|
66
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `UltracartClient::SfvbStepDispatchLog`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
|
|
67
|
+
end
|
|
68
|
+
h[k.to_sym] = v
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if attributes.key?(:'customer_uuid')
|
|
72
|
+
self.customer_uuid = attributes[:'customer_uuid']
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
if attributes.key?(:'detail')
|
|
76
|
+
self.detail = attributes[:'detail']
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
if attributes.key?(:'logged_at')
|
|
80
|
+
self.logged_at = attributes[:'logged_at']
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
|
85
|
+
# @return Array for valid properties with the reasons
|
|
86
|
+
def list_invalid_properties
|
|
87
|
+
invalid_properties = Array.new
|
|
88
|
+
invalid_properties
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
# Check to see if the all the properties in the model are valid
|
|
92
|
+
# @return true if the model is valid
|
|
93
|
+
def valid?
|
|
94
|
+
true
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# Checks equality by comparing each attribute.
|
|
98
|
+
# @param [Object] Object to be compared
|
|
99
|
+
def ==(o)
|
|
100
|
+
return true if self.equal?(o)
|
|
101
|
+
self.class == o.class &&
|
|
102
|
+
customer_uuid == o.customer_uuid &&
|
|
103
|
+
detail == o.detail &&
|
|
104
|
+
logged_at == o.logged_at
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# @see the `==` method
|
|
108
|
+
# @param [Object] Object to be compared
|
|
109
|
+
def eql?(o)
|
|
110
|
+
self == o
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
# Calculates hash code according to all attributes.
|
|
114
|
+
# @return [Integer] Hash code
|
|
115
|
+
def hash
|
|
116
|
+
[customer_uuid, detail, logged_at].hash
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
# Builds the object from hash
|
|
120
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
121
|
+
# @return [Object] Returns the model itself
|
|
122
|
+
def self.build_from_hash(attributes)
|
|
123
|
+
new.build_from_hash(attributes)
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# Builds the object from hash
|
|
127
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
128
|
+
# @return [Object] Returns the model itself
|
|
129
|
+
def build_from_hash(attributes)
|
|
130
|
+
return nil unless attributes.is_a?(Hash)
|
|
131
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
132
|
+
self.class.openapi_types.each_pair do |key, type|
|
|
133
|
+
if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
|
|
134
|
+
self.send("#{key}=", nil)
|
|
135
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
136
|
+
# check to ensure the input is an array given that the attribute
|
|
137
|
+
# is documented as an array but the input is not
|
|
138
|
+
if attributes[self.class.attribute_map[key]].is_a?(Array)
|
|
139
|
+
self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
|
|
140
|
+
end
|
|
141
|
+
elsif !attributes[self.class.attribute_map[key]].nil?
|
|
142
|
+
self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
|
|
143
|
+
end
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
self
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
# Deserializes the data based on type
|
|
150
|
+
# @param string type Data type
|
|
151
|
+
# @param string value Value to be deserialized
|
|
152
|
+
# @return [Object] Deserialized data
|
|
153
|
+
def _deserialize(type, value)
|
|
154
|
+
case type.to_sym
|
|
155
|
+
when :Time
|
|
156
|
+
Time.parse(value)
|
|
157
|
+
when :Date
|
|
158
|
+
Date.parse(value)
|
|
159
|
+
when :String
|
|
160
|
+
value.to_s
|
|
161
|
+
when :Integer
|
|
162
|
+
value.to_i
|
|
163
|
+
when :Float
|
|
164
|
+
value.to_f
|
|
165
|
+
when :Boolean
|
|
166
|
+
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
|
167
|
+
true
|
|
168
|
+
else
|
|
169
|
+
false
|
|
170
|
+
end
|
|
171
|
+
when :Object
|
|
172
|
+
# generic object (usually a Hash), return directly
|
|
173
|
+
value
|
|
174
|
+
when /\AArray<(?<inner_type>.+)>\z/
|
|
175
|
+
inner_type = Regexp.last_match[:inner_type]
|
|
176
|
+
value.map { |v| _deserialize(inner_type, v) }
|
|
177
|
+
when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
|
|
178
|
+
k_type = Regexp.last_match[:k_type]
|
|
179
|
+
v_type = Regexp.last_match[:v_type]
|
|
180
|
+
{}.tap do |hash|
|
|
181
|
+
value.each do |k, v|
|
|
182
|
+
hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
|
|
183
|
+
end
|
|
184
|
+
end
|
|
185
|
+
else # model
|
|
186
|
+
# models (e.g. Pet) or oneOf
|
|
187
|
+
klass = UltracartClient.const_get(type)
|
|
188
|
+
klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
# Returns the string representation of the object
|
|
193
|
+
# @return [String] String presentation of the object
|
|
194
|
+
def to_s
|
|
195
|
+
to_hash.to_s
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
# to_body is an alias to to_hash (backward compatibility)
|
|
199
|
+
# @return [Hash] Returns the object in the form of hash
|
|
200
|
+
def to_body
|
|
201
|
+
to_hash
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
# Returns the object in the form of hash
|
|
205
|
+
# @return [Hash] Returns the object in the form of hash
|
|
206
|
+
def to_hash
|
|
207
|
+
hash = {}
|
|
208
|
+
self.class.attribute_map.each_pair do |attr, param|
|
|
209
|
+
value = self.send(attr)
|
|
210
|
+
if value.nil?
|
|
211
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
212
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
hash[param] = _to_hash(value)
|
|
216
|
+
end
|
|
217
|
+
hash
|
|
218
|
+
end
|
|
219
|
+
|
|
220
|
+
# Outputs non-array value in the form of hash
|
|
221
|
+
# For object, use to_hash. Otherwise, just return the value
|
|
222
|
+
# @param [Object] value Any valid value
|
|
223
|
+
# @return [Hash] Returns the value in the form of hash
|
|
224
|
+
def _to_hash(value)
|
|
225
|
+
if value.is_a?(Array)
|
|
226
|
+
value.compact.map { |v| _to_hash(v) }
|
|
227
|
+
elsif value.is_a?(Hash)
|
|
228
|
+
{}.tap do |hash|
|
|
229
|
+
value.each { |k, v| hash[k] = _to_hash(v) }
|
|
230
|
+
end
|
|
231
|
+
elsif value.respond_to? :to_hash
|
|
232
|
+
value.to_hash
|
|
233
|
+
else
|
|
234
|
+
value
|
|
235
|
+
end
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
end
|
|
239
|
+
|
|
240
|
+
end
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#UltraCart Rest API V2
|
|
3
|
+
|
|
4
|
+
#UltraCart REST API Version 2
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 2.0.0
|
|
7
|
+
Contact: support@ultracart.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
OpenAPI Generator version: 6.0.1-SNAPSHOT
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'date'
|
|
14
|
+
require 'time'
|
|
15
|
+
|
|
16
|
+
module UltracartClient
|
|
17
|
+
class SfvbStepDispatchLogsResponse
|
|
18
|
+
attr_accessor :counts
|
|
19
|
+
|
|
20
|
+
# The entries in the window, newest first.
|
|
21
|
+
attr_accessor :entries
|
|
22
|
+
|
|
23
|
+
# Send this as offset for the next page. Absent on the last page.
|
|
24
|
+
attr_accessor :next_offset
|
|
25
|
+
|
|
26
|
+
# What a person should know about reading these entries.
|
|
27
|
+
attr_accessor :notes
|
|
28
|
+
|
|
29
|
+
# The communication sequence the step is in.
|
|
30
|
+
attr_accessor :sequence_uuid
|
|
31
|
+
|
|
32
|
+
# The start of the window read, as ISO 8601.
|
|
33
|
+
attr_accessor :since
|
|
34
|
+
|
|
35
|
+
# The step's type, such as email, sms or wait.
|
|
36
|
+
attr_accessor :step_type
|
|
37
|
+
|
|
38
|
+
# The step.
|
|
39
|
+
attr_accessor :step_uuid
|
|
40
|
+
|
|
41
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
|
42
|
+
def self.attribute_map
|
|
43
|
+
{
|
|
44
|
+
:'counts' => :'counts',
|
|
45
|
+
:'entries' => :'entries',
|
|
46
|
+
:'next_offset' => :'next_offset',
|
|
47
|
+
:'notes' => :'notes',
|
|
48
|
+
:'sequence_uuid' => :'sequence_uuid',
|
|
49
|
+
:'since' => :'since',
|
|
50
|
+
:'step_type' => :'step_type',
|
|
51
|
+
:'step_uuid' => :'step_uuid'
|
|
52
|
+
}
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Returns all the JSON keys this model knows about
|
|
56
|
+
def self.acceptable_attributes
|
|
57
|
+
attribute_map.values
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Attribute type mapping.
|
|
61
|
+
def self.openapi_types
|
|
62
|
+
{
|
|
63
|
+
:'counts' => :'SfvbStepCounts',
|
|
64
|
+
:'entries' => :'Array<SfvbStepDispatchLog>',
|
|
65
|
+
:'next_offset' => :'Integer',
|
|
66
|
+
:'notes' => :'Array<String>',
|
|
67
|
+
:'sequence_uuid' => :'String',
|
|
68
|
+
:'since' => :'String',
|
|
69
|
+
:'step_type' => :'String',
|
|
70
|
+
:'step_uuid' => :'String'
|
|
71
|
+
}
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# List of attributes with nullable: true
|
|
75
|
+
def self.openapi_nullable
|
|
76
|
+
Set.new([
|
|
77
|
+
])
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# Initializes the object
|
|
81
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
82
|
+
def initialize(attributes = {})
|
|
83
|
+
if (!attributes.is_a?(Hash))
|
|
84
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `UltracartClient::SfvbStepDispatchLogsResponse` initialize method"
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
|
88
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
89
|
+
if (!self.class.attribute_map.key?(k.to_sym))
|
|
90
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `UltracartClient::SfvbStepDispatchLogsResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
|
|
91
|
+
end
|
|
92
|
+
h[k.to_sym] = v
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if attributes.key?(:'counts')
|
|
96
|
+
self.counts = attributes[:'counts']
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
if attributes.key?(:'entries')
|
|
100
|
+
if (value = attributes[:'entries']).is_a?(Array)
|
|
101
|
+
self.entries = value
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
if attributes.key?(:'next_offset')
|
|
106
|
+
self.next_offset = attributes[:'next_offset']
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
if attributes.key?(:'notes')
|
|
110
|
+
if (value = attributes[:'notes']).is_a?(Array)
|
|
111
|
+
self.notes = value
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
if attributes.key?(:'sequence_uuid')
|
|
116
|
+
self.sequence_uuid = attributes[:'sequence_uuid']
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
if attributes.key?(:'since')
|
|
120
|
+
self.since = attributes[:'since']
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
if attributes.key?(:'step_type')
|
|
124
|
+
self.step_type = attributes[:'step_type']
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
if attributes.key?(:'step_uuid')
|
|
128
|
+
self.step_uuid = attributes[:'step_uuid']
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
|
133
|
+
# @return Array for valid properties with the reasons
|
|
134
|
+
def list_invalid_properties
|
|
135
|
+
invalid_properties = Array.new
|
|
136
|
+
invalid_properties
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
# Check to see if the all the properties in the model are valid
|
|
140
|
+
# @return true if the model is valid
|
|
141
|
+
def valid?
|
|
142
|
+
true
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
# Checks equality by comparing each attribute.
|
|
146
|
+
# @param [Object] Object to be compared
|
|
147
|
+
def ==(o)
|
|
148
|
+
return true if self.equal?(o)
|
|
149
|
+
self.class == o.class &&
|
|
150
|
+
counts == o.counts &&
|
|
151
|
+
entries == o.entries &&
|
|
152
|
+
next_offset == o.next_offset &&
|
|
153
|
+
notes == o.notes &&
|
|
154
|
+
sequence_uuid == o.sequence_uuid &&
|
|
155
|
+
since == o.since &&
|
|
156
|
+
step_type == o.step_type &&
|
|
157
|
+
step_uuid == o.step_uuid
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
# @see the `==` method
|
|
161
|
+
# @param [Object] Object to be compared
|
|
162
|
+
def eql?(o)
|
|
163
|
+
self == o
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
# Calculates hash code according to all attributes.
|
|
167
|
+
# @return [Integer] Hash code
|
|
168
|
+
def hash
|
|
169
|
+
[counts, entries, next_offset, notes, sequence_uuid, since, step_type, step_uuid].hash
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
# Builds the object from hash
|
|
173
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
174
|
+
# @return [Object] Returns the model itself
|
|
175
|
+
def self.build_from_hash(attributes)
|
|
176
|
+
new.build_from_hash(attributes)
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
# Builds the object from hash
|
|
180
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
181
|
+
# @return [Object] Returns the model itself
|
|
182
|
+
def build_from_hash(attributes)
|
|
183
|
+
return nil unless attributes.is_a?(Hash)
|
|
184
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
185
|
+
self.class.openapi_types.each_pair do |key, type|
|
|
186
|
+
if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
|
|
187
|
+
self.send("#{key}=", nil)
|
|
188
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
189
|
+
# check to ensure the input is an array given that the attribute
|
|
190
|
+
# is documented as an array but the input is not
|
|
191
|
+
if attributes[self.class.attribute_map[key]].is_a?(Array)
|
|
192
|
+
self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
|
|
193
|
+
end
|
|
194
|
+
elsif !attributes[self.class.attribute_map[key]].nil?
|
|
195
|
+
self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
|
|
196
|
+
end
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
self
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
# Deserializes the data based on type
|
|
203
|
+
# @param string type Data type
|
|
204
|
+
# @param string value Value to be deserialized
|
|
205
|
+
# @return [Object] Deserialized data
|
|
206
|
+
def _deserialize(type, value)
|
|
207
|
+
case type.to_sym
|
|
208
|
+
when :Time
|
|
209
|
+
Time.parse(value)
|
|
210
|
+
when :Date
|
|
211
|
+
Date.parse(value)
|
|
212
|
+
when :String
|
|
213
|
+
value.to_s
|
|
214
|
+
when :Integer
|
|
215
|
+
value.to_i
|
|
216
|
+
when :Float
|
|
217
|
+
value.to_f
|
|
218
|
+
when :Boolean
|
|
219
|
+
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
|
220
|
+
true
|
|
221
|
+
else
|
|
222
|
+
false
|
|
223
|
+
end
|
|
224
|
+
when :Object
|
|
225
|
+
# generic object (usually a Hash), return directly
|
|
226
|
+
value
|
|
227
|
+
when /\AArray<(?<inner_type>.+)>\z/
|
|
228
|
+
inner_type = Regexp.last_match[:inner_type]
|
|
229
|
+
value.map { |v| _deserialize(inner_type, v) }
|
|
230
|
+
when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
|
|
231
|
+
k_type = Regexp.last_match[:k_type]
|
|
232
|
+
v_type = Regexp.last_match[:v_type]
|
|
233
|
+
{}.tap do |hash|
|
|
234
|
+
value.each do |k, v|
|
|
235
|
+
hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
|
|
236
|
+
end
|
|
237
|
+
end
|
|
238
|
+
else # model
|
|
239
|
+
# models (e.g. Pet) or oneOf
|
|
240
|
+
klass = UltracartClient.const_get(type)
|
|
241
|
+
klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
|
|
242
|
+
end
|
|
243
|
+
end
|
|
244
|
+
|
|
245
|
+
# Returns the string representation of the object
|
|
246
|
+
# @return [String] String presentation of the object
|
|
247
|
+
def to_s
|
|
248
|
+
to_hash.to_s
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
# to_body is an alias to to_hash (backward compatibility)
|
|
252
|
+
# @return [Hash] Returns the object in the form of hash
|
|
253
|
+
def to_body
|
|
254
|
+
to_hash
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
# Returns the object in the form of hash
|
|
258
|
+
# @return [Hash] Returns the object in the form of hash
|
|
259
|
+
def to_hash
|
|
260
|
+
hash = {}
|
|
261
|
+
self.class.attribute_map.each_pair do |attr, param|
|
|
262
|
+
value = self.send(attr)
|
|
263
|
+
if value.nil?
|
|
264
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
265
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
266
|
+
end
|
|
267
|
+
|
|
268
|
+
hash[param] = _to_hash(value)
|
|
269
|
+
end
|
|
270
|
+
hash
|
|
271
|
+
end
|
|
272
|
+
|
|
273
|
+
# Outputs non-array value in the form of hash
|
|
274
|
+
# For object, use to_hash. Otherwise, just return the value
|
|
275
|
+
# @param [Object] value Any valid value
|
|
276
|
+
# @return [Hash] Returns the value in the form of hash
|
|
277
|
+
def _to_hash(value)
|
|
278
|
+
if value.is_a?(Array)
|
|
279
|
+
value.compact.map { |v| _to_hash(v) }
|
|
280
|
+
elsif value.is_a?(Hash)
|
|
281
|
+
{}.tap do |hash|
|
|
282
|
+
value.each { |k, v| hash[k] = _to_hash(v) }
|
|
283
|
+
end
|
|
284
|
+
elsif value.respond_to? :to_hash
|
|
285
|
+
value.to_hash
|
|
286
|
+
else
|
|
287
|
+
value
|
|
288
|
+
end
|
|
289
|
+
end
|
|
290
|
+
|
|
291
|
+
end
|
|
292
|
+
|
|
293
|
+
end
|
data/lib/ultracart_api.rb
CHANGED
|
@@ -1222,6 +1222,9 @@ require 'ultracart_api/models/sfvb_sitemaps_response'
|
|
|
1222
1222
|
require 'ultracart_api/models/sfvb_smart_attribution'
|
|
1223
1223
|
require 'ultracart_api/models/sfvb_smart_attribution_platform'
|
|
1224
1224
|
require 'ultracart_api/models/sfvb_smart_attribution_request'
|
|
1225
|
+
require 'ultracart_api/models/sfvb_step_counts'
|
|
1226
|
+
require 'ultracart_api/models/sfvb_step_dispatch_log'
|
|
1227
|
+
require 'ultracart_api/models/sfvb_step_dispatch_logs_response'
|
|
1225
1228
|
require 'ultracart_api/models/sfvb_storefront'
|
|
1226
1229
|
require 'ultracart_api/models/sfvb_storefronts_response'
|
|
1227
1230
|
require 'ultracart_api/models/sfvb_template'
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ultracart_api
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.1.
|
|
4
|
+
version: 4.1.228
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- UltraCart
|
|
@@ -1284,6 +1284,9 @@ files:
|
|
|
1284
1284
|
- docs/SfvbSmartAttribution.md
|
|
1285
1285
|
- docs/SfvbSmartAttributionPlatform.md
|
|
1286
1286
|
- docs/SfvbSmartAttributionRequest.md
|
|
1287
|
+
- docs/SfvbStepCounts.md
|
|
1288
|
+
- docs/SfvbStepDispatchLog.md
|
|
1289
|
+
- docs/SfvbStepDispatchLogsResponse.md
|
|
1287
1290
|
- docs/SfvbStorefront.md
|
|
1288
1291
|
- docs/SfvbStorefrontsResponse.md
|
|
1289
1292
|
- docs/SfvbTemplate.md
|
|
@@ -2677,6 +2680,9 @@ files:
|
|
|
2677
2680
|
- lib/ultracart_api/models/sfvb_smart_attribution.rb
|
|
2678
2681
|
- lib/ultracart_api/models/sfvb_smart_attribution_platform.rb
|
|
2679
2682
|
- lib/ultracart_api/models/sfvb_smart_attribution_request.rb
|
|
2683
|
+
- lib/ultracart_api/models/sfvb_step_counts.rb
|
|
2684
|
+
- lib/ultracart_api/models/sfvb_step_dispatch_log.rb
|
|
2685
|
+
- lib/ultracart_api/models/sfvb_step_dispatch_logs_response.rb
|
|
2680
2686
|
- lib/ultracart_api/models/sfvb_storefront.rb
|
|
2681
2687
|
- lib/ultracart_api/models/sfvb_storefronts_response.rb
|
|
2682
2688
|
- lib/ultracart_api/models/sfvb_template.rb
|