rcs 1.0.13 → 1.0.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rcs/company/client.rb +61 -6
- data/lib/rcs/types/action.rb +2 -2
- data/lib/rcs/types/action_type.rb +2 -2
- data/lib/rcs/types/company.rb +53 -2
- data/lib/rcs/types/company_category.rb +20 -0
- data/lib/rcs/types/company_details.rb +11 -1
- data/lib/rcs/types/inbound_action_message.rb +117 -0
- data/lib/rcs/types/inbound_location_message.rb +106 -0
- data/lib/rcs/types/inbound_location_message_coordinates.rb +65 -0
- data/lib/rcs/types/inbound_media_message.rb +112 -0
- data/lib/rcs/types/inbound_message.rb +88 -0
- data/lib/rcs/types/inbound_message_message_type.rb +10 -0
- data/lib/rcs/types/inbound_message_metadata.rb +79 -0
- data/lib/rcs/types/inbound_text_message.rb +100 -0
- data/lib/rcs/types/media_payload.rb +65 -0
- data/lib/rcs/types/message_metadata.rb +56 -0
- data/lib/rcs/types/messaging.rb +95 -0
- data/lib/rcs/types/sender_metadata.rb +74 -0
- data/lib/requests.rb +2 -2
- data/lib/types_export.rb +13 -0
- metadata +15 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd6b24540486cc673f369e84cd9c3a56d58837b4143a11f79b0b8ad8d7056ee4
|
4
|
+
data.tar.gz: 708a541bf38d32fde5b6ef6d6338d9e3494f681f60d5811dbbc384e0bb58cf02
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b4fc78e103e1274d2ceac57826ce3bd7772901e5222fe486d2e133e3b2bd3570e26506db5438e699986b0a1bbdd9c0ae843e1e5fb8eef5f997e8df22886a2b8f
|
7
|
+
data.tar.gz: cf3dfa9bc7e5ad188baefef9983d6f1ac5230eafa3d08c9a9006581feb5f774bfd6213acdf0191f80f7985385fab06e2dccd6f8b00c684f637079052d2bd57c1
|
data/lib/rcs/company/client.rb
CHANGED
@@ -5,6 +5,7 @@ require_relative "../types/company"
|
|
5
5
|
require "json"
|
6
6
|
require_relative "../types/company_details"
|
7
7
|
require_relative "../types/company_contact"
|
8
|
+
require_relative "../types/messaging"
|
8
9
|
require_relative "../types/point_of_contact"
|
9
10
|
require_relative "../types/optionals"
|
10
11
|
require_relative "types/company_register_response"
|
@@ -66,6 +67,7 @@ module Pinnacle
|
|
66
67
|
#
|
67
68
|
# @param company [Hash] Request of type Pinnacle::CompanyDetails, as a Hash
|
68
69
|
# * :name (String)
|
70
|
+
# * :category (Pinnacle::CompanyCategory)
|
69
71
|
# * :address (String)
|
70
72
|
# * :ein (String)
|
71
73
|
# * :description (String)
|
@@ -81,6 +83,12 @@ module Pinnacle
|
|
81
83
|
# * :primary_email_label (String)
|
82
84
|
# * :privacy_policy_url (String)
|
83
85
|
# * :tos_url (String)
|
86
|
+
# @param messaging [Hash] Request of type Pinnacle::Messaging, as a Hash
|
87
|
+
# * :opt_in (String)
|
88
|
+
# * :opt_out (String)
|
89
|
+
# * :opt_out_keywords (Array<String>)
|
90
|
+
# * :agent_use_case (String)
|
91
|
+
# * :expected_agent_responses (String)
|
84
92
|
# @param point_of_contact [Hash] Request of type Pinnacle::PointOfContact, as a Hash
|
85
93
|
# * :poc_name (String)
|
86
94
|
# * :poc_title (String)
|
@@ -99,11 +107,17 @@ module Pinnacle
|
|
99
107
|
# api_key: "YOUR_API_KEY"
|
100
108
|
# )
|
101
109
|
# api.company.register(
|
102
|
-
# company: { name: "name", address: "address", ein: "ein", description: "description", brand_color: "brandColor", logo_url: "logoUrl", hero_url: "heroUrl" },
|
110
|
+
# company: { name: "name", category: ENTERTAINMENT, address: "address", ein: "ein", description: "description", brand_color: "brandColor", logo_url: "logoUrl", hero_url: "heroUrl" },
|
103
111
|
# company_contact: { primary_website_url: "primaryWebsiteUrl", primary_website_label: "primaryWebsiteLabel", primary_phone: "primaryPhone", primary_phone_label: "primaryPhoneLabel", primary_email: "primaryEmail", primary_email_label: "primaryEmailLabel", privacy_policy_url: "privacyPolicyUrl", tos_url: "tosUrl" },
|
112
|
+
# messaging: { opt_in: "By opting in, you agree to receive messages from Pinnacle, including updates and promotions. Reply “STOP” to unsubscribe. Standard message and data rates may apply.", opt_out: "Reply with keywords like STOP or UNSUBSCRIBE to opt-out. A confirmation message will be sent, and no further messages will be received unless you re-subscribe.", opt_out_keywords: ["STOP", "UNSUBSCRIBE"], agent_use_case: "Pinnacle’s agent assists with product updates, promotions, order tracking, and support. It answers FAQs, provides order updates, and helps with opt-in/out processes. Escalates to live support when needed.", expected_agent_responses: "General Inquiry: “How can I assist you today?”
|
113
|
+
# Order Status: “Provide your order number.”
|
114
|
+
# Opt-In: “You’re now subscribed!”
|
115
|
+
# Opt-Out: “You have unsubscribed.”
|
116
|
+
# Escalation: “Connecting to a live agent.”
|
117
|
+
# " },
|
104
118
|
# point_of_contact: { poc_name: "pocName", poc_title: "pocTitle", poc_email: "pocEmail" }
|
105
119
|
# )
|
106
|
-
def register(company:, company_contact:, point_of_contact:, optionals: nil, request_options: nil)
|
120
|
+
def register(company:, company_contact:, messaging:, point_of_contact:, optionals: nil, request_options: nil)
|
107
121
|
response = @request_client.conn.post do |req|
|
108
122
|
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
109
123
|
req.headers["PINNACLE-API-Key"] = request_options.api_key unless request_options&.api_key.nil?
|
@@ -119,6 +133,7 @@ module Pinnacle
|
|
119
133
|
**(request_options&.additional_body_parameters || {}),
|
120
134
|
company: company,
|
121
135
|
companyContact: company_contact,
|
136
|
+
messaging: messaging,
|
122
137
|
pointOfContact: point_of_contact,
|
123
138
|
optionals: optionals
|
124
139
|
}.compact
|
@@ -134,6 +149,7 @@ module Pinnacle
|
|
134
149
|
# * :id (Integer)
|
135
150
|
# * :created_at (DateTime)
|
136
151
|
# * :name (String)
|
152
|
+
# * :category (Pinnacle::CompanyCategory)
|
137
153
|
# * :address (String)
|
138
154
|
# * :ein (String)
|
139
155
|
# * :description (String)
|
@@ -151,6 +167,11 @@ module Pinnacle
|
|
151
167
|
# * :poc_name (String)
|
152
168
|
# * :poc_title (String)
|
153
169
|
# * :poc_email (String)
|
170
|
+
# * :opt_in (String)
|
171
|
+
# * :opt_out (String)
|
172
|
+
# * :opt_out_keywords (Array<String>)
|
173
|
+
# * :agent_use_case (String)
|
174
|
+
# * :expected_agent_responses (String)
|
154
175
|
# * :test_numbers (Array<String>)
|
155
176
|
# * :status (String)
|
156
177
|
# * :additional_websites (Array<Pinnacle::CompanyAdditionalWebsitesItem>)
|
@@ -165,6 +186,12 @@ module Pinnacle
|
|
165
186
|
# * :primary_email_label (String)
|
166
187
|
# * :privacy_policy_url (String)
|
167
188
|
# * :tos_url (String)
|
189
|
+
# @param messaging [Hash] Request of type Pinnacle::Messaging, as a Hash
|
190
|
+
# * :opt_in (String)
|
191
|
+
# * :opt_out (String)
|
192
|
+
# * :opt_out_keywords (Array<String>)
|
193
|
+
# * :agent_use_case (String)
|
194
|
+
# * :expected_agent_responses (String)
|
168
195
|
# @param point_of_contact [Hash] Request of type Pinnacle::PointOfContact, as a Hash
|
169
196
|
# * :poc_name (String)
|
170
197
|
# * :poc_title (String)
|
@@ -183,7 +210,7 @@ module Pinnacle
|
|
183
210
|
# api_key: "YOUR_API_KEY"
|
184
211
|
# )
|
185
212
|
# api.company.update(company_id: "companyId")
|
186
|
-
def update(company_id:, company: nil, company_contact: nil, point_of_contact: nil, optionals: nil,
|
213
|
+
def update(company_id:, company: nil, company_contact: nil, messaging: nil, point_of_contact: nil, optionals: nil,
|
187
214
|
request_options: nil)
|
188
215
|
response = @request_client.conn.post do |req|
|
189
216
|
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
@@ -201,6 +228,7 @@ module Pinnacle
|
|
201
228
|
companyId: company_id,
|
202
229
|
company: company,
|
203
230
|
companyContact: company_contact,
|
231
|
+
messaging: messaging,
|
204
232
|
pointOfContact: point_of_contact,
|
205
233
|
optionals: optionals
|
206
234
|
}.compact
|
@@ -266,6 +294,7 @@ module Pinnacle
|
|
266
294
|
#
|
267
295
|
# @param company [Hash] Request of type Pinnacle::CompanyDetails, as a Hash
|
268
296
|
# * :name (String)
|
297
|
+
# * :category (Pinnacle::CompanyCategory)
|
269
298
|
# * :address (String)
|
270
299
|
# * :ein (String)
|
271
300
|
# * :description (String)
|
@@ -281,6 +310,12 @@ module Pinnacle
|
|
281
310
|
# * :primary_email_label (String)
|
282
311
|
# * :privacy_policy_url (String)
|
283
312
|
# * :tos_url (String)
|
313
|
+
# @param messaging [Hash] Request of type Pinnacle::Messaging, as a Hash
|
314
|
+
# * :opt_in (String)
|
315
|
+
# * :opt_out (String)
|
316
|
+
# * :opt_out_keywords (Array<String>)
|
317
|
+
# * :agent_use_case (String)
|
318
|
+
# * :expected_agent_responses (String)
|
284
319
|
# @param point_of_contact [Hash] Request of type Pinnacle::PointOfContact, as a Hash
|
285
320
|
# * :poc_name (String)
|
286
321
|
# * :poc_title (String)
|
@@ -299,11 +334,17 @@ module Pinnacle
|
|
299
334
|
# api_key: "YOUR_API_KEY"
|
300
335
|
# )
|
301
336
|
# api.company.register(
|
302
|
-
# company: { name: "name", address: "address", ein: "ein", description: "description", brand_color: "brandColor", logo_url: "logoUrl", hero_url: "heroUrl" },
|
337
|
+
# company: { name: "name", category: ENTERTAINMENT, address: "address", ein: "ein", description: "description", brand_color: "brandColor", logo_url: "logoUrl", hero_url: "heroUrl" },
|
303
338
|
# company_contact: { primary_website_url: "primaryWebsiteUrl", primary_website_label: "primaryWebsiteLabel", primary_phone: "primaryPhone", primary_phone_label: "primaryPhoneLabel", primary_email: "primaryEmail", primary_email_label: "primaryEmailLabel", privacy_policy_url: "privacyPolicyUrl", tos_url: "tosUrl" },
|
339
|
+
# messaging: { opt_in: "By opting in, you agree to receive messages from Pinnacle, including updates and promotions. Reply “STOP” to unsubscribe. Standard message and data rates may apply.", opt_out: "Reply with keywords like STOP or UNSUBSCRIBE to opt-out. A confirmation message will be sent, and no further messages will be received unless you re-subscribe.", opt_out_keywords: ["STOP", "UNSUBSCRIBE"], agent_use_case: "Pinnacle’s agent assists with product updates, promotions, order tracking, and support. It answers FAQs, provides order updates, and helps with opt-in/out processes. Escalates to live support when needed.", expected_agent_responses: "General Inquiry: “How can I assist you today?”
|
340
|
+
# Order Status: “Provide your order number.”
|
341
|
+
# Opt-In: “You’re now subscribed!”
|
342
|
+
# Opt-Out: “You have unsubscribed.”
|
343
|
+
# Escalation: “Connecting to a live agent.”
|
344
|
+
# " },
|
304
345
|
# point_of_contact: { poc_name: "pocName", poc_title: "pocTitle", poc_email: "pocEmail" }
|
305
346
|
# )
|
306
|
-
def register(company:, company_contact:, point_of_contact:, optionals: nil, request_options: nil)
|
347
|
+
def register(company:, company_contact:, messaging:, point_of_contact:, optionals: nil, request_options: nil)
|
307
348
|
Async do
|
308
349
|
response = @request_client.conn.post do |req|
|
309
350
|
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
@@ -320,6 +361,7 @@ module Pinnacle
|
|
320
361
|
**(request_options&.additional_body_parameters || {}),
|
321
362
|
company: company,
|
322
363
|
companyContact: company_contact,
|
364
|
+
messaging: messaging,
|
323
365
|
pointOfContact: point_of_contact,
|
324
366
|
optionals: optionals
|
325
367
|
}.compact
|
@@ -336,6 +378,7 @@ module Pinnacle
|
|
336
378
|
# * :id (Integer)
|
337
379
|
# * :created_at (DateTime)
|
338
380
|
# * :name (String)
|
381
|
+
# * :category (Pinnacle::CompanyCategory)
|
339
382
|
# * :address (String)
|
340
383
|
# * :ein (String)
|
341
384
|
# * :description (String)
|
@@ -353,6 +396,11 @@ module Pinnacle
|
|
353
396
|
# * :poc_name (String)
|
354
397
|
# * :poc_title (String)
|
355
398
|
# * :poc_email (String)
|
399
|
+
# * :opt_in (String)
|
400
|
+
# * :opt_out (String)
|
401
|
+
# * :opt_out_keywords (Array<String>)
|
402
|
+
# * :agent_use_case (String)
|
403
|
+
# * :expected_agent_responses (String)
|
356
404
|
# * :test_numbers (Array<String>)
|
357
405
|
# * :status (String)
|
358
406
|
# * :additional_websites (Array<Pinnacle::CompanyAdditionalWebsitesItem>)
|
@@ -367,6 +415,12 @@ module Pinnacle
|
|
367
415
|
# * :primary_email_label (String)
|
368
416
|
# * :privacy_policy_url (String)
|
369
417
|
# * :tos_url (String)
|
418
|
+
# @param messaging [Hash] Request of type Pinnacle::Messaging, as a Hash
|
419
|
+
# * :opt_in (String)
|
420
|
+
# * :opt_out (String)
|
421
|
+
# * :opt_out_keywords (Array<String>)
|
422
|
+
# * :agent_use_case (String)
|
423
|
+
# * :expected_agent_responses (String)
|
370
424
|
# @param point_of_contact [Hash] Request of type Pinnacle::PointOfContact, as a Hash
|
371
425
|
# * :poc_name (String)
|
372
426
|
# * :poc_title (String)
|
@@ -385,7 +439,7 @@ module Pinnacle
|
|
385
439
|
# api_key: "YOUR_API_KEY"
|
386
440
|
# )
|
387
441
|
# api.company.update(company_id: "companyId")
|
388
|
-
def update(company_id:, company: nil, company_contact: nil, point_of_contact: nil, optionals: nil,
|
442
|
+
def update(company_id:, company: nil, company_contact: nil, messaging: nil, point_of_contact: nil, optionals: nil,
|
389
443
|
request_options: nil)
|
390
444
|
Async do
|
391
445
|
response = @request_client.conn.post do |req|
|
@@ -404,6 +458,7 @@ module Pinnacle
|
|
404
458
|
companyId: company_id,
|
405
459
|
company: company,
|
406
460
|
companyContact: company_contact,
|
461
|
+
messaging: messaging,
|
407
462
|
pointOfContact: point_of_contact,
|
408
463
|
optionals: optionals
|
409
464
|
}.compact
|
data/lib/rcs/types/action.rb
CHANGED
@@ -11,7 +11,7 @@ module Pinnacle
|
|
11
11
|
attr_reader :title
|
12
12
|
# @return [Pinnacle::ActionType] Type of action for the button. 'openUrl' opens a URL, 'call' dials a phone
|
13
13
|
# number, 'trigger' sends the predefined payload to the webhook when pressed,
|
14
|
-
# '
|
14
|
+
# 'requestUserLocation' requests the user's location, 'scheduleEvent' creates a
|
15
15
|
# calendar event, 'sendLocation' sends a location.
|
16
16
|
attr_reader :type
|
17
17
|
# @return [String] Optional payload associated with the action. This payload encodes the respective
|
@@ -46,7 +46,7 @@ module Pinnacle
|
|
46
46
|
# @param title [String] Title of the action (must be less than 25 characters).
|
47
47
|
# @param type [Pinnacle::ActionType] Type of action for the button. 'openUrl' opens a URL, 'call' dials a phone
|
48
48
|
# number, 'trigger' sends the predefined payload to the webhook when pressed,
|
49
|
-
# '
|
49
|
+
# 'requestUserLocation' requests the user's location, 'scheduleEvent' creates a
|
50
50
|
# calendar event, 'sendLocation' sends a location.
|
51
51
|
# @param payload [String] Optional payload associated with the action. This payload encodes the respective
|
52
52
|
# fields for the action type and is required. For 'openUrl', the payload is the
|
@@ -3,13 +3,13 @@
|
|
3
3
|
module Pinnacle
|
4
4
|
# Type of action for the button. 'openUrl' opens a URL, 'call' dials a phone
|
5
5
|
# number, 'trigger' sends the predefined payload to the webhook when pressed,
|
6
|
-
# '
|
6
|
+
# 'requestUserLocation' requests the user's location, 'scheduleEvent' creates a
|
7
7
|
# calendar event, 'sendLocation' sends a location.
|
8
8
|
class ActionType
|
9
9
|
OPEN_URL = "openUrl"
|
10
10
|
CALL = "call"
|
11
11
|
TRIGGER = "trigger"
|
12
|
-
|
12
|
+
REQUEST_USER_LOCATION = "requestUserLocation"
|
13
13
|
SCHEDULE_EVENT = "scheduleEvent"
|
14
14
|
SEND_LOCATION = "sendLocation"
|
15
15
|
end
|
data/lib/rcs/types/company.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "date"
|
4
|
+
require_relative "company_category"
|
4
5
|
require_relative "company_additional_websites_item"
|
5
6
|
require_relative "company_additional_emails_item"
|
6
7
|
require_relative "company_additional_phone_numbers_item"
|
@@ -15,6 +16,8 @@ module Pinnacle
|
|
15
16
|
attr_reader :created_at
|
16
17
|
# @return [String] The name of the company
|
17
18
|
attr_reader :name
|
19
|
+
# @return [Pinnacle::CompanyCategory] The category of the company
|
20
|
+
attr_reader :category
|
18
21
|
# @return [String] The address of the company
|
19
22
|
attr_reader :address
|
20
23
|
# @return [String] The Employer Identification Number (EIN) of the company
|
@@ -49,6 +52,17 @@ module Pinnacle
|
|
49
52
|
attr_reader :poc_title
|
50
53
|
# @return [String] The email address of the point of contact
|
51
54
|
attr_reader :poc_email
|
55
|
+
# @return [String] Explain how users will opt in to receive messages.
|
56
|
+
attr_reader :opt_in
|
57
|
+
# @return [String] Explain how users will opt out of receiving messages.
|
58
|
+
attr_reader :opt_out
|
59
|
+
# @return [Array<String>] Please provide the unique keywords to opt out. Each keyword should not contain
|
60
|
+
# spaces.
|
61
|
+
attr_reader :opt_out_keywords
|
62
|
+
# @return [String] Please define what your agent will do.
|
63
|
+
attr_reader :agent_use_case
|
64
|
+
# @return [String] Please provide some example messages that your agent will send.
|
65
|
+
attr_reader :expected_agent_responses
|
52
66
|
# @return [Array<String>] A list of test phone numbers
|
53
67
|
attr_reader :test_numbers
|
54
68
|
# @return [String] The approval status of the company
|
@@ -70,6 +84,7 @@ module Pinnacle
|
|
70
84
|
# @param id [Integer] The unique identifier for the company
|
71
85
|
# @param created_at [DateTime] The date and time when the company was created
|
72
86
|
# @param name [String] The name of the company
|
87
|
+
# @param category [Pinnacle::CompanyCategory] The category of the company
|
73
88
|
# @param address [String] The address of the company
|
74
89
|
# @param ein [String] The Employer Identification Number (EIN) of the company
|
75
90
|
# @param description [String] A description of the company
|
@@ -87,6 +102,12 @@ module Pinnacle
|
|
87
102
|
# @param poc_name [String] The name of the point of contact
|
88
103
|
# @param poc_title [String] The title of the point of contact
|
89
104
|
# @param poc_email [String] The email address of the point of contact
|
105
|
+
# @param opt_in [String] Explain how users will opt in to receive messages.
|
106
|
+
# @param opt_out [String] Explain how users will opt out of receiving messages.
|
107
|
+
# @param opt_out_keywords [Array<String>] Please provide the unique keywords to opt out. Each keyword should not contain
|
108
|
+
# spaces.
|
109
|
+
# @param agent_use_case [String] Please define what your agent will do.
|
110
|
+
# @param expected_agent_responses [String] Please provide some example messages that your agent will send.
|
90
111
|
# @param test_numbers [Array<String>] A list of test phone numbers
|
91
112
|
# @param status [String] The approval status of the company
|
92
113
|
# @param additional_websites [Array<Pinnacle::CompanyAdditionalWebsitesItem>] A list of additional websites
|
@@ -94,11 +115,12 @@ module Pinnacle
|
|
94
115
|
# @param additional_phone_numbers [Array<Pinnacle::CompanyAdditionalPhoneNumbersItem>] A list of additional phone numbers
|
95
116
|
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
96
117
|
# @return [Pinnacle::Company]
|
97
|
-
def initialize(id: OMIT, created_at: OMIT, name: OMIT, address: OMIT, ein: OMIT, description: OMIT,
|
98
|
-
brand_color: OMIT, logo_url: OMIT, hero_url: OMIT, primary_website_url: OMIT, primary_website_label: OMIT, primary_phone: OMIT, primary_phone_label: OMIT, primary_email: OMIT, primary_email_label: OMIT, privacy_policy_url: OMIT, tos_url: OMIT, poc_name: OMIT, poc_title: OMIT, poc_email: OMIT, test_numbers: OMIT, status: OMIT, additional_websites: OMIT, additional_emails: OMIT, additional_phone_numbers: OMIT, additional_properties: nil)
|
118
|
+
def initialize(id: OMIT, created_at: OMIT, name: OMIT, category: OMIT, address: OMIT, ein: OMIT, description: OMIT,
|
119
|
+
brand_color: OMIT, logo_url: OMIT, hero_url: OMIT, primary_website_url: OMIT, primary_website_label: OMIT, primary_phone: OMIT, primary_phone_label: OMIT, primary_email: OMIT, primary_email_label: OMIT, privacy_policy_url: OMIT, tos_url: OMIT, poc_name: OMIT, poc_title: OMIT, poc_email: OMIT, opt_in: OMIT, opt_out: OMIT, opt_out_keywords: OMIT, agent_use_case: OMIT, expected_agent_responses: OMIT, test_numbers: OMIT, status: OMIT, additional_websites: OMIT, additional_emails: OMIT, additional_phone_numbers: OMIT, additional_properties: nil)
|
99
120
|
@id = id if id != OMIT
|
100
121
|
@created_at = created_at if created_at != OMIT
|
101
122
|
@name = name if name != OMIT
|
123
|
+
@category = category if category != OMIT
|
102
124
|
@address = address if address != OMIT
|
103
125
|
@ein = ein if ein != OMIT
|
104
126
|
@description = description if description != OMIT
|
@@ -116,6 +138,11 @@ module Pinnacle
|
|
116
138
|
@poc_name = poc_name if poc_name != OMIT
|
117
139
|
@poc_title = poc_title if poc_title != OMIT
|
118
140
|
@poc_email = poc_email if poc_email != OMIT
|
141
|
+
@opt_in = opt_in if opt_in != OMIT
|
142
|
+
@opt_out = opt_out if opt_out != OMIT
|
143
|
+
@opt_out_keywords = opt_out_keywords if opt_out_keywords != OMIT
|
144
|
+
@agent_use_case = agent_use_case if agent_use_case != OMIT
|
145
|
+
@expected_agent_responses = expected_agent_responses if expected_agent_responses != OMIT
|
119
146
|
@test_numbers = test_numbers if test_numbers != OMIT
|
120
147
|
@status = status if status != OMIT
|
121
148
|
@additional_websites = additional_websites if additional_websites != OMIT
|
@@ -126,6 +153,7 @@ module Pinnacle
|
|
126
153
|
"id": id,
|
127
154
|
"createdAt": created_at,
|
128
155
|
"name": name,
|
156
|
+
"category": category,
|
129
157
|
"address": address,
|
130
158
|
"ein": ein,
|
131
159
|
"description": description,
|
@@ -143,6 +171,11 @@ module Pinnacle
|
|
143
171
|
"pocName": poc_name,
|
144
172
|
"pocTitle": poc_title,
|
145
173
|
"pocEmail": poc_email,
|
174
|
+
"optIn": opt_in,
|
175
|
+
"optOut": opt_out,
|
176
|
+
"optOutKeywords": opt_out_keywords,
|
177
|
+
"agentUseCase": agent_use_case,
|
178
|
+
"expectedAgentResponses": expected_agent_responses,
|
146
179
|
"testNumbers": test_numbers,
|
147
180
|
"status": status,
|
148
181
|
"additionalWebsites": additional_websites,
|
@@ -163,6 +196,7 @@ module Pinnacle
|
|
163
196
|
id = parsed_json["id"]
|
164
197
|
created_at = (DateTime.parse(parsed_json["createdAt"]) unless parsed_json["createdAt"].nil?)
|
165
198
|
name = parsed_json["name"]
|
199
|
+
category = parsed_json["category"]
|
166
200
|
address = parsed_json["address"]
|
167
201
|
ein = parsed_json["ein"]
|
168
202
|
description = parsed_json["description"]
|
@@ -180,6 +214,11 @@ module Pinnacle
|
|
180
214
|
poc_name = parsed_json["pocName"]
|
181
215
|
poc_title = parsed_json["pocTitle"]
|
182
216
|
poc_email = parsed_json["pocEmail"]
|
217
|
+
opt_in = parsed_json["optIn"]
|
218
|
+
opt_out = parsed_json["optOut"]
|
219
|
+
opt_out_keywords = parsed_json["optOutKeywords"]
|
220
|
+
agent_use_case = parsed_json["agentUseCase"]
|
221
|
+
expected_agent_responses = parsed_json["expectedAgentResponses"]
|
183
222
|
test_numbers = parsed_json["testNumbers"]
|
184
223
|
status = parsed_json["status"]
|
185
224
|
additional_websites = parsed_json["additionalWebsites"]&.map do |item|
|
@@ -198,6 +237,7 @@ module Pinnacle
|
|
198
237
|
id: id,
|
199
238
|
created_at: created_at,
|
200
239
|
name: name,
|
240
|
+
category: category,
|
201
241
|
address: address,
|
202
242
|
ein: ein,
|
203
243
|
description: description,
|
@@ -215,6 +255,11 @@ module Pinnacle
|
|
215
255
|
poc_name: poc_name,
|
216
256
|
poc_title: poc_title,
|
217
257
|
poc_email: poc_email,
|
258
|
+
opt_in: opt_in,
|
259
|
+
opt_out: opt_out,
|
260
|
+
opt_out_keywords: opt_out_keywords,
|
261
|
+
agent_use_case: agent_use_case,
|
262
|
+
expected_agent_responses: expected_agent_responses,
|
218
263
|
test_numbers: test_numbers,
|
219
264
|
status: status,
|
220
265
|
additional_websites: additional_websites,
|
@@ -241,6 +286,7 @@ module Pinnacle
|
|
241
286
|
obj.id&.is_a?(Integer) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
|
242
287
|
obj.created_at&.is_a?(DateTime) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.")
|
243
288
|
obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
|
289
|
+
obj.category&.is_a?(Pinnacle::CompanyCategory) != false || raise("Passed value for field obj.category is not the expected type, validation failed.")
|
244
290
|
obj.address&.is_a?(String) != false || raise("Passed value for field obj.address is not the expected type, validation failed.")
|
245
291
|
obj.ein&.is_a?(String) != false || raise("Passed value for field obj.ein is not the expected type, validation failed.")
|
246
292
|
obj.description&.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
|
@@ -258,6 +304,11 @@ module Pinnacle
|
|
258
304
|
obj.poc_name&.is_a?(String) != false || raise("Passed value for field obj.poc_name is not the expected type, validation failed.")
|
259
305
|
obj.poc_title&.is_a?(String) != false || raise("Passed value for field obj.poc_title is not the expected type, validation failed.")
|
260
306
|
obj.poc_email&.is_a?(String) != false || raise("Passed value for field obj.poc_email is not the expected type, validation failed.")
|
307
|
+
obj.opt_in&.is_a?(String) != false || raise("Passed value for field obj.opt_in is not the expected type, validation failed.")
|
308
|
+
obj.opt_out&.is_a?(String) != false || raise("Passed value for field obj.opt_out is not the expected type, validation failed.")
|
309
|
+
obj.opt_out_keywords&.is_a?(Array) != false || raise("Passed value for field obj.opt_out_keywords is not the expected type, validation failed.")
|
310
|
+
obj.agent_use_case&.is_a?(String) != false || raise("Passed value for field obj.agent_use_case is not the expected type, validation failed.")
|
311
|
+
obj.expected_agent_responses&.is_a?(String) != false || raise("Passed value for field obj.expected_agent_responses is not the expected type, validation failed.")
|
261
312
|
obj.test_numbers&.is_a?(Array) != false || raise("Passed value for field obj.test_numbers is not the expected type, validation failed.")
|
262
313
|
obj.status&.is_a?(String) != false || raise("Passed value for field obj.status is not the expected type, validation failed.")
|
263
314
|
obj.additional_websites&.is_a?(Array) != false || raise("Passed value for field obj.additional_websites is not the expected type, validation failed.")
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Pinnacle
|
4
|
+
class CompanyCategory
|
5
|
+
ENTERTAINMENT = "Entertainment"
|
6
|
+
FINANCE = "Finance"
|
7
|
+
FOOD_BEVERAGE = "Food & Beverage"
|
8
|
+
GAMES = "Games"
|
9
|
+
HEALTH = "Health"
|
10
|
+
MISC = "Misc"
|
11
|
+
NEWS = "News"
|
12
|
+
OTHER = "Other"
|
13
|
+
PRODUCTIVITY = "Productivity"
|
14
|
+
SHOPPING_RETAIL = "Shopping & Retail"
|
15
|
+
SOCIAL = "Social"
|
16
|
+
SPORTS = "Sports"
|
17
|
+
TRAVEL = "Travel"
|
18
|
+
UTILITIES = "Utilities"
|
19
|
+
end
|
20
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require_relative "company_category"
|
3
4
|
require "ostruct"
|
4
5
|
require "json"
|
5
6
|
|
@@ -7,6 +8,8 @@ module Pinnacle
|
|
7
8
|
class CompanyDetails
|
8
9
|
# @return [String] The name of the company.
|
9
10
|
attr_reader :name
|
11
|
+
# @return [Pinnacle::CompanyCategory] The category of the company.
|
12
|
+
attr_reader :category
|
10
13
|
# @return [String] The address of the company.
|
11
14
|
attr_reader :address
|
12
15
|
# @return [String] The EIN (Employer Identification Number) of the company.
|
@@ -29,6 +32,7 @@ module Pinnacle
|
|
29
32
|
OMIT = Object.new
|
30
33
|
|
31
34
|
# @param name [String] The name of the company.
|
35
|
+
# @param category [Pinnacle::CompanyCategory] The category of the company.
|
32
36
|
# @param address [String] The address of the company.
|
33
37
|
# @param ein [String] The EIN (Employer Identification Number) of the company.
|
34
38
|
# @param description [String] A description of the company.
|
@@ -38,8 +42,10 @@ module Pinnacle
|
|
38
42
|
# @param hero_url [String] URL of the company's hero image.
|
39
43
|
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
40
44
|
# @return [Pinnacle::CompanyDetails]
|
41
|
-
def initialize(name:, address:, ein:, description:, brand_color:, logo_url:, hero_url:,
|
45
|
+
def initialize(name:, category:, address:, ein:, description:, brand_color:, logo_url:, hero_url:,
|
46
|
+
additional_properties: nil)
|
42
47
|
@name = name
|
48
|
+
@category = category
|
43
49
|
@address = address
|
44
50
|
@ein = ein
|
45
51
|
@description = description
|
@@ -49,6 +55,7 @@ module Pinnacle
|
|
49
55
|
@additional_properties = additional_properties
|
50
56
|
@_field_set = {
|
51
57
|
"name": name,
|
58
|
+
"category": category,
|
52
59
|
"address": address,
|
53
60
|
"ein": ein,
|
54
61
|
"description": description,
|
@@ -66,6 +73,7 @@ module Pinnacle
|
|
66
73
|
struct = JSON.parse(json_object, object_class: OpenStruct)
|
67
74
|
parsed_json = JSON.parse(json_object)
|
68
75
|
name = parsed_json["name"]
|
76
|
+
category = parsed_json["category"]
|
69
77
|
address = parsed_json["address"]
|
70
78
|
ein = parsed_json["ein"]
|
71
79
|
description = parsed_json["description"]
|
@@ -74,6 +82,7 @@ module Pinnacle
|
|
74
82
|
hero_url = parsed_json["heroUrl"]
|
75
83
|
new(
|
76
84
|
name: name,
|
85
|
+
category: category,
|
77
86
|
address: address,
|
78
87
|
ein: ein,
|
79
88
|
description: description,
|
@@ -99,6 +108,7 @@ module Pinnacle
|
|
99
108
|
# @return [Void]
|
100
109
|
def self.validate_raw(obj:)
|
101
110
|
obj.name.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
|
111
|
+
obj.category.is_a?(Pinnacle::CompanyCategory) != false || raise("Passed value for field obj.category is not the expected type, validation failed.")
|
102
112
|
obj.address.is_a?(String) != false || raise("Passed value for field obj.address is not the expected type, validation failed.")
|
103
113
|
obj.ein.is_a?(String) != false || raise("Passed value for field obj.ein is not the expected type, validation failed.")
|
104
114
|
obj.description.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
|
@@ -0,0 +1,117 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "inbound_message_metadata"
|
4
|
+
require "ostruct"
|
5
|
+
require "json"
|
6
|
+
|
7
|
+
module Pinnacle
|
8
|
+
class InboundActionMessage
|
9
|
+
# @return [String]
|
10
|
+
attr_reader :message_type
|
11
|
+
# @return [String]
|
12
|
+
attr_reader :action_title
|
13
|
+
# @return [String]
|
14
|
+
attr_reader :payload
|
15
|
+
# @return [String]
|
16
|
+
attr_reader :action_metadata
|
17
|
+
# @return [String]
|
18
|
+
attr_reader :from
|
19
|
+
# @return [String]
|
20
|
+
attr_reader :to
|
21
|
+
# @return [Pinnacle::InboundMessageMetadata]
|
22
|
+
attr_reader :metadata
|
23
|
+
# @return [OpenStruct] Additional properties unmapped to the current class definition
|
24
|
+
attr_reader :additional_properties
|
25
|
+
# @return [Object]
|
26
|
+
attr_reader :_field_set
|
27
|
+
protected :_field_set
|
28
|
+
|
29
|
+
OMIT = Object.new
|
30
|
+
|
31
|
+
# @param message_type [String]
|
32
|
+
# @param action_title [String]
|
33
|
+
# @param payload [String]
|
34
|
+
# @param action_metadata [String]
|
35
|
+
# @param from [String]
|
36
|
+
# @param to [String]
|
37
|
+
# @param metadata [Pinnacle::InboundMessageMetadata]
|
38
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
39
|
+
# @return [Pinnacle::InboundActionMessage]
|
40
|
+
def initialize(action_title:, from:, to:, message_type: OMIT, payload: OMIT, action_metadata: OMIT, metadata: OMIT,
|
41
|
+
additional_properties: nil)
|
42
|
+
@message_type = message_type if message_type != OMIT
|
43
|
+
@action_title = action_title
|
44
|
+
@payload = payload if payload != OMIT
|
45
|
+
@action_metadata = action_metadata if action_metadata != OMIT
|
46
|
+
@from = from
|
47
|
+
@to = to
|
48
|
+
@metadata = metadata if metadata != OMIT
|
49
|
+
@additional_properties = additional_properties
|
50
|
+
@_field_set = {
|
51
|
+
"messageType": message_type,
|
52
|
+
"actionTitle": action_title,
|
53
|
+
"payload": payload,
|
54
|
+
"actionMetadata": action_metadata,
|
55
|
+
"from": from,
|
56
|
+
"to": to,
|
57
|
+
"metadata": metadata
|
58
|
+
}.reject do |_k, v|
|
59
|
+
v == OMIT
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
# Deserialize a JSON object to an instance of InboundActionMessage
|
64
|
+
#
|
65
|
+
# @param json_object [String]
|
66
|
+
# @return [Pinnacle::InboundActionMessage]
|
67
|
+
def self.from_json(json_object:)
|
68
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
69
|
+
parsed_json = JSON.parse(json_object)
|
70
|
+
message_type = parsed_json["messageType"]
|
71
|
+
action_title = parsed_json["actionTitle"]
|
72
|
+
payload = parsed_json["payload"]
|
73
|
+
action_metadata = parsed_json["actionMetadata"]
|
74
|
+
from = parsed_json["from"]
|
75
|
+
to = parsed_json["to"]
|
76
|
+
if parsed_json["metadata"].nil?
|
77
|
+
metadata = nil
|
78
|
+
else
|
79
|
+
metadata = parsed_json["metadata"].to_json
|
80
|
+
metadata = Pinnacle::InboundMessageMetadata.from_json(json_object: metadata)
|
81
|
+
end
|
82
|
+
new(
|
83
|
+
message_type: message_type,
|
84
|
+
action_title: action_title,
|
85
|
+
payload: payload,
|
86
|
+
action_metadata: action_metadata,
|
87
|
+
from: from,
|
88
|
+
to: to,
|
89
|
+
metadata: metadata,
|
90
|
+
additional_properties: struct
|
91
|
+
)
|
92
|
+
end
|
93
|
+
|
94
|
+
# Serialize an instance of InboundActionMessage to a JSON object
|
95
|
+
#
|
96
|
+
# @return [String]
|
97
|
+
def to_json(*_args)
|
98
|
+
@_field_set&.to_json
|
99
|
+
end
|
100
|
+
|
101
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given
|
102
|
+
# hash and check each fields type against the current object's property
|
103
|
+
# definitions.
|
104
|
+
#
|
105
|
+
# @param obj [Object]
|
106
|
+
# @return [Void]
|
107
|
+
def self.validate_raw(obj:)
|
108
|
+
obj.message_type&.is_a?(String) != false || raise("Passed value for field obj.message_type is not the expected type, validation failed.")
|
109
|
+
obj.action_title.is_a?(String) != false || raise("Passed value for field obj.action_title is not the expected type, validation failed.")
|
110
|
+
obj.payload&.is_a?(String) != false || raise("Passed value for field obj.payload is not the expected type, validation failed.")
|
111
|
+
obj.action_metadata&.is_a?(String) != false || raise("Passed value for field obj.action_metadata is not the expected type, validation failed.")
|
112
|
+
obj.from.is_a?(String) != false || raise("Passed value for field obj.from is not the expected type, validation failed.")
|
113
|
+
obj.to.is_a?(String) != false || raise("Passed value for field obj.to is not the expected type, validation failed.")
|
114
|
+
obj.metadata.nil? || Pinnacle::InboundMessageMetadata.validate_raw(obj: obj.metadata)
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|