bombbomb 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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
+