sendx-ruby-sdk 1.1.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +220 -81
- data/lib/sendx-ruby-sdk/api/campaign_api.rb +95 -143
- data/lib/sendx-ruby-sdk/api/contact_api.rb +129 -96
- data/lib/sendx-ruby-sdk/api/custom_field_api.rb +391 -0
- data/lib/sendx-ruby-sdk/api/email_sending_api.rb +158 -0
- data/lib/sendx-ruby-sdk/api/event_api.rb +91 -57
- data/lib/sendx-ruby-sdk/api/events_api.rb +158 -0
- data/lib/sendx-ruby-sdk/api/getting_started_api.rb +2 -2
- data/lib/sendx-ruby-sdk/api/list_api.rb +126 -91
- data/lib/sendx-ruby-sdk/api/post_api.rb +380 -0
- data/lib/sendx-ruby-sdk/api/post_category_api.rb +362 -0
- data/lib/sendx-ruby-sdk/api/post_tag_api.rb +362 -0
- data/lib/sendx-ruby-sdk/api/report_api.rb +90 -0
- data/lib/sendx-ruby-sdk/api/reports_api.rb +4 -4
- data/lib/sendx-ruby-sdk/api/sender_api.rb +28 -37
- data/lib/sendx-ruby-sdk/api/tag_api.rb +380 -0
- data/lib/sendx-ruby-sdk/api/tags_api.rb +8 -8
- data/lib/sendx-ruby-sdk/api/team_member_api.rb +147 -0
- data/lib/sendx-ruby-sdk/api/template_api.rb +391 -0
- data/lib/sendx-ruby-sdk/api/tracking_api.rb +158 -0
- data/lib/sendx-ruby-sdk/api/webhook_api.rb +362 -0
- data/lib/sendx-ruby-sdk/api_client.rb +10 -11
- data/lib/sendx-ruby-sdk/api_error.rb +3 -3
- data/lib/sendx-ruby-sdk/configuration.rb +6 -10
- data/lib/sendx-ruby-sdk/models/campaign.rb +23 -7
- data/lib/sendx-ruby-sdk/models/campaign_dashboard_data.rb +11 -5
- data/lib/sendx-ruby-sdk/models/campaign_request.rb +13 -41
- data/lib/sendx-ruby-sdk/models/contact.rb +11 -5
- data/lib/sendx-ruby-sdk/models/contact_request.rb +11 -5
- data/lib/sendx-ruby-sdk/models/create_response.rb +11 -5
- data/lib/sendx-ruby-sdk/models/custom_event_request.rb +37 -42
- data/lib/sendx-ruby-sdk/models/custom_field.rb +285 -0
- data/lib/sendx-ruby-sdk/models/customfield_customfield_id_delete200_response.rb +220 -0
- data/lib/sendx-ruby-sdk/models/dashboard_stats.rb +11 -5
- data/lib/sendx-ruby-sdk/models/delete_campaign200_response.rb +11 -5
- data/lib/sendx-ruby-sdk/models/delete_request.rb +11 -5
- data/lib/sendx-ruby-sdk/models/delete_response.rb +77 -13
- data/lib/sendx-ruby-sdk/models/e_custom_field.rb +295 -0
- data/lib/sendx-ruby-sdk/models/error_response.rb +288 -0
- data/lib/sendx-ruby-sdk/models/event_response.rb +13 -19
- data/lib/sendx-ruby-sdk/models/events_revenue_postback_get200_response.rb +229 -0
- data/lib/sendx-ruby-sdk/models/events_revenue_postback_get400_response.rb +220 -0
- data/lib/sendx-ruby-sdk/models/events_revenue_postback_get500_response.rb +220 -0
- data/lib/sendx-ruby-sdk/models/identify_error_response.rb +220 -0
- data/lib/sendx-ruby-sdk/models/identify_request.rb +52 -40
- data/lib/sendx-ruby-sdk/models/identify_response.rb +16 -19
- data/lib/sendx-ruby-sdk/models/last_sent_campaign_stat.rb +11 -5
- data/lib/sendx-ruby-sdk/models/link_stat.rb +232 -0
- data/lib/sendx-ruby-sdk/models/list_model.rb +11 -6
- data/lib/sendx-ruby-sdk/models/list_request.rb +11 -5
- data/lib/sendx-ruby-sdk/models/message_response.rb +229 -0
- data/lib/sendx-ruby-sdk/models/operation_response.rb +241 -0
- data/lib/sendx-ruby-sdk/models/postback_response.rb +229 -0
- data/lib/sendx-ruby-sdk/models/report_data.rb +11 -5
- data/lib/sendx-ruby-sdk/models/response.rb +11 -5
- data/lib/sendx-ruby-sdk/models/rest_e_campaign.rb +539 -0
- data/lib/sendx-ruby-sdk/models/rest_e_contact.rb +380 -0
- data/lib/sendx-ruby-sdk/models/rest_e_custom_field.rb +299 -0
- data/lib/sendx-ruby-sdk/models/rest_e_list.rb +238 -0
- data/lib/sendx-ruby-sdk/models/rest_e_post.rb +443 -0
- data/lib/sendx-ruby-sdk/models/rest_e_post_category.rb +238 -0
- data/lib/sendx-ruby-sdk/models/rest_e_post_tag.rb +238 -0
- data/lib/sendx-ruby-sdk/models/rest_e_sender.rb +265 -0
- data/lib/sendx-ruby-sdk/models/rest_e_tag.rb +238 -0
- data/lib/sendx-ruby-sdk/models/rest_e_template.rb +307 -0
- data/lib/sendx-ruby-sdk/models/rest_e_webhook.rb +349 -0
- data/lib/sendx-ruby-sdk/models/rest_r_campaign.rb +580 -0
- data/lib/sendx-ruby-sdk/models/rest_r_contact.rb +438 -0
- data/lib/sendx-ruby-sdk/models/rest_r_custom_field.rb +306 -0
- data/lib/sendx-ruby-sdk/models/rest_r_list.rb +291 -0
- data/lib/sendx-ruby-sdk/models/rest_r_member.rb +274 -0
- data/lib/sendx-ruby-sdk/models/rest_r_post.rb +384 -0
- data/lib/sendx-ruby-sdk/models/rest_r_post_category.rb +251 -0
- data/lib/sendx-ruby-sdk/models/rest_r_post_tag.rb +250 -0
- data/lib/sendx-ruby-sdk/models/rest_r_sender.rb +272 -0
- data/lib/sendx-ruby-sdk/models/rest_r_tag.rb +272 -0
- data/lib/sendx-ruby-sdk/models/rest_r_template.rb +366 -0
- data/lib/sendx-ruby-sdk/models/rest_r_webhook.rb +326 -0
- data/lib/sendx-ruby-sdk/models/rest_report_data.rb +312 -0
- data/lib/sendx-ruby-sdk/models/revenue_event_request.rb +37 -42
- data/lib/sendx-ruby-sdk/models/sender.rb +41 -5
- data/lib/sendx-ruby-sdk/models/sender_request.rb +31 -5
- data/lib/sendx-ruby-sdk/models/sender_response.rb +51 -5
- data/lib/sendx-ruby-sdk/models/tag.rb +11 -5
- data/lib/sendx-ruby-sdk/models/tag_request.rb +11 -5
- data/lib/sendx-ruby-sdk/models/template_email_message.rb +337 -0
- data/lib/sendx-ruby-sdk/models/track_request.rb +28 -20
- data/lib/sendx-ruby-sdk/models/track_response.rb +12 -6
- data/lib/sendx-ruby-sdk/models/webhook.rb +311 -0
- data/lib/sendx-ruby-sdk/models/webhook_object.rb +451 -0
- data/lib/sendx-ruby-sdk/models/webhook_request.rb +291 -0
- data/lib/sendx-ruby-sdk/models/x_attachment.rb +263 -0
- data/lib/sendx-ruby-sdk/models/x_email_message.rb +356 -0
- data/lib/sendx-ruby-sdk/models/x_email_response.rb +261 -0
- data/lib/sendx-ruby-sdk/models/x_from.rb +246 -0
- data/lib/sendx-ruby-sdk/models/x_reply_to.rb +246 -0
- data/lib/sendx-ruby-sdk/models/xto.rb +279 -0
- data/lib/sendx-ruby-sdk/version.rb +4 -4
- data/lib/sendx-ruby-sdk.rb +53 -25
- data/spec/api/custom_field_api_spec.rb +98 -0
- data/spec/api/email_sending_api_spec.rb +59 -0
- data/spec/api/events_api_spec.rb +59 -0
- data/spec/api/post_api_spec.rb +97 -0
- data/spec/api/post_category_api_spec.rb +95 -0
- data/spec/api/post_tag_api_spec.rb +95 -0
- data/spec/api/report_api_spec.rb +47 -0
- data/spec/api/tag_api_spec.rb +97 -0
- data/spec/api/team_member_api_spec.rb +58 -0
- data/spec/api/template_api_spec.rb +98 -0
- data/spec/api/tracking_api_spec.rb +59 -0
- data/spec/api/webhook_api_spec.rb +95 -0
- data/spec/models/custom_field_spec.rb +58 -0
- data/spec/models/customfield_customfield_id_delete200_response_spec.rb +36 -0
- data/spec/models/e_custom_field_spec.rb +64 -0
- data/spec/models/error_response_spec.rb +46 -0
- data/spec/models/events_revenue_postback_get200_response_spec.rb +42 -0
- data/spec/models/events_revenue_postback_get400_response_spec.rb +36 -0
- data/spec/models/events_revenue_postback_get500_response_spec.rb +36 -0
- data/spec/models/identify_error_response_spec.rb +36 -0
- data/spec/models/link_stat_spec.rb +42 -0
- data/spec/models/message_response_spec.rb +42 -0
- data/spec/models/operation_response_spec.rb +48 -0
- data/spec/models/postback_response_spec.rb +42 -0
- data/spec/models/rest_e_campaign_spec.rb +154 -0
- data/spec/models/rest_e_contact_spec.rb +78 -0
- data/spec/models/rest_e_custom_field_spec.rb +52 -0
- data/spec/models/rest_e_list_spec.rb +36 -0
- data/spec/models/rest_e_post_category_spec.rb +36 -0
- data/spec/models/rest_e_post_spec.rb +144 -0
- data/spec/models/rest_e_post_tag_spec.rb +36 -0
- data/spec/models/rest_e_sender_spec.rb +42 -0
- data/spec/models/rest_e_tag_spec.rb +36 -0
- data/spec/models/rest_e_template_spec.rb +66 -0
- data/spec/models/rest_e_webhook_spec.rb +84 -0
- data/spec/models/rest_r_campaign_spec.rb +178 -0
- data/spec/models/rest_r_contact_spec.rb +150 -0
- data/spec/models/rest_r_custom_field_spec.rb +58 -0
- data/spec/models/rest_r_list_spec.rb +64 -0
- data/spec/models/rest_r_member_spec.rb +72 -0
- data/spec/models/rest_r_post_category_spec.rb +54 -0
- data/spec/models/rest_r_post_spec.rb +144 -0
- data/spec/models/rest_r_post_tag_spec.rb +54 -0
- data/spec/models/rest_r_sender_spec.rb +54 -0
- data/spec/models/rest_r_tag_spec.rb +54 -0
- data/spec/models/rest_r_template_spec.rb +94 -0
- data/spec/models/rest_r_webhook_spec.rb +90 -0
- data/spec/models/rest_report_data_spec.rb +90 -0
- data/spec/models/template_email_message_spec.rb +72 -0
- data/spec/models/webhook_object_spec.rb +180 -0
- data/spec/models/webhook_request_spec.rb +78 -0
- data/spec/models/webhook_spec.rb +90 -0
- data/spec/models/x_attachment_spec.rb +42 -0
- data/spec/models/x_email_message_spec.rb +90 -0
- data/spec/models/x_email_response_spec.rb +60 -0
- data/spec/models/x_from_spec.rb +42 -0
- data/spec/models/x_reply_to_spec.rb +42 -0
- data/spec/models/xto_spec.rb +60 -0
- data/spec/spec_helper.rb +3 -3
- metadata +202 -28
@@ -1,12 +1,12 @@
|
|
1
1
|
=begin
|
2
2
|
#SendX REST API
|
3
3
|
|
4
|
-
## Introduction SendX is
|
4
|
+
## SendX REST API Documentation ## 🚀 Introduction The SendX API is organized around REST principles. Our API has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs. **Key Features:** - 🔒 **Security**: Team-based authentication with optional member-level access - 🎯 **Resource-Oriented**: RESTful design with clear resource boundaries - 📊 **Rich Data Models**: Three-layer model system (Input/Output/Internal) - 🔗 **Relationships**: Automatic prefix handling for resource relationships - 📈 **Scalable**: Built for high-volume email marketing operations ## 🏗️ Architecture Overview SendX uses a three-layer model architecture: 1. **Input Models** (`RestE*`): For API requests 2. **Output Models** (`RestR*`): For API responses with prefixed IDs 3. **Internal Models**: Core business logic (not exposed in API) ## 🔐 Security & Authentication SendX uses API key authentication: ### Team API Key ```http X-Team-ApiKey: YOUR_TEAM_API_KEY ``` - **Required for all requests** - Team-level access to resources - Available in SendX Settings → Team API Key ## 🆔 Encrypted ID System SendX uses encrypted IDs for security and better developer experience: - **Internal IDs**: Sequential integers (not exposed) - **Encrypted IDs**: 22-character alphanumeric strings - **Prefixed IDs**: Resource-type prefixes in API responses (`contact_<22-char-id>`) ### ID Format **All resource IDs follow this pattern:** ``` <resource_prefix>_<22_character_alphanumeric_string> ``` **Example:** ```json { \"id\": \"contact_BnKjkbBBS500CoBCP0oChQ\", \"lists\": [\"list_OcuxJHdiAvujmwQVJfd3ss\", \"list_0tOFLp5RgV7s3LNiHrjGYs\"], \"tags\": [\"tag_UhsDkjL772Qbj5lWtT62VK\", \"tag_fL7t9lsnZ9swvx2HrtQ9wM\"] } ``` ## 📚 Resource Prefixes | Resource | Prefix | Example | |----------|--------|---------| | Contact | `contact_` | `contact_BnKjkbBBS500CoBCP0oChQ` | | Campaign | `campaign_` | `campaign_LUE9BTxmksSmqHWbh96zsn` | | List | `list_` | `list_OcuxJHdiAvujmwQVJfd3ss` | | Tag | `tag_` | `tag_UhsDkjL772Qbj5lWtT62VK` | | Sender | `sender_` | `sender_4vK3WFhMgvOwUNyaL4QxCD` | | Template | `template_` | `template_f3lJvTEhSjKGVb5Lwc5SWS` | | Custom Field | `field_` | `field_MnuqBAG2NPLm7PZMWbjQxt` | | Webhook | `webhook_` | `webhook_9l154iiXlZoPo7vngmamee` | | Post | `post_` | `post_XyZ123aBc456DeF789GhI` | | Post Category | `post_category_` | `post_category_YzS1wOU20yw87UUHKxMzwn` | | Post Tag | `post_tag_` | `post_tag_123XyZ456AbC` | | Member | `member_` | `member_JkL012MnO345PqR678` | ## 🎯 Best Practices ### Error Handling - **Always check status codes**: 2xx = success, 4xx = client error, 5xx = server error - **Read error messages**: Descriptive messages help debug issues - **Handle rate limits**: Respect API rate limits for optimal performance ### Data Validation - **Email format**: Must be valid email addresses - **Required fields**: Check documentation for mandatory fields - **Field lengths**: Respect maximum length constraints ### Performance - **Pagination**: Use offset/limit for large datasets - **Batch operations**: Process multiple items when supported - **Caching**: Cache responses when appropriate ## 🛠️ SDKs & Integration Official SDKs available for: - [Golang](https://github.com/sendx/sendx-go-sdk) - [Python](https://github.com/sendx/sendx-python-sdk) - [Ruby](https://github.com/sendx/sendx-ruby-sdk) - [Java](https://github.com/sendx/sendx-java-sdk) - [PHP](https://github.com/sendx/sendx-php-sdk) - [JavaScript](https://github.com/sendx/sendx-javascript-sdk) ## 📞 Support Need help? Contact us: - 💬 **Website Chat**: Available on sendx.io - 📧 **Email**: hello@sendx.io - 📚 **Documentation**: Full guides at help.sendx.io --- **API Endpoint:** `https://api.sendx.io/api/v1/rest` [<img src=\"https://run.pstmn.io/button.svg\" alt=\"Run In Postman\" style=\"width: 128px; height: 32px;\">](https://god.gw.postman.com/run-collection/33476323-44b198b0-5219-4619-a01f-cfc24d573885?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D33476323-44b198b0-5219-4619-a01f-cfc24d573885%26entityType%3Dcollection%26workspaceId%3D6b1e4f65-96a9-4136-9512-6266c852517e)
|
5
5
|
|
6
6
|
The version of the OpenAPI document: 1.0.0
|
7
|
-
Contact:
|
7
|
+
Contact: hello@sendx.io
|
8
8
|
Generated by: https://openapi-generator.tech
|
9
|
-
Generator version: 7.
|
9
|
+
Generator version: 7.13.0
|
10
10
|
|
11
11
|
=end
|
12
12
|
|
@@ -19,28 +19,28 @@ module SendX
|
|
19
19
|
def initialize(api_client = ApiClient.default)
|
20
20
|
@api_client = api_client
|
21
21
|
end
|
22
|
-
# Create
|
23
|
-
#
|
24
|
-
# @param
|
22
|
+
# Create campaign
|
23
|
+
# Creates a new email campaign.
|
24
|
+
# @param rest_e_campaign [RestECampaign]
|
25
25
|
# @param [Hash] opts the optional parameters
|
26
|
-
# @return [
|
27
|
-
def create_campaign(
|
28
|
-
data, _status_code, _headers = create_campaign_with_http_info(
|
26
|
+
# @return [RestRCampaign]
|
27
|
+
def create_campaign(rest_e_campaign, opts = {})
|
28
|
+
data, _status_code, _headers = create_campaign_with_http_info(rest_e_campaign, opts)
|
29
29
|
data
|
30
30
|
end
|
31
31
|
|
32
|
-
# Create
|
33
|
-
#
|
34
|
-
# @param
|
32
|
+
# Create campaign
|
33
|
+
# Creates a new email campaign.
|
34
|
+
# @param rest_e_campaign [RestECampaign]
|
35
35
|
# @param [Hash] opts the optional parameters
|
36
|
-
# @return [Array<(
|
37
|
-
def create_campaign_with_http_info(
|
36
|
+
# @return [Array<(RestRCampaign, Integer, Hash)>] RestRCampaign data, response status code and response headers
|
37
|
+
def create_campaign_with_http_info(rest_e_campaign, opts = {})
|
38
38
|
if @api_client.config.debugging
|
39
39
|
@api_client.config.logger.debug 'Calling API: CampaignApi.create_campaign ...'
|
40
40
|
end
|
41
|
-
# verify the required parameter '
|
42
|
-
if @api_client.config.client_side_validation &&
|
43
|
-
fail ArgumentError, "Missing the required parameter '
|
41
|
+
# verify the required parameter 'rest_e_campaign' is set
|
42
|
+
if @api_client.config.client_side_validation && rest_e_campaign.nil?
|
43
|
+
fail ArgumentError, "Missing the required parameter 'rest_e_campaign' when calling CampaignApi.create_campaign"
|
44
44
|
end
|
45
45
|
# resource path
|
46
46
|
local_var_path = '/campaign'
|
@@ -62,13 +62,13 @@ module SendX
|
|
62
62
|
form_params = opts[:form_params] || {}
|
63
63
|
|
64
64
|
# http body (model)
|
65
|
-
post_body = opts[:debug_body] || @api_client.object_to_http_body(
|
65
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(rest_e_campaign)
|
66
66
|
|
67
67
|
# return_type
|
68
|
-
return_type = opts[:debug_return_type] || '
|
68
|
+
return_type = opts[:debug_return_type] || 'RestRCampaign'
|
69
69
|
|
70
70
|
# auth_names
|
71
|
-
auth_names = opts[:debug_auth_names] || ['
|
71
|
+
auth_names = opts[:debug_auth_names] || ['TeamApiKey']
|
72
72
|
|
73
73
|
new_options = opts.merge(
|
74
74
|
:operation => :"CampaignApi.create_campaign",
|
@@ -87,31 +87,36 @@ module SendX
|
|
87
87
|
return data, status_code, headers
|
88
88
|
end
|
89
89
|
|
90
|
-
# Delete
|
91
|
-
# Deletes a
|
92
|
-
# @param
|
90
|
+
# Delete campaign
|
91
|
+
# Deletes a campaign.
|
92
|
+
# @param identifier [String] Campaign identifier to delete
|
93
93
|
# @param [Hash] opts the optional parameters
|
94
|
-
# @return [
|
95
|
-
def delete_campaign(
|
96
|
-
data, _status_code, _headers = delete_campaign_with_http_info(
|
94
|
+
# @return [DeleteResponse]
|
95
|
+
def delete_campaign(identifier, opts = {})
|
96
|
+
data, _status_code, _headers = delete_campaign_with_http_info(identifier, opts)
|
97
97
|
data
|
98
98
|
end
|
99
99
|
|
100
|
-
# Delete
|
101
|
-
# Deletes a
|
102
|
-
# @param
|
100
|
+
# Delete campaign
|
101
|
+
# Deletes a campaign.
|
102
|
+
# @param identifier [String] Campaign identifier to delete
|
103
103
|
# @param [Hash] opts the optional parameters
|
104
|
-
# @return [Array<(
|
105
|
-
def delete_campaign_with_http_info(
|
104
|
+
# @return [Array<(DeleteResponse, Integer, Hash)>] DeleteResponse data, response status code and response headers
|
105
|
+
def delete_campaign_with_http_info(identifier, opts = {})
|
106
106
|
if @api_client.config.debugging
|
107
107
|
@api_client.config.logger.debug 'Calling API: CampaignApi.delete_campaign ...'
|
108
108
|
end
|
109
|
-
# verify the required parameter '
|
110
|
-
if @api_client.config.client_side_validation &&
|
111
|
-
fail ArgumentError, "Missing the required parameter '
|
109
|
+
# verify the required parameter 'identifier' is set
|
110
|
+
if @api_client.config.client_side_validation && identifier.nil?
|
111
|
+
fail ArgumentError, "Missing the required parameter 'identifier' when calling CampaignApi.delete_campaign"
|
112
112
|
end
|
113
|
+
pattern = Regexp.new(/^(campaign_)?[a-zA-Z0-9]{22}$/)
|
114
|
+
if @api_client.config.client_side_validation && identifier !~ pattern
|
115
|
+
fail ArgumentError, "invalid value for 'identifier' when calling CampaignApi.delete_campaign, must conform to the pattern #{pattern}."
|
116
|
+
end
|
117
|
+
|
113
118
|
# resource path
|
114
|
-
local_var_path = '/campaign/{
|
119
|
+
local_var_path = '/campaign/{identifier}'.sub('{' + 'identifier' + '}', CGI.escape(identifier.to_s))
|
115
120
|
|
116
121
|
# query parameters
|
117
122
|
query_params = opts[:query_params] || {}
|
@@ -128,10 +133,10 @@ module SendX
|
|
128
133
|
post_body = opts[:debug_body]
|
129
134
|
|
130
135
|
# return_type
|
131
|
-
return_type = opts[:debug_return_type] || '
|
136
|
+
return_type = opts[:debug_return_type] || 'DeleteResponse'
|
132
137
|
|
133
138
|
# auth_names
|
134
|
-
auth_names = opts[:debug_auth_names] || ['
|
139
|
+
auth_names = opts[:debug_auth_names] || ['TeamApiKey']
|
135
140
|
|
136
141
|
new_options = opts.merge(
|
137
142
|
:operation => :"CampaignApi.delete_campaign",
|
@@ -150,102 +155,44 @@ module SendX
|
|
150
155
|
return data, status_code, headers
|
151
156
|
end
|
152
157
|
|
153
|
-
#
|
154
|
-
#
|
155
|
-
# @param campaign_request [CampaignRequest]
|
156
|
-
# @param campaign_id [String] The ID of the campaign to edit
|
158
|
+
# Get all campaigns
|
159
|
+
# Retrieves a paginated list of all campaigns.
|
157
160
|
# @param [Hash] opts the optional parameters
|
158
|
-
# @
|
159
|
-
|
160
|
-
|
161
|
+
# @option opts [Integer] :offset Number of campaigns to skip (default to 0)
|
162
|
+
# @option opts [Integer] :limit Maximum number of campaigns to return (default to 10)
|
163
|
+
# @option opts [String] :campaign_type Filter by campaign type (default to 'all')
|
164
|
+
# @return [Array<RestRCampaign>]
|
165
|
+
def get_all_campaigns(opts = {})
|
166
|
+
data, _status_code, _headers = get_all_campaigns_with_http_info(opts)
|
161
167
|
data
|
162
168
|
end
|
163
169
|
|
164
|
-
#
|
165
|
-
#
|
166
|
-
# @param campaign_request [CampaignRequest]
|
167
|
-
# @param campaign_id [String] The ID of the campaign to edit
|
170
|
+
# Get all campaigns
|
171
|
+
# Retrieves a paginated list of all campaigns.
|
168
172
|
# @param [Hash] opts the optional parameters
|
169
|
-
# @
|
170
|
-
|
173
|
+
# @option opts [Integer] :offset Number of campaigns to skip (default to 0)
|
174
|
+
# @option opts [Integer] :limit Maximum number of campaigns to return (default to 10)
|
175
|
+
# @option opts [String] :campaign_type Filter by campaign type (default to 'all')
|
176
|
+
# @return [Array<(Array<RestRCampaign>, Integer, Hash)>] Array<RestRCampaign> data, response status code and response headers
|
177
|
+
def get_all_campaigns_with_http_info(opts = {})
|
171
178
|
if @api_client.config.debugging
|
172
|
-
@api_client.config.logger.debug 'Calling API: CampaignApi.
|
173
|
-
end
|
174
|
-
# verify the required parameter 'campaign_request' is set
|
175
|
-
if @api_client.config.client_side_validation && campaign_request.nil?
|
176
|
-
fail ArgumentError, "Missing the required parameter 'campaign_request' when calling CampaignApi.edit_campaign"
|
179
|
+
@api_client.config.logger.debug 'Calling API: CampaignApi.get_all_campaigns ...'
|
177
180
|
end
|
178
|
-
|
179
|
-
|
180
|
-
fail ArgumentError, "Missing the required parameter 'campaign_id' when calling CampaignApi.edit_campaign"
|
181
|
+
if @api_client.config.client_side_validation && !opts[:'offset'].nil? && opts[:'offset'] < 0
|
182
|
+
fail ArgumentError, 'invalid value for "opts[:"offset"]" when calling CampaignApi.get_all_campaigns, must be greater than or equal to 0.'
|
181
183
|
end
|
182
|
-
# resource path
|
183
|
-
local_var_path = '/campaign/{campaignId}'.sub('{' + 'campaignId' + '}', CGI.escape(campaign_id.to_s))
|
184
|
-
|
185
|
-
# query parameters
|
186
|
-
query_params = opts[:query_params] || {}
|
187
184
|
|
188
|
-
|
189
|
-
|
190
|
-
# HTTP header 'Accept' (if needed)
|
191
|
-
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
192
|
-
# HTTP header 'Content-Type'
|
193
|
-
content_type = @api_client.select_header_content_type(['application/json'])
|
194
|
-
if !content_type.nil?
|
195
|
-
header_params['Content-Type'] = content_type
|
185
|
+
if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
|
186
|
+
fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling CampaignApi.get_all_campaigns, must be smaller than or equal to 100.'
|
196
187
|
end
|
197
188
|
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
# http body (model)
|
202
|
-
post_body = opts[:debug_body] || @api_client.object_to_http_body(campaign_request)
|
203
|
-
|
204
|
-
# return_type
|
205
|
-
return_type = opts[:debug_return_type] || 'Campaign'
|
206
|
-
|
207
|
-
# auth_names
|
208
|
-
auth_names = opts[:debug_auth_names] || ['apiKeyAuth']
|
209
|
-
|
210
|
-
new_options = opts.merge(
|
211
|
-
:operation => :"CampaignApi.edit_campaign",
|
212
|
-
:header_params => header_params,
|
213
|
-
:query_params => query_params,
|
214
|
-
:form_params => form_params,
|
215
|
-
:body => post_body,
|
216
|
-
:auth_names => auth_names,
|
217
|
-
:return_type => return_type
|
218
|
-
)
|
219
|
-
|
220
|
-
data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
|
221
|
-
if @api_client.config.debugging
|
222
|
-
@api_client.config.logger.debug "API called: CampaignApi#edit_campaign\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
189
|
+
if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
|
190
|
+
fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling CampaignApi.get_all_campaigns, must be greater than or equal to 1.'
|
223
191
|
end
|
224
|
-
return data, status_code, headers
|
225
|
-
end
|
226
|
-
|
227
|
-
# Get All Campaigns
|
228
|
-
# Retrieve a list of all campaigns.
|
229
|
-
# @param [Hash] opts the optional parameters
|
230
|
-
# @option opts [Integer] :offset Offset for pagination (default to 0)
|
231
|
-
# @option opts [Integer] :limit Limit for pagination (default to 20)
|
232
|
-
# @option opts [String] :search Search term to filter campaigns
|
233
|
-
# @return [Array<Campaign>]
|
234
|
-
def get_all_campaigns(opts = {})
|
235
|
-
data, _status_code, _headers = get_all_campaigns_with_http_info(opts)
|
236
|
-
data
|
237
|
-
end
|
238
192
|
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
# @option opts [Integer] :offset Offset for pagination (default to 0)
|
243
|
-
# @option opts [Integer] :limit Limit for pagination (default to 20)
|
244
|
-
# @option opts [String] :search Search term to filter campaigns
|
245
|
-
# @return [Array<(Array<Campaign>, Integer, Hash)>] Array<Campaign> data, response status code and response headers
|
246
|
-
def get_all_campaigns_with_http_info(opts = {})
|
247
|
-
if @api_client.config.debugging
|
248
|
-
@api_client.config.logger.debug 'Calling API: CampaignApi.get_all_campaigns ...'
|
193
|
+
allowable_values = ["all", "draft", "scheduled", "sent"]
|
194
|
+
if @api_client.config.client_side_validation && opts[:'campaign_type'] && !allowable_values.include?(opts[:'campaign_type'])
|
195
|
+
fail ArgumentError, "invalid value for \"campaign_type\", must be one of #{allowable_values}"
|
249
196
|
end
|
250
197
|
# resource path
|
251
198
|
local_var_path = '/campaign'
|
@@ -254,7 +201,7 @@ module SendX
|
|
254
201
|
query_params = opts[:query_params] || {}
|
255
202
|
query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
|
256
203
|
query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
|
257
|
-
query_params[:'
|
204
|
+
query_params[:'campaignType'] = opts[:'campaign_type'] if !opts[:'campaign_type'].nil?
|
258
205
|
|
259
206
|
# header parameters
|
260
207
|
header_params = opts[:header_params] || {}
|
@@ -268,10 +215,10 @@ module SendX
|
|
268
215
|
post_body = opts[:debug_body]
|
269
216
|
|
270
217
|
# return_type
|
271
|
-
return_type = opts[:debug_return_type] || 'Array<
|
218
|
+
return_type = opts[:debug_return_type] || 'Array<RestRCampaign>'
|
272
219
|
|
273
220
|
# auth_names
|
274
|
-
auth_names = opts[:debug_auth_names] || ['
|
221
|
+
auth_names = opts[:debug_auth_names] || ['TeamApiKey']
|
275
222
|
|
276
223
|
new_options = opts.merge(
|
277
224
|
:operation => :"CampaignApi.get_all_campaigns",
|
@@ -290,31 +237,36 @@ module SendX
|
|
290
237
|
return data, status_code, headers
|
291
238
|
end
|
292
239
|
|
293
|
-
# Get
|
294
|
-
#
|
295
|
-
# @param
|
240
|
+
# Get campaign by ID
|
241
|
+
# Retrieves detailed information about a specific campaign.
|
242
|
+
# @param identifier [String] Campaign identifier - `campaign_IMBoxK2iB5sUdgiNOjqAMA`
|
296
243
|
# @param [Hash] opts the optional parameters
|
297
|
-
# @return [
|
298
|
-
def
|
299
|
-
data, _status_code, _headers =
|
244
|
+
# @return [RestRCampaign]
|
245
|
+
def get_campaign(identifier, opts = {})
|
246
|
+
data, _status_code, _headers = get_campaign_with_http_info(identifier, opts)
|
300
247
|
data
|
301
248
|
end
|
302
249
|
|
303
|
-
# Get
|
304
|
-
#
|
305
|
-
# @param
|
250
|
+
# Get campaign by ID
|
251
|
+
# Retrieves detailed information about a specific campaign.
|
252
|
+
# @param identifier [String] Campaign identifier - `campaign_IMBoxK2iB5sUdgiNOjqAMA`
|
306
253
|
# @param [Hash] opts the optional parameters
|
307
|
-
# @return [Array<(
|
308
|
-
def
|
254
|
+
# @return [Array<(RestRCampaign, Integer, Hash)>] RestRCampaign data, response status code and response headers
|
255
|
+
def get_campaign_with_http_info(identifier, opts = {})
|
309
256
|
if @api_client.config.debugging
|
310
|
-
@api_client.config.logger.debug 'Calling API: CampaignApi.
|
257
|
+
@api_client.config.logger.debug 'Calling API: CampaignApi.get_campaign ...'
|
258
|
+
end
|
259
|
+
# verify the required parameter 'identifier' is set
|
260
|
+
if @api_client.config.client_side_validation && identifier.nil?
|
261
|
+
fail ArgumentError, "Missing the required parameter 'identifier' when calling CampaignApi.get_campaign"
|
311
262
|
end
|
312
|
-
|
313
|
-
if @api_client.config.client_side_validation &&
|
314
|
-
fail ArgumentError, "
|
263
|
+
pattern = Regexp.new(/^(campaign_)?[a-zA-Z0-9]{22}$/)
|
264
|
+
if @api_client.config.client_side_validation && identifier !~ pattern
|
265
|
+
fail ArgumentError, "invalid value for 'identifier' when calling CampaignApi.get_campaign, must conform to the pattern #{pattern}."
|
315
266
|
end
|
267
|
+
|
316
268
|
# resource path
|
317
|
-
local_var_path = '/campaign/{
|
269
|
+
local_var_path = '/campaign/{identifier}'.sub('{' + 'identifier' + '}', CGI.escape(identifier.to_s))
|
318
270
|
|
319
271
|
# query parameters
|
320
272
|
query_params = opts[:query_params] || {}
|
@@ -331,13 +283,13 @@ module SendX
|
|
331
283
|
post_body = opts[:debug_body]
|
332
284
|
|
333
285
|
# return_type
|
334
|
-
return_type = opts[:debug_return_type] || '
|
286
|
+
return_type = opts[:debug_return_type] || 'RestRCampaign'
|
335
287
|
|
336
288
|
# auth_names
|
337
|
-
auth_names = opts[:debug_auth_names] || ['
|
289
|
+
auth_names = opts[:debug_auth_names] || ['TeamApiKey']
|
338
290
|
|
339
291
|
new_options = opts.merge(
|
340
|
-
:operation => :"CampaignApi.
|
292
|
+
:operation => :"CampaignApi.get_campaign",
|
341
293
|
:header_params => header_params,
|
342
294
|
:query_params => query_params,
|
343
295
|
:form_params => form_params,
|
@@ -348,7 +300,7 @@ module SendX
|
|
348
300
|
|
349
301
|
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
350
302
|
if @api_client.config.debugging
|
351
|
-
@api_client.config.logger.debug "API called: CampaignApi#
|
303
|
+
@api_client.config.logger.debug "API called: CampaignApi#get_campaign\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
352
304
|
end
|
353
305
|
return data, status_code, headers
|
354
306
|
end
|