Class: ConstantContact::Services::EventSpotService

Inherits:
BaseService
  • Object
show all
Defined in:
lib/constantcontact/services/event_spot_service.rb

Class Method Summary collapse

Class Method Details

.add_event(event) ⇒ Event

Create a new event

Parameters:

  • event (Event)
    • Event to be created

Returns:

  • (Event)


15
16
17
18
19
20
21
# File 'lib/constantcontact/services/event_spot_service.rb', line 15

def add_event(event)
  url = Util::Config.get('endpoints.base_url') + Util::Config.get('endpoints.events')
  url = build_url(url)
  payload = event.to_json
  response = RestClient.post(url, payload, get_headers())
  Components::Event.create(JSON.parse(response.body))
end

.add_event_item(event_id, event_item) ⇒ EventItem

Create a new event item for an event

Parameters:

  • event_id (Integer)
    • id of event to be associated with the event item

  • event_item (EventItem)
    • event item to be created

Returns:

  • (EventItem)


260
261
262
263
264
265
266
267
# File 'lib/constantcontact/services/event_spot_service.rb', line 260

def add_event_item(event_id, event_item)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event_items'), event_id)
  url = build_url(url)
  payload = event_item.to_json
  response = RestClient.post(url, payload, get_headers())
  Components::EventItem.create(JSON.parse(response.body))
end

.add_event_item_attribute(event_id, item_id, event_item_attribute) ⇒ EventItemAttribute

Create a new event item attribute for an event item

Parameters:

  • event_id (Integer)
    • id of event to be associated with the event item attribute

  • item_id (Integer)
    • id of event item to be associated with the event item attribute

  • event_item_attribute (EventItemAttribute)
    • event item attribute to be created

Returns:

  • (EventItemAttribute)


335
336
337
338
339
340
341
342
# File 'lib/constantcontact/services/event_spot_service.rb', line 335

def add_event_item_attribute(event_id, item_id, event_item_attribute)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event_item_attributes'), event_id, item_id)
  url = build_url(url)
  payload = event_item_attribute.to_json
  response = RestClient.post(url, payload, get_headers())
  Components::EventItemAttribute.create(JSON.parse(response.body))
end

.add_fee(event, fee) ⇒ EventFee

Create a new event fee

Parameters:

  • event (Integer)
    • Valid event id

  • fee (EventFee)
    • Event fee to be created

Returns:

  • (EventFee)


104
105
106
107
108
109
110
111
112
# File 'lib/constantcontact/services/event_spot_service.rb', line 104

def add_fee(event, fee)
  event_id = get_id_for(event)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event_fees'), event_id)
  url = build_url(url)
  payload = fee.to_json
  response = RestClient.post(url, payload, get_headers())
  Components::EventFee.create(JSON.parse(response.body))
end

.add_promocode(event_id, promocode) ⇒ Promocode

Create a new promocode for an event

Parameters:

  • event_id (Integer)
    • id of event to be associated with the promocode

  • promocode (Promocode)
    • promocode to be created

Returns:

  • (Promocode)


409
410
411
412
413
414
415
416
# File 'lib/constantcontact/services/event_spot_service.rb', line 409

def add_promocode(event_id, promocode)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event_promocodes'), event_id)
  url = build_url(url)
  payload = promocode.to_json
  response = RestClient.post(url, payload, get_headers())
  Components::Promocode.create(JSON.parse(response.body))
end

.cancel_event(event) ⇒ Event

Cancel a specific EventSpot event

Parameters:

  • event (Event)
    • Event to be updated

Returns:

  • (Event)


89
90
91
92
93
94
95
96
97
# File 'lib/constantcontact/services/event_spot_service.rb', line 89

def cancel_event(event)
  event_id = get_id_for(event)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event'), event_id)
  url = build_url(url)
  payload = [{ :op => "REPLACE", :path => "#/status", :value => "CANCELLED" }].to_json
  response = RestClient.patch(url, payload, get_headers())
  Components::Event.create(JSON.parse(response.body))
end

.delete_event_item(event_id, item_id) ⇒ Boolean

Delete a specific event item for an event

Parameters:

  • event_id (Integer)
    • id of event to delete an event item for

  • item_id (Integer)
    • id of event item to be deleted

Returns:

  • (Boolean)


274
275
276
277
278
279
280
# File 'lib/constantcontact/services/event_spot_service.rb', line 274

def delete_event_item(event_id, item_id)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event_item'), event_id, item_id)
  url = build_url(url)
  response = RestClient.delete(url, get_headers())
  response.code == 204
end

.delete_event_item_attribute(event_id, item_id, attribute_id) ⇒ Boolean

Delete a specific event item for an event

Parameters:

  • event_id (Integer)
    • id of event to delete an event item attribute for

  • item_id (Integer)
    • id of event item to delete an event item attribute for

  • attribute_id (Integer)
    • id of attribute to be deleted

Returns:

  • (Boolean)


350
351
352
353
354
355
356
# File 'lib/constantcontact/services/event_spot_service.rb', line 350

def delete_event_item_attribute(event_id, item_id, attribute_id)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event_item_attribute'), event_id, item_id, attribute_id)
  url = build_url(url)
  response = RestClient.delete(url, get_headers())
  response.code == 204
end

.delete_fee(event, fee) ⇒ Boolean

Delete an individual event fee

Parameters:

  • event (Integer)
    • Valid event id

  • fee (Integer)
    • Valid fee id

Returns:

  • (Boolean)


177
178
179
180
181
182
183
184
185
186
# File 'lib/constantcontact/services/event_spot_service.rb', line 177

def delete_fee(event, fee)
  event_id  = get_id_for(event)
  fee_id    = get_id_for(fee)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event_fee'), event_id, fee_id)
  url = build_url(url)

  response = RestClient.delete(url, get_headers())
  response.code == 204
end

.delete_promocode(event_id, promocode_id) ⇒ Boolean

Delete a specific promocode for an event

Parameters:

  • event_id (Integer)
    • id of event to delete a promocode for

  • promocode_id (Integer)
    • id of promocode to be deleted

Returns:

  • (Boolean)


423
424
425
426
427
428
429
# File 'lib/constantcontact/services/event_spot_service.rb', line 423

def delete_promocode(event_id, promocode_id)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event_promocode'), event_id, promocode_id)
  url = build_url(url)
  response = RestClient.delete(url, get_headers())
  response.code == 204
end

.get_event(event) ⇒ Event

Get event details for a specific event

Parameters:

  • event (Integer)
    • Valid event id

Returns:

  • (Event)


48
49
50
51
52
53
54
55
# File 'lib/constantcontact/services/event_spot_service.rb', line 48

def get_event(event)
  event_id = get_id_for(event)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event'), event_id)
  url = build_url(url)
  response = RestClient.get(url, get_headers())
  Components::Event.create(JSON.parse(response.body))
end

.get_event_item(event_id, item_id) ⇒ EventItem

Get an individual event item

Parameters:

  • event_id (Integer)
    • id of event to retrieve item for

  • item_id (Integer)
    • id of item to be retrieved

Returns:

  • (EventItem)


247
248
249
250
251
252
253
# File 'lib/constantcontact/services/event_spot_service.rb', line 247

def get_event_item(event_id, item_id)
  url = Util::Config.get('endpoints.base_url') + 
        sprintf(Util::Config.get('endpoints.event_item'), event_id, item_id)
  url = build_url(url)
  response = RestClient.get(url, get_headers())
  Components::EventItem.create(JSON.parse(response.body))
end

.get_event_item_attribute(event_id, item_id, attribute_id) ⇒ EventItemAttribute

Get an individual event item attribute

Parameters:

  • event_id (Integer)
    • id of event to retrieve item for

  • item_id (Integer)
    • id of item to retrieve attribute for

  • attribute_id (Integer)
    • id of attribute to be retrieved

Returns:

  • (EventItemAttribute)


321
322
323
324
325
326
327
# File 'lib/constantcontact/services/event_spot_service.rb', line 321

def get_event_item_attribute(event_id, item_id, attribute_id)
  url = Util::Config.get('endpoints.base_url') + 
        sprintf(Util::Config.get('endpoints.event_item_attribute'), event_id, item_id, attribute_id)
  url = build_url(url)
  response = RestClient.get(url, get_headers())
  Components::EventItemAttribute.create(JSON.parse(response.body))
end

.get_event_item_attributes(event_id, item_id) ⇒ Array<EventItemAttribute>

Get an array of attributes for an individual event item

Parameters:

  • event_id (Integer)
    • event id to retrieve item for

  • item_id (Integer)
    • event item id to retrieve attributes for

Returns:

  • (Array<EventItemAttribute>)


301
302
303
304
305
306
307
308
309
310
311
312
313
# File 'lib/constantcontact/services/event_spot_service.rb', line 301

def get_event_item_attributes(event_id, item_id)
  url = Util::Config.get('endpoints.base_url') + 
        sprintf(Util::Config.get('endpoints.event_item_attributes'), event_id, item_id)
  url = build_url(url)
  response = RestClient.get(url, get_headers())

  event_item_attributes = []
  JSON.parse(response.body).each do |event_item_attribute|
    event_item_attributes << Components::EventItemAttribute.create(event_item_attribute)
  end

  event_item_attributes
end

.get_event_items(event_id) ⇒ Array<EventItem>

Get an array of event items for an individual event

Parameters:

  • event_id (Integer)
    • event id to retrieve items for

Returns:

  • (Array<EventItem>)


228
229
230
231
232
233
234
235
236
237
238
239
240
# File 'lib/constantcontact/services/event_spot_service.rb', line 228

def get_event_items(event_id)
  url = Util::Config.get('endpoints.base_url') + 
        sprintf(Util::Config.get('endpoints.event_items'), event_id)
  url = build_url(url)
  response = RestClient.get(url, get_headers())

  event_items = []
  JSON.parse(response.body).each do |event_item|
    event_items << Components::EventItem.create(event_item)
  end

  event_items
end

.get_events(opts = {}) ⇒ ResultSet<Event>

Get a set of events

Parameters:

  • opts (Hash) (defaults to: {})

    query parameters to be appended to the request

Options Hash (opts):

  • status (String)

    email campaigns status of DRAFT, RUNNING, SENT, SCHEDULED.

  • modified_since (String)

    ISO-8601 date string to return campaigns modified since then.

  • limit (Integer)

    number of campaigns to return, 1 to 50.

Returns:

  • (ResultSet<Event>)


30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/constantcontact/services/event_spot_service.rb', line 30

def get_events(opts = {})
  url = Util::Config.get('endpoints.base_url') + Util::Config.get('endpoints.events')
  url = build_url(url, opts)

  response = RestClient.get(url, get_headers())
  body = JSON.parse(response.body)

  events = body['results'].collect do |event|
    Components::Event.create_summary(event)
  end

  Components::ResultSet.new(events, body['meta'])
end

.get_fee(event, fee) ⇒ EventFee

Get an individual event fee

Parameters:

  • event (Integer)
    • Valid event id

  • fee (Integer)
    • Valid fee id

Returns:

  • (EventFee)


137
138
139
140
141
142
143
144
145
146
# File 'lib/constantcontact/services/event_spot_service.rb', line 137

def get_fee(event, fee)
  event_id  = get_id_for(event)
  fee_id    = get_id_for(fee)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event_fee'), event_id, fee_id)
  url = build_url(url)

  response = RestClient.get(url, get_headers())
 fee = Components::EventFee.create(JSON.parse(response.body))
end

.get_fees(event) ⇒ Array<EventFee>

Get an array of event fees

Parameters:

  • event (Integer)
    • Valid event id

Returns:

  • (Array<EventFee>)


118
119
120
121
122
123
124
125
126
127
128
129
130
# File 'lib/constantcontact/services/event_spot_service.rb', line 118

def get_fees(event)
  event_id = get_id_for(event)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event_fees'), event_id)
  url = build_url(url)

  response = RestClient.get(url, get_headers())
  body = JSON.parse(response.body)
  
  fees = body.collect do |fee|
    Components::EventFee.create(fee)
  end
end

.get_promocode(event_id, promocode_id) ⇒ Promocode

Get an individual promocode

Parameters:

  • event_id (Integer)
    • id of event to retrieve item for

  • promocode_id (Integer)
    • id of item to be retrieved

Returns:

  • (Promocode)


396
397
398
399
400
401
402
# File 'lib/constantcontact/services/event_spot_service.rb', line 396

def get_promocode(event_id, promocode_id)
  url = Util::Config.get('endpoints.base_url') + 
        sprintf(Util::Config.get('endpoints.event_promocode'), event_id, promocode_id)
  url = build_url(url)
  response = RestClient.get(url, get_headers())
  Components::Promocode.create(JSON.parse(response.body))
end

.get_promocodes(event_id) ⇒ Array<Promocode>

Get an array of promocodes for an individual event

Parameters:

  • event_id (Integer)
    • event id to retrieve promocodes for

Returns:

  • (Array<Promocode>)


377
378
379
380
381
382
383
384
385
386
387
388
389
# File 'lib/constantcontact/services/event_spot_service.rb', line 377

def get_promocodes(event_id)
  url = Util::Config.get('endpoints.base_url') + 
        sprintf(Util::Config.get('endpoints.event_promocodes'), event_id)
  url = build_url(url)
  response = RestClient.get(url, get_headers())

  promocodes = []
  JSON.parse(response.body).each do |promocode|
    promocodes << Components::Promocode.create(promocode)
  end

  promocodes
end

.get_registrant(event, registrant) ⇒ Registrant

Get an individual event registant

Parameters:

  • event (Integer)
    • Valid event id

  • registrant (Integer)
    • Valid fee id

Returns:

  • (Registrant)


213
214
215
216
217
218
219
220
221
222
# File 'lib/constantcontact/services/event_spot_service.rb', line 213

def get_registrant(event, registrant)
  event_id      = get_id_for(event)
  registrant_id  = get_id_for(registrant)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event_registrant'), event_id, registrant_id)
  url = build_url(url)

  response = RestClient.get(url, get_headers())
  Components::Registrant.create(JSON.parse(response.body))
end

.get_registrants(event) ⇒ ResultSet<Registrant>

Get a set of event registrants

Parameters:

  • event (Integer)
    • Valid event id

Returns:

  • (ResultSet<Registrant>)


192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
# File 'lib/constantcontact/services/event_spot_service.rb', line 192

def get_registrants(event)
  event_id  = event.kind_of?(ConstantContact::Components::Event) ? event.id : event
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event_registrants'), event_id)
  url = build_url(url)

  response = RestClient.get(url, get_headers())
  body = JSON.parse(response.body)

  registrants = body['results'].collect do |registrant|
    Components::Registrant.create(registrant)
  end

  Components::ResultSet.new(registrants, body['meta'])
end

.publish_event(event) ⇒ Event

Publish a specific EventSpot event

Parameters:

  • event (Event)
    • Event to be updated

Returns:

  • (Event)


75
76
77
78
79
80
81
82
83
# File 'lib/constantcontact/services/event_spot_service.rb', line 75

def publish_event(event)
  event_id = get_id_for(event)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event'), event_id)
  url = build_url(url)
  payload = [{:op => "REPLACE", :path => "#/status", :value => "ACTIVE"}].to_json
  response = RestClient.patch(url, payload, get_headers())
  Components::Event.create(JSON.parse(response.body))
end

.update_event(event) ⇒ Event

Update a specific EventSpot event

Parameters:

  • event (Event)
    • Event to be updated

Returns:

  • (Event)


61
62
63
64
65
66
67
68
69
# File 'lib/constantcontact/services/event_spot_service.rb', line 61

def update_event(event)
  event_id = get_id_for(event)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event'), event_id)
  url = build_url(url)
  payload = event.to_json
  response = RestClient.put(url, payload, get_headers())
  Components::Event.create(JSON.parse(response.body))
end

.update_event_item(event_id, event_item) ⇒ EventItem

Update a specific event item for an event

Parameters:

  • event_id (Integer)
    • id of event associated with the event item

  • event_item (EventItem)
    • event item to be updated

Returns:

  • (EventItem)


287
288
289
290
291
292
293
294
# File 'lib/constantcontact/services/event_spot_service.rb', line 287

def update_event_item(event_id, event_item)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event_item'), event_id, event_item.id)
  url = build_url(url)
  payload = event_item.to_json
  response = RestClient.put(url, payload, get_headers())
  Components::EventItem.create(JSON.parse(response.body))
end

.update_event_item_attribute(event_id, item_id, event_item_attribute) ⇒ EventItemAttribute

Update a specific event item attribute for an event item

Parameters:

  • event_id (Integer)
    • id of event associated with the event item

  • item_id (Integer)
    • id of event item associated with the event item attribute

  • event_item_attribute (EventItemAttribute)
    • event item to be updated

Returns:

  • (EventItemAttribute)


364
365
366
367
368
369
370
371
# File 'lib/constantcontact/services/event_spot_service.rb', line 364

def update_event_item_attribute(event_id, item_id, event_item_attribute)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event_item'), event_id, item_id, event_item_attribute.id)
  url = build_url(url)
  payload = event_item_attribute.to_json
  response = RestClient.put(url, payload, get_headers())
  Components::EventItemAttribute.create(JSON.parse(response.body))
end

.update_fee(event, fee) ⇒ EventFee

Update an individual event fee

Parameters:

  • event (Integer)
    • Valid event id

  • fee (Integer)
    • Valid fee id

Returns:

  • (EventFee)


153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# File 'lib/constantcontact/services/event_spot_service.rb', line 153

def update_fee(event, fee)
  event_id  = get_id_for(event)
  if fee.kind_of?(ConstantContact::Components::EventFee)
    fee_id = fee.id
  elsif fee.kind_of?(Hash)
    fee_id = fee['id']
  else
    raise ArgumentError.new "Fee must be a Hash or ConstantContact::Components::Fee"
  end

  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event_fee'), event_id, fee_id)
  url = build_url(url)
  payload = fee.to_json

  response = RestClient.put(url, payload, get_headers())
 fee = Components::EventFee.create(JSON.parse(response.body))
end

.update_promocode(event_id, promocode) ⇒ Promocode

Update a specific promocode for an event

Parameters:

  • event_id (Integer)
    • id of event associated with the promocode

  • promocode (Promocode)
    • promocode to be updated

Returns:

  • (Promocode)


436
437
438
439
440
441
442
443
# File 'lib/constantcontact/services/event_spot_service.rb', line 436

def update_promocode(event_id, promocode)
  url = Util::Config.get('endpoints.base_url') +
        sprintf(Util::Config.get('endpoints.event_promocode'), event_id, promocode.id)
  url = build_url(url)
  payload = promocode.to_json
  response = RestClient.put(url, payload, get_headers())
  Components::Promocode.create(JSON.parse(response.body))
end