fomo 0.0.1 → 0.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fa77a90b834d57f936318a590dd136649f6b6a70
4
- data.tar.gz: c7416a9c06ef302d85eeef28b5428329bbb95608
3
+ metadata.gz: dcc514f4a284cc788137ac76d83d20f974ad28d6
4
+ data.tar.gz: 147477b80dc9f899dfd97fff0ff0f3d5e9d83190
5
5
  SHA512:
6
- metadata.gz: befde76e5fc2ee61086a68f6a713d9802967d1fc1efad93360c666d47f934b785c0b711aa32deed8b97422498b0828ee71cda654301a3492ffba877ed547a892
7
- data.tar.gz: 591e388f9a4c0aec15ec12aae375774793a6d21fae557effa2852e984c498bdcf1dfbe3b9a74f101bb27dbff37e8301af2698ec798e6f7e0e132f53e27feb802
6
+ metadata.gz: dffb6233fb5dc77332d5057fabbf37d3dc99005b8f56d8d3a05f81d6a2ca0495b708c46a218bdfd254210a30a6505cc377cc97b9f76ef5f97c8e4c7f17f35bca
7
+ data.tar.gz: 03d7f8c4a103c153815287b715935694b92466750dc642b477e66b8ab2909f599108d820ae26378c512a0675562c2d6ab28ec0d00e440efeb70e55659b845671
data/lib/fomo.rb CHANGED
@@ -6,6 +6,9 @@
6
6
 
7
7
  require 'net/http'
8
8
  require 'json'
9
+ require 'fomo_event_basic'
10
+ require 'fomo_event'
11
+ require 'fomo_delete_message_response'
9
12
 
10
13
  # Fomo Client is wrapper around official Fomo API (https://www.usefomo.com)
11
14
  class Fomo
@@ -35,8 +38,12 @@ class Fomo
35
38
  #
36
39
  def get_event(id)
37
40
  response = make_request('/api/v1/applications/me/events/' + id.to_s, 'GET')
38
- j = JSON.parse(response)
39
- FomoEvent.new(j['id'], j['created_at'], j['updated_at'], j['message'], j['link'], j['event_type_id'], j['url'], j['first_name'], j['city'], j['province'], j['country'], j['title'], j['image_url'], j['custom_event_fields_attributes'])
41
+ begin
42
+ j = JSON.parse(response)
43
+ FomoEvent.new(j['id'], j['created_at'], j['updated_at'], j['message'], j['link'], j['event_type_id'], j['url'], j['first_name'], j['city'], j['province'], j['country'], j['title'], j['image_url'], j['custom_event_fields_attributes'])
44
+ rescue JSON::ParserError => _
45
+ # String was not valid
46
+ end
40
47
  end
41
48
 
42
49
  # Get events
@@ -45,25 +52,46 @@ class Fomo
45
52
  #
46
53
  def get_events
47
54
  response = make_request('/api/v1/applications/me/events', 'GET')
48
- data = JSON.parse(response)
49
- list = []
50
- data.each do |j|
51
- list.push(FomoEvent.new(j['id'], j['created_at'], j['updated_at'], j['message'], j['link'], j['event_type_id'], j['url'], j['first_name'], j['city'], j['province'], j['country'], j['title'], j['image_url'], j['custom_event_fields_attributes']))
55
+ begin
56
+ data = JSON.parse(response)
57
+ list = []
58
+ data.each do |j|
59
+ list.push(FomoEvent.new(j['id'], j['created_at'], j['updated_at'], j['message'], j['link'], j['event_type_id'], j['url'], j['first_name'], j['city'], j['province'], j['country'], j['title'], j['image_url'], j['custom_event_fields_attributes']))
60
+ end
61
+ list
62
+ rescue JSON::ParserError => _
63
+ # String was not valid
52
64
  end
53
- list
54
65
  end
55
66
 
56
67
  # Create event
57
68
  #
58
69
  # Arguments:
59
70
  # event: (FomoEventBasic) Fomo event
71
+ # event_type_id: (String) Event type ID
72
+ # url: (String) Event URL
73
+ # first_name: (String) First name
74
+ # city: (String) City
75
+ # province: (String) Province
76
+ # country: (String) Country
77
+ # title: (String) Event title
78
+ # image_url: (String) Event Image URL
79
+ # custom_event_fields_attributes: (array) Custom event attributes
60
80
  #
61
81
  # Returns an FomoEvent object.
62
82
  #
63
- def create_event(event)
83
+ def create_event(event=nil, event_type_id='', url='', first_name='', city='', province='', country='', title='', image_url='', custom_event_fields_attributes=[])
84
+ if event == nil
85
+ event = FomoEventBasic.new(event_type_id, url, first_name, city, province, country, title, image_url, custom_event_fields_attributes)
86
+ end
87
+
64
88
  response = make_request('/api/v1/applications/me/events', 'POST', event)
65
- j = JSON.parse(response)
66
- FomoEvent.new(j['id'], j['created_at'], j['updated_at'], j['message'], j['link'], j['event_type_id'], j['url'], j['first_name'], j['city'], j['province'], j['country'], j['title'], j['image_url'], j['custom_event_fields_attributes'])
89
+ begin
90
+ j = JSON.parse(response)
91
+ FomoEvent.new(j['id'], j['created_at'], j['updated_at'], j['message'], j['link'], j['event_type_id'], j['url'], j['first_name'], j['city'], j['province'], j['country'], j['title'], j['image_url'], j['custom_event_fields_attributes'])
92
+ rescue JSON::ParserError => _
93
+ # String was not valid
94
+ end
67
95
  end
68
96
 
69
97
  # Delete event
@@ -75,8 +103,12 @@ class Fomo
75
103
  #
76
104
  def delete_event(id)
77
105
  response = make_request('/api/v1/applications/me/events/' + id.to_s, 'DELETE')
78
- j = JSON.parse(response)
79
- FomoDeleteMessageResponse.new(j['message'])
106
+ begin
107
+ j = JSON.parse(response)
108
+ FomoDeleteMessageResponse.new(j['message'])
109
+ rescue JSON::ParserError => _
110
+ # String was not valid
111
+ end
80
112
  end
81
113
 
82
114
  # Update event
@@ -88,8 +120,12 @@ class Fomo
88
120
  #
89
121
  def update_event(event)
90
122
  response = make_request('/api/v1/applications/me/events/' + event.id.to_s, 'PATCH', event)
91
- j = JSON.parse(response)
92
- FomoEvent.new(j['id'], j['created_at'], j['updated_at'], j['message'], j['link'], j['event_type_id'], j['url'], j['first_name'], j['city'], j['province'], j['country'], j['title'], j['image_url'], j['custom_event_fields_attributes'])
123
+ begin
124
+ j = JSON.parse(response)
125
+ FomoEvent.new(j['id'], j['created_at'], j['updated_at'], j['message'], j['link'], j['event_type_id'], j['url'], j['first_name'], j['city'], j['province'], j['country'], j['title'], j['image_url'], j['custom_event_fields_attributes'])
126
+ rescue JSON::ParserError => _
127
+ # String was not valid
128
+ end
93
129
  end
94
130
 
95
131
  # Make authorized request to Fomo API
@@ -134,180 +170,4 @@ class Fomo
134
170
  puts('Unknown method')
135
171
  end
136
172
  end
137
- end
138
-
139
- # This class holds attributes of basic event, object is needed when creating new event
140
- class FomoEventBasic
141
-
142
- # Event type unique ID (required)
143
- attr_accessor :event_type_id
144
-
145
- # Url to redirect on the event click. Size range: 0..255 (required)
146
- attr_accessor :url
147
-
148
- # First name of the person on the event. Size range: 0..255
149
- attr_accessor :first_name
150
-
151
- # City where the event happened. Size range: 0..255
152
- attr_accessor :city
153
-
154
- # Province where the event happened. Size range: 0..255
155
- attr_accessor :province
156
-
157
- # Country where the event happened ISO-2 standard. Size range: 0..255
158
- attr_accessor :country
159
-
160
- # Title of the event. Size range: 0..255
161
- attr_accessor :title
162
-
163
- # Url of the image to be displayed. Size range: 0..255
164
- attr_accessor :image_url
165
-
166
- # Array to create custom event fields
167
- attr_accessor :custom_event_fields_attributes
168
-
169
- # Initializes FomoEventBasic object
170
- def initialize(event_type_id='', url='', first_name='', city='', province='', country='', title='', image_url='', custom_event_fields_attributes = [])
171
- @event_type_id = event_type_id
172
- @url = url
173
- @first_name = first_name
174
- @city = city
175
- @province = province
176
- @country = country
177
- @title = title
178
- @image_url = image_url
179
- @custom_event_fields_attributes = custom_event_fields_attributes
180
- end
181
-
182
- # Add custom event field
183
- #
184
- # Arguments:
185
- # key: Custom attribute key
186
- # value: Custom attribute value
187
- # id: Custom attribute ID
188
- #
189
- def add_custom_event_field(key, value, id='')
190
- if id == ''
191
- @custom_event_fields_attributes.push({'key' => key, 'value' => value})
192
- else
193
- @custom_event_fields_attributes.push({'key' => key, 'value' => value, 'id' => id})
194
- end
195
- end
196
-
197
- # Return JSON serialized object
198
- def to_json
199
- hash = {}
200
- self.instance_variables.each do |var|
201
- hash[var.to_s.sub(/^@/, '')] = self.instance_variable_get var
202
- end
203
- '{"event":' + hash.to_json + '}'
204
- end
205
- end
206
-
207
- # This class holds attributes of event, object returned by API
208
- class FomoEvent
209
- # Event ID
210
- attr_accessor :id
211
-
212
- # Created timestamp
213
- attr_accessor :created_at
214
-
215
- # Updated timestamp
216
- attr_accessor :updated_at
217
-
218
- # Message template
219
- attr_accessor :message
220
-
221
- # Full link
222
- attr_accessor :link
223
-
224
- # Event type unique ID (required)
225
- attr_accessor :event_type_id
226
-
227
- # Url to redirect on the event click. Size range: 0..255 (required)
228
- attr_accessor :url
229
-
230
- # First name of the person on the event. Size range: 0..255
231
- attr_accessor :first_name
232
-
233
- # City where the event happened. Size range: 0..255
234
- attr_accessor :city
235
-
236
- # Province where the event happened. Size range: 0..255
237
- attr_accessor :province
238
-
239
- # Country where the event happened ISO-2 standard. Size range: 0..255
240
- attr_accessor :country
241
-
242
- # Title of the event. Size range: 0..255
243
- attr_accessor :title
244
-
245
- # Url of the image to be displayed. Size range: 0..255
246
- attr_accessor :image_url
247
-
248
- # Array to create custom event fields
249
- attr_accessor :custom_event_fields_attributes
250
-
251
- # Initializes FomoEvent object
252
- def initialize(id='', created_at='', updated_at='', message='', link='', event_type_id='', url='', first_name='', city='', province='', country='', title='', image_url='', custom_event_fields_attributes = [])
253
- @id = id
254
- @created_at = created_at
255
- @updated_at = updated_at
256
- @message = message
257
- @link = link
258
- @event_type_id = event_type_id
259
- @url = url
260
- @first_name = first_name
261
- @city = city
262
- @province = province
263
- @country = country
264
- @title = title
265
- @image_url = image_url
266
- @custom_event_fields_attributes = custom_event_fields_attributes
267
- end
268
-
269
- # Add custom event field
270
- #
271
- # Arguments:
272
- # key: Custom attribute key
273
- # value: Custom attribute value
274
- # id: Custom attribute ID
275
- #
276
- def add_custom_event_field(key, value, id='')
277
- if id == ''
278
- @custom_event_fields_attributes.push({'key' => key, 'value' => value})
279
- else
280
- @custom_event_fields_attributes.push({'key' => key, 'value' => value, 'id' => id})
281
- end
282
- end
283
-
284
- # Return JSON serialized object
285
- def to_json
286
- hash = {}
287
- self.instance_variables.each do |var|
288
- hash[var.to_s.sub(/^@/, '')] = self.instance_variable_get var
289
- end
290
- '{"event":' + hash.to_json + '}'
291
- end
292
- end
293
-
294
- # This class holds attributes of Fomo delete response, object returned by API
295
- class FomoDeleteMessageResponse
296
-
297
- # Message
298
- attr_accessor :message
299
-
300
- # Initializes FomoDeleteMessageResponse object
301
- def initialize(message='')
302
- @message = message
303
- end
304
-
305
- # Return JSON serialized object
306
- def to_json
307
- hash = {}
308
- self.instance_variables.each do |var|
309
- hash[var.to_s.sub(/^@/, '')] = self.instance_variable_get var
310
- end
311
- hash.to_json
312
- end
313
173
  end
@@ -0,0 +1,28 @@
1
+ # Copyright (c) 2016. Fomo. https://www.usefomo.com
2
+ #
3
+ # Author:: Fomo (mailto:hello@usefomo.com)
4
+ # Copyright:: Copyright (c) 2016. Fomo. https://www.usefomo.com
5
+ # License:: MIT
6
+
7
+ require 'json'
8
+
9
+ # This class holds attributes of Fomo delete response, object returned by API
10
+ class FomoDeleteMessageResponse
11
+
12
+ # Message
13
+ attr_accessor :message
14
+
15
+ # Initializes FomoDeleteMessageResponse object
16
+ def initialize(message='')
17
+ @message = message
18
+ end
19
+
20
+ # Return JSON serialized object
21
+ def to_json
22
+ hash = {}
23
+ self.instance_variables.each do |var|
24
+ hash[var.to_s.sub(/^@/, '')] = self.instance_variable_get var
25
+ end
26
+ hash.to_json
27
+ end
28
+ end
data/lib/fomo_event.rb ADDED
@@ -0,0 +1,94 @@
1
+ # Copyright (c) 2016. Fomo. https://www.usefomo.com
2
+ #
3
+ # Author:: Fomo (mailto:hello@usefomo.com)
4
+ # Copyright:: Copyright (c) 2016. Fomo. https://www.usefomo.com
5
+ # License:: MIT
6
+
7
+ require 'json'
8
+
9
+ # This class holds attributes of event, object returned by API
10
+ class FomoEvent
11
+ # Event ID
12
+ attr_accessor :id
13
+
14
+ # Created timestamp
15
+ attr_accessor :created_at
16
+
17
+ # Updated timestamp
18
+ attr_accessor :updated_at
19
+
20
+ # Message template
21
+ attr_accessor :message
22
+
23
+ # Full link
24
+ attr_accessor :link
25
+
26
+ # Event type unique ID (required)
27
+ attr_accessor :event_type_id
28
+
29
+ # Url to redirect on the event click. Size range: 0..255 (required)
30
+ attr_accessor :url
31
+
32
+ # First name of the person on the event. Size range: 0..255
33
+ attr_accessor :first_name
34
+
35
+ # City where the event happened. Size range: 0..255
36
+ attr_accessor :city
37
+
38
+ # Province where the event happened. Size range: 0..255
39
+ attr_accessor :province
40
+
41
+ # Country where the event happened ISO-2 standard. Size range: 0..255
42
+ attr_accessor :country
43
+
44
+ # Title of the event. Size range: 0..255
45
+ attr_accessor :title
46
+
47
+ # Url of the image to be displayed. Size range: 0..255
48
+ attr_accessor :image_url
49
+
50
+ # Array to create custom event fields
51
+ attr_accessor :custom_event_fields_attributes
52
+
53
+ # Initializes FomoEvent object
54
+ def initialize(id='', created_at='', updated_at='', message='', link='', event_type_id='', url='', first_name='', city='', province='', country='', title='', image_url='', custom_event_fields_attributes = [])
55
+ @id = id
56
+ @created_at = created_at
57
+ @updated_at = updated_at
58
+ @message = message
59
+ @link = link
60
+ @event_type_id = event_type_id
61
+ @url = url
62
+ @first_name = first_name
63
+ @city = city
64
+ @province = province
65
+ @country = country
66
+ @title = title
67
+ @image_url = image_url
68
+ @custom_event_fields_attributes = custom_event_fields_attributes
69
+ end
70
+
71
+ # Add custom event field
72
+ #
73
+ # Arguments:
74
+ # key: Custom attribute key
75
+ # value: Custom attribute value
76
+ # id: Custom attribute ID
77
+ #
78
+ def add_custom_event_field(key, value, id='')
79
+ if id == ''
80
+ @custom_event_fields_attributes.push({'key' => key, 'value' => value})
81
+ else
82
+ @custom_event_fields_attributes.push({'key' => key, 'value' => value, 'id' => id})
83
+ end
84
+ end
85
+
86
+ # Return JSON serialized object
87
+ def to_json
88
+ hash = {}
89
+ self.instance_variables.each do |var|
90
+ hash[var.to_s.sub(/^@/, '')] = self.instance_variable_get var
91
+ end
92
+ '{"event":' + hash.to_json + '}'
93
+ end
94
+ end
@@ -0,0 +1,75 @@
1
+ # Copyright (c) 2016. Fomo. https://www.usefomo.com
2
+ #
3
+ # Author:: Fomo (mailto:hello@usefomo.com)
4
+ # Copyright:: Copyright (c) 2016. Fomo. https://www.usefomo.com
5
+ # License:: MIT
6
+
7
+ require 'json'
8
+
9
+ # This class holds attributes of basic event, object is needed when creating new event
10
+ class FomoEventBasic
11
+
12
+ # Event type unique ID (required)
13
+ attr_accessor :event_type_id
14
+
15
+ # Url to redirect on the event click. Size range: 0..255 (required)
16
+ attr_accessor :url
17
+
18
+ # First name of the person on the event. Size range: 0..255
19
+ attr_accessor :first_name
20
+
21
+ # City where the event happened. Size range: 0..255
22
+ attr_accessor :city
23
+
24
+ # Province where the event happened. Size range: 0..255
25
+ attr_accessor :province
26
+
27
+ # Country where the event happened ISO-2 standard. Size range: 0..255
28
+ attr_accessor :country
29
+
30
+ # Title of the event. Size range: 0..255
31
+ attr_accessor :title
32
+
33
+ # Url of the image to be displayed. Size range: 0..255
34
+ attr_accessor :image_url
35
+
36
+ # Array to create custom event fields
37
+ attr_accessor :custom_event_fields_attributes
38
+
39
+ # Initializes FomoEventBasic object
40
+ def initialize(event_type_id='', url='', first_name='', city='', province='', country='', title='', image_url='', custom_event_fields_attributes = [])
41
+ @event_type_id = event_type_id
42
+ @url = url
43
+ @first_name = first_name
44
+ @city = city
45
+ @province = province
46
+ @country = country
47
+ @title = title
48
+ @image_url = image_url
49
+ @custom_event_fields_attributes = custom_event_fields_attributes
50
+ end
51
+
52
+ # Add custom event field
53
+ #
54
+ # Arguments:
55
+ # key: Custom attribute key
56
+ # value: Custom attribute value
57
+ # id: Custom attribute ID
58
+ #
59
+ def add_custom_event_field(key, value, id='')
60
+ if id == ''
61
+ @custom_event_fields_attributes.push({'key' => key, 'value' => value})
62
+ else
63
+ @custom_event_fields_attributes.push({'key' => key, 'value' => value, 'id' => id})
64
+ end
65
+ end
66
+
67
+ # Return JSON serialized object
68
+ def to_json
69
+ hash = {}
70
+ self.instance_variables.each do |var|
71
+ hash[var.to_s.sub(/^@/, '')] = self.instance_variable_get var
72
+ end
73
+ '{"event":' + hash.to_json + '}'
74
+ end
75
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fomo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fomo
@@ -18,6 +18,9 @@ extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
20
  - lib/fomo.rb
21
+ - lib/fomo_delete_message_response.rb
22
+ - lib/fomo_event.rb
23
+ - lib/fomo_event_basic.rb
21
24
  homepage: https://github.com/usefomo/fomo-ruby-sdk
22
25
  licenses:
23
26
  - MIT