bombbomb 1.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.
Files changed (51) hide show
  1. checksums.yaml +15 -0
  2. data/LICENSE +201 -0
  3. data/README.md +139 -0
  4. data/Rakefile +3 -0
  5. data/bombbomb.gemspec +55 -0
  6. data/docs/BBWebHook.md +11 -0
  7. data/docs/InlineResponse200.md +9 -0
  8. data/docs/InlineResponse200Items.md +11 -0
  9. data/docs/JerichoConfiguration.md +18 -0
  10. data/docs/JerichoPerformance.md +18 -0
  11. data/docs/OAuthClient.md +13 -0
  12. data/docs/PromptsApi.md +169 -0
  13. data/docs/String.md +7 -0
  14. data/docs/TeamsApi.md +290 -0
  15. data/docs/UtilitiesApi.md +204 -0
  16. data/docs/VideoEmailPrompt.md +25 -0
  17. data/docs/WebhooksApi.md +207 -0
  18. data/git_push.sh +67 -0
  19. data/lib/bombbomb.rb +62 -0
  20. data/lib/bombbomb/api/prompts_api.rb +217 -0
  21. data/lib/bombbomb/api/teams_api.rb +346 -0
  22. data/lib/bombbomb/api/utilities_api.rb +258 -0
  23. data/lib/bombbomb/api/webhooks_api.rb +254 -0
  24. data/lib/bombbomb/api_client.rb +379 -0
  25. data/lib/bombbomb/api_error.rb +47 -0
  26. data/lib/bombbomb/configuration.rb +214 -0
  27. data/lib/bombbomb/models/bb_web_hook.rb +230 -0
  28. data/lib/bombbomb/models/inline_response_200.rb +210 -0
  29. data/lib/bombbomb/models/inline_response_200_items.rb +226 -0
  30. data/lib/bombbomb/models/jericho_configuration.rb +299 -0
  31. data/lib/bombbomb/models/jericho_performance.rb +300 -0
  32. data/lib/bombbomb/models/o_auth_client.rb +250 -0
  33. data/lib/bombbomb/models/string.rb +190 -0
  34. data/lib/bombbomb/models/video_email_prompt.rb +379 -0
  35. data/lib/bombbomb/version.rb +26 -0
  36. data/spec/api/prompts_api_spec.rb +84 -0
  37. data/spec/api/teams_api_spec.rb +113 -0
  38. data/spec/api/utilities_api_spec.rb +93 -0
  39. data/spec/api/webhooks_api_spec.rb +92 -0
  40. data/spec/api_client_spec.rb +237 -0
  41. data/spec/configuration_spec.rb +53 -0
  42. data/spec/models/bb_web_hook_spec.rb +71 -0
  43. data/spec/models/inline_response_200_items_spec.rb +71 -0
  44. data/spec/models/inline_response_200_spec.rb +59 -0
  45. data/spec/models/jericho_configuration_spec.rb +113 -0
  46. data/spec/models/jericho_performance_spec.rb +113 -0
  47. data/spec/models/o_auth_client_spec.rb +83 -0
  48. data/spec/models/string_spec.rb +47 -0
  49. data/spec/models/video_email_prompt_spec.rb +155 -0
  50. data/spec/spec_helper.rb +122 -0
  51. metadata +288 -0
@@ -0,0 +1,18 @@
1
+ # BombBomb::JerichoConfiguration
2
+
3
+ ## Properties
4
+ Name | Type | Description | Notes
5
+ ------------ | ------------- | ------------- | -------------
6
+ **id** | **String** | | [optional]
7
+ **client_group_id** | **String** | | [optional]
8
+ **send_date** | **DateTime** | When the email should be sent. | [optional]
9
+ **is_prompt** | **BOOLEAN** | Determines whether this is a static or prompted send. |
10
+ **email_id** | **String** | Static send: The Email to send on behalf of the group members. | [optional]
11
+ **prompt_subject** | **String** | Video Prompt: The subject line prompting the user to record a video. | [optional]
12
+ **prompt_body** | **String** | Video Prompt: The HTML body of the email prompting the user to record a video. | [optional]
13
+ **email_subject** | **String** | Video Prompt: The subject line of the final sent email | [optional]
14
+ **email_body** | **String** | Video Prompt: The HTML body of the final sent email. | [optional]
15
+ **send_without_video** | **BOOLEAN** | Video Prompt: Whether to send the final email if no video was recorded. | [optional]
16
+ **status** | **String** | The state of the send. | [optional]
17
+
18
+
@@ -0,0 +1,18 @@
1
+ # BombBomb::JerichoPerformance
2
+
3
+ ## Properties
4
+ Name | Type | Description | Notes
5
+ ------------ | ------------- | ------------- | -------------
6
+ **sent** | **Integer** | The number of emails sent | [optional]
7
+ **unique_views** | **Integer** | The unique number of people that viewed the email | [optional]
8
+ **unique_landing_page_views** | **Integer** | The unique number of people that visited the landing page | [optional]
9
+ **landing_page_views** | **Integer** | The total number of people that visisted the landing page | [optional]
10
+ **delivered** | **Integer** | The number of emails delivered, likely less than sent due to bounces, and other common delivery issues | [optional]
11
+ **bounce** | **Integer** | The number of emails that bounced as undeliverable | [optional]
12
+ **open** | **Integer** | The total number of times the emails were viewed | [optional]
13
+ **click** | **Integer** | The total number of times links in the emails were clicked | [optional]
14
+ **video_play** | **Integer** | The total number of times videos in the emails were played | [optional]
15
+ **abuse_complaints** | **Integer** | The number of recipients that marked the message as abusive | [optional]
16
+ **contacts** | **Integer** | The total number of contacts submitted to be sent, may be more than was sent to | [optional]
17
+
18
+
@@ -0,0 +1,13 @@
1
+ # BombBomb::OAuthClient
2
+
3
+ ## Properties
4
+ Name | Type | Description | Notes
5
+ ------------ | ------------- | ------------- | -------------
6
+ **identifier** | **String** | The id of the OAuth Client | [optional]
7
+ **name** | **String** | The user-facing name of the client. Eg. MyCrm | [optional]
8
+ **client_secret** | **String** | The secret supplied to the OAuth Application | [optional]
9
+ **grants_allowed** | **String** | The grants allowed | [optional]
10
+ **owning_user_id** | **String** | The user who controls the OAuth App | [optional]
11
+ **redirect_uri** | **String** | Where OAuth authorization sessions are returned to | [optional]
12
+
13
+
@@ -0,0 +1,169 @@
1
+ # BombBomb::PromptsApi
2
+
3
+ All URIs are relative to *https://dev.api.bombbomb.com/v2*
4
+
5
+ Method | HTTP request | Description
6
+ ------------- | ------------- | -------------
7
+ [**create_video_email_prompt**](PromptsApi.md#create_video_email_prompt) | **POST** /prompt | Prompts user to send a video
8
+ [**get_video_email_prompt**](PromptsApi.md#get_video_email_prompt) | **GET** /prompt/{id} | Gets a prompt
9
+ [**respond_to_video_email_prompt**](PromptsApi.md#respond_to_video_email_prompt) | **POST** /prompt/{id}/response | Respond to a prompt
10
+
11
+
12
+ # **create_video_email_prompt**
13
+ > VideoEmailPrompt create_video_email_prompt(prompt)
14
+
15
+ Prompts user to send a video
16
+
17
+ Sends the account holder an email prompting them to add a video to a scheduled outgoing message. Recipients, content and timing is all preset for the user.
18
+
19
+ ### Example
20
+ ```ruby
21
+ # load the gem
22
+ require 'bombbomb'
23
+ # setup authorization
24
+ BombBomb.configure do |config|
25
+ # Configure OAuth2 access token for authorization: BBOAuth2
26
+ config.access_token = 'YOUR ACCESS TOKEN'
27
+ end
28
+
29
+ api_instance = BombBomb::PromptsApi.new
30
+
31
+ prompt = BombBomb::VideoEmailPrompt.new # VideoEmailPrompt | The Video Email Prompt to be created
32
+
33
+
34
+ begin
35
+ #Prompts user to send a video
36
+ result = api_instance.create_video_email_prompt(prompt)
37
+ p result
38
+ rescue BombBomb::ApiError => e
39
+ puts "Exception when calling PromptsApi->create_video_email_prompt: #{e}"
40
+ end
41
+ ```
42
+
43
+ ### Parameters
44
+
45
+ Name | Type | Description | Notes
46
+ ------------- | ------------- | ------------- | -------------
47
+ **prompt** | [**VideoEmailPrompt**](VideoEmailPrompt.md)| The Video Email Prompt to be created |
48
+
49
+ ### Return type
50
+
51
+ [**VideoEmailPrompt**](VideoEmailPrompt.md)
52
+
53
+ ### Authorization
54
+
55
+ [BBOAuth2](../README.md#BBOAuth2)
56
+
57
+ ### HTTP request headers
58
+
59
+ - **Content-Type**: Not defined
60
+ - **Accept**: application/json
61
+
62
+
63
+
64
+ # **get_video_email_prompt**
65
+ > VideoEmailPrompt get_video_email_prompt(id)
66
+
67
+ Gets a prompt
68
+
69
+ Gets a prompt
70
+
71
+ ### Example
72
+ ```ruby
73
+ # load the gem
74
+ require 'bombbomb'
75
+ # setup authorization
76
+ BombBomb.configure do |config|
77
+ # Configure OAuth2 access token for authorization: BBOAuth2
78
+ config.access_token = 'YOUR ACCESS TOKEN'
79
+ end
80
+
81
+ api_instance = BombBomb::PromptsApi.new
82
+
83
+ id = "id_example" # String | The Id of the prompt
84
+
85
+
86
+ begin
87
+ #Gets a prompt
88
+ result = api_instance.get_video_email_prompt(id)
89
+ p result
90
+ rescue BombBomb::ApiError => e
91
+ puts "Exception when calling PromptsApi->get_video_email_prompt: #{e}"
92
+ end
93
+ ```
94
+
95
+ ### Parameters
96
+
97
+ Name | Type | Description | Notes
98
+ ------------- | ------------- | ------------- | -------------
99
+ **id** | **String**| The Id of the prompt |
100
+
101
+ ### Return type
102
+
103
+ [**VideoEmailPrompt**](VideoEmailPrompt.md)
104
+
105
+ ### Authorization
106
+
107
+ [BBOAuth2](../README.md#BBOAuth2)
108
+
109
+ ### HTTP request headers
110
+
111
+ - **Content-Type**: Not defined
112
+ - **Accept**: application/json
113
+
114
+
115
+
116
+ # **respond_to_video_email_prompt**
117
+ > VideoEmailPrompt respond_to_video_email_prompt(id, choice, opts)
118
+
119
+ Respond to a prompt
120
+
121
+ Respond to a prompt by either adding a video, sending without a video or cancelling the prompt.
122
+
123
+ ### Example
124
+ ```ruby
125
+ # load the gem
126
+ require 'bombbomb'
127
+
128
+ api_instance = BombBomb::PromptsApi.new
129
+
130
+ id = "id_example" # String | The id of the prompt.
131
+
132
+ choice = "choice_example" # String | The users' selection. Can be: WithVideo, WithoutVideo, Cancel
133
+
134
+ opts = {
135
+ video_id: "video_id_example" # String | The id of the video.
136
+ }
137
+
138
+ begin
139
+ #Respond to a prompt
140
+ result = api_instance.respond_to_video_email_prompt(id, choice, opts)
141
+ p result
142
+ rescue BombBomb::ApiError => e
143
+ puts "Exception when calling PromptsApi->respond_to_video_email_prompt: #{e}"
144
+ end
145
+ ```
146
+
147
+ ### Parameters
148
+
149
+ Name | Type | Description | Notes
150
+ ------------- | ------------- | ------------- | -------------
151
+ **id** | **String**| The id of the prompt. |
152
+ **choice** | **String**| The users' selection. Can be: WithVideo, WithoutVideo, Cancel |
153
+ **video_id** | **String**| The id of the video. | [optional]
154
+
155
+ ### Return type
156
+
157
+ [**VideoEmailPrompt**](VideoEmailPrompt.md)
158
+
159
+ ### Authorization
160
+
161
+ No authorization required
162
+
163
+ ### HTTP request headers
164
+
165
+ - **Content-Type**: Not defined
166
+ - **Accept**: application/json
167
+
168
+
169
+
data/docs/String.md ADDED
@@ -0,0 +1,7 @@
1
+ # BombBomb::String
2
+
3
+ ## Properties
4
+ Name | Type | Description | Notes
5
+ ------------ | ------------- | ------------- | -------------
6
+
7
+
data/docs/TeamsApi.md ADDED
@@ -0,0 +1,290 @@
1
+ # BombBomb::TeamsApi
2
+
3
+ All URIs are relative to *https://dev.api.bombbomb.com/v2*
4
+
5
+ Method | HTTP request | Description
6
+ ------------- | ------------- | -------------
7
+ [**cancel_jericho_send**](TeamsApi.md#cancel_jericho_send) | **DELETE** /team/{teamId}/jericho/{jerichoId} | Cancel a Jericho Send
8
+ [**get_client_group_assets**](TeamsApi.md#get_client_group_assets) | **GET** /team/assets/ | Lists team assets
9
+ [**get_jericho_sends**](TeamsApi.md#get_jericho_sends) | **GET** /team/{teamId}/jericho | List Jericho Sends
10
+ [**get_jericho_stats**](TeamsApi.md#get_jericho_stats) | **GET** /team/{teamId}/jericho/{jerichoId}/performance | Gets Jericho performance statistics
11
+ [**queue_jericho_send**](TeamsApi.md#queue_jericho_send) | **POST** /team/{teamId}/jericho | Creates a Jericho send.
12
+
13
+
14
+ # **cancel_jericho_send**
15
+ > cancel_jericho_send(jericho_id)
16
+
17
+ Cancel a Jericho Send
18
+
19
+ Cancels a scheduled Jericho send from being sent.
20
+
21
+ ### Example
22
+ ```ruby
23
+ # load the gem
24
+ require 'bombbomb'
25
+ # setup authorization
26
+ BombBomb.configure do |config|
27
+ # Configure OAuth2 access token for authorization: BBOAuth2
28
+ config.access_token = 'YOUR ACCESS TOKEN'
29
+ end
30
+
31
+ api_instance = BombBomb::TeamsApi.new
32
+
33
+ jericho_id = "jericho_id_example" # String | ID of the Jericho Job to cancel
34
+
35
+
36
+ begin
37
+ #Cancel a Jericho Send
38
+ api_instance.cancel_jericho_send(jericho_id)
39
+ rescue BombBomb::ApiError => e
40
+ puts "Exception when calling TeamsApi->cancel_jericho_send: #{e}"
41
+ end
42
+ ```
43
+
44
+ ### Parameters
45
+
46
+ Name | Type | Description | Notes
47
+ ------------- | ------------- | ------------- | -------------
48
+ **jericho_id** | **String**| ID of the Jericho Job to cancel |
49
+
50
+ ### Return type
51
+
52
+ nil (empty response body)
53
+
54
+ ### Authorization
55
+
56
+ [BBOAuth2](../README.md#BBOAuth2)
57
+
58
+ ### HTTP request headers
59
+
60
+ - **Content-Type**: Not defined
61
+ - **Accept**: application/json
62
+
63
+
64
+
65
+ # **get_client_group_assets**
66
+ > InlineResponse200 get_client_group_assets(asset_type, opts)
67
+
68
+ Lists team assets
69
+
70
+ Returns a collection of assets
71
+
72
+ ### Example
73
+ ```ruby
74
+ # load the gem
75
+ require 'bombbomb'
76
+ # setup authorization
77
+ BombBomb.configure do |config|
78
+ # Configure OAuth2 access token for authorization: BBOAuth2
79
+ config.access_token = 'YOUR ACCESS TOKEN'
80
+ end
81
+
82
+ api_instance = BombBomb::TeamsApi.new
83
+
84
+ asset_type = "asset_type_example" # String | The type of assets.
85
+
86
+ opts = {
87
+ team_id: "team_id_example", # String | The team containing the assets.
88
+ auto_tag_name: "auto_tag_name_example", # String | The auto tag name containing the assets.
89
+ page_size: "page_size_example", # String | The number of items to retrieve in a single db query.
90
+ page: "page_example", # String | Zero-based index of the page of data to retrieve from the db.
91
+ search: "search_example" # String | Search words.
92
+ }
93
+
94
+ begin
95
+ #Lists team assets
96
+ result = api_instance.get_client_group_assets(asset_type, opts)
97
+ p result
98
+ rescue BombBomb::ApiError => e
99
+ puts "Exception when calling TeamsApi->get_client_group_assets: #{e}"
100
+ end
101
+ ```
102
+
103
+ ### Parameters
104
+
105
+ Name | Type | Description | Notes
106
+ ------------- | ------------- | ------------- | -------------
107
+ **asset_type** | **String**| The type of assets. |
108
+ **team_id** | **String**| The team containing the assets. | [optional]
109
+ **auto_tag_name** | **String**| The auto tag name containing the assets. | [optional]
110
+ **page_size** | **String**| The number of items to retrieve in a single db query. | [optional]
111
+ **page** | **String**| Zero-based index of the page of data to retrieve from the db. | [optional]
112
+ **search** | **String**| Search words. | [optional]
113
+
114
+ ### Return type
115
+
116
+ [**InlineResponse200**](InlineResponse200.md)
117
+
118
+ ### Authorization
119
+
120
+ [BBOAuth2](../README.md#BBOAuth2)
121
+
122
+ ### HTTP request headers
123
+
124
+ - **Content-Type**: Not defined
125
+ - **Accept**: application/json
126
+
127
+
128
+
129
+ # **get_jericho_sends**
130
+ > Array<JerichoConfiguration> get_jericho_sends(team_id)
131
+
132
+ List Jericho Sends
133
+
134
+ Lists Jericho sends, both pending and sent.
135
+
136
+ ### Example
137
+ ```ruby
138
+ # load the gem
139
+ require 'bombbomb'
140
+ # setup authorization
141
+ BombBomb.configure do |config|
142
+ # Configure OAuth2 access token for authorization: BBOAuth2
143
+ config.access_token = 'YOUR ACCESS TOKEN'
144
+ end
145
+
146
+ api_instance = BombBomb::TeamsApi.new
147
+
148
+ team_id = "team_id_example" # String | The team whose Jericho sends you wish to see.
149
+
150
+
151
+ begin
152
+ #List Jericho Sends
153
+ result = api_instance.get_jericho_sends(team_id)
154
+ p result
155
+ rescue BombBomb::ApiError => e
156
+ puts "Exception when calling TeamsApi->get_jericho_sends: #{e}"
157
+ end
158
+ ```
159
+
160
+ ### Parameters
161
+
162
+ Name | Type | Description | Notes
163
+ ------------- | ------------- | ------------- | -------------
164
+ **team_id** | **String**| The team whose Jericho sends you wish to see. |
165
+
166
+ ### Return type
167
+
168
+ [**Array<JerichoConfiguration>**](JerichoConfiguration.md)
169
+
170
+ ### Authorization
171
+
172
+ [BBOAuth2](../README.md#BBOAuth2)
173
+
174
+ ### HTTP request headers
175
+
176
+ - **Content-Type**: Not defined
177
+ - **Accept**: application/json
178
+
179
+
180
+
181
+ # **get_jericho_stats**
182
+ > JerichoPerformance get_jericho_stats(jericho_id, team_id)
183
+
184
+ Gets Jericho performance statistics
185
+
186
+ Returns an aggregate view of the performance of a Jericho send
187
+
188
+ ### Example
189
+ ```ruby
190
+ # load the gem
191
+ require 'bombbomb'
192
+ # setup authorization
193
+ BombBomb.configure do |config|
194
+ # Configure OAuth2 access token for authorization: BBOAuth2
195
+ config.access_token = 'YOUR ACCESS TOKEN'
196
+ end
197
+
198
+ api_instance = BombBomb::TeamsApi.new
199
+
200
+ jericho_id = "jericho_id_example" # String | ID of the Jericho job
201
+
202
+ team_id = "team_id_example" # String | ID of team through which Jericho was sent
203
+
204
+
205
+ begin
206
+ #Gets Jericho performance statistics
207
+ result = api_instance.get_jericho_stats(jericho_id, team_id)
208
+ p result
209
+ rescue BombBomb::ApiError => e
210
+ puts "Exception when calling TeamsApi->get_jericho_stats: #{e}"
211
+ end
212
+ ```
213
+
214
+ ### Parameters
215
+
216
+ Name | Type | Description | Notes
217
+ ------------- | ------------- | ------------- | -------------
218
+ **jericho_id** | **String**| ID of the Jericho job |
219
+ **team_id** | **String**| ID of team through which Jericho was sent |
220
+
221
+ ### Return type
222
+
223
+ [**JerichoPerformance**](JerichoPerformance.md)
224
+
225
+ ### Authorization
226
+
227
+ [BBOAuth2](../README.md#BBOAuth2)
228
+
229
+ ### HTTP request headers
230
+
231
+ - **Content-Type**: Not defined
232
+ - **Accept**: application/json
233
+
234
+
235
+
236
+ # **queue_jericho_send**
237
+ > JerichoConfiguration queue_jericho_send(config, team_id)
238
+
239
+ Creates a Jericho send.
240
+
241
+ Sends email content on behalf of members of a client group. There are two forms this send can take: Static Email, and Video Prompt. Static emails require only an emailId. Video Prompts build emails dynamically and require most of the other fields. You must be an administrator of a Team Account to use this method.
242
+
243
+ ### Example
244
+ ```ruby
245
+ # load the gem
246
+ require 'bombbomb'
247
+ # setup authorization
248
+ BombBomb.configure do |config|
249
+ # Configure OAuth2 access token for authorization: BBOAuth2
250
+ config.access_token = 'YOUR ACCESS TOKEN'
251
+ end
252
+
253
+ api_instance = BombBomb::TeamsApi.new
254
+
255
+ config = BombBomb::JerichoConfiguration.new # JerichoConfiguration | JSON representing a Jericho configuration
256
+
257
+ team_id = "team_id_example" # String | The ID of the team.
258
+
259
+
260
+ begin
261
+ #Creates a Jericho send.
262
+ result = api_instance.queue_jericho_send(config, team_id)
263
+ p result
264
+ rescue BombBomb::ApiError => e
265
+ puts "Exception when calling TeamsApi->queue_jericho_send: #{e}"
266
+ end
267
+ ```
268
+
269
+ ### Parameters
270
+
271
+ Name | Type | Description | Notes
272
+ ------------- | ------------- | ------------- | -------------
273
+ **config** | [**JerichoConfiguration**](JerichoConfiguration.md)| JSON representing a Jericho configuration |
274
+ **team_id** | **String**| The ID of the team. |
275
+
276
+ ### Return type
277
+
278
+ [**JerichoConfiguration**](JerichoConfiguration.md)
279
+
280
+ ### Authorization
281
+
282
+ [BBOAuth2](../README.md#BBOAuth2)
283
+
284
+ ### HTTP request headers
285
+
286
+ - **Content-Type**: Not defined
287
+ - **Accept**: application/json
288
+
289
+
290
+