lib/constantcontact/services/event_spot_service.rb in constantcontact-2.2.1 vs lib/constantcontact/services/event_spot_service.rb in constantcontact-3.0.0

- old
+ new

@@ -5,444 +5,442 @@ # Copyright (c) 2013 Constant Contact. All rights reserved. module ConstantContact module Services class EventSpotService < BaseService - class << self - # Create a new event - # @param [Event] event - Event to be created - # @return [Event] - 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 + # Create a new event + # @param [Event] event - Event to be created + # @return [Event] + 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 - # Get a set of events - # @param [Hash] opts query parameters to be appended to the request - # @option opts [String] status email campaigns status of DRAFT, RUNNING, SENT, SCHEDULED. - # @option opts [String] modified_since ISO-8601 date string to return campaigns modified since then. - # @option opts [Integer] limit number of campaigns to return, 1 to 50. - # @return [ResultSet<Event>] - def get_events(opts = {}) - url = Util::Config.get('endpoints.base_url') + Util::Config.get('endpoints.events') - url = build_url(url, opts) + # Get a set of events + # @param [Hash] opts query parameters to be appended to the request + # @option opts [String] status email campaigns status of DRAFT, RUNNING, SENT, SCHEDULED. + # @option opts [String] modified_since ISO-8601 date string to return campaigns modified since then. + # @option opts [Integer] limit number of campaigns to return, 1 to 50. + # @return [ResultSet<Event>] + 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) + 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']) + events = body['results'].collect do |event| + Components::Event.create_summary(event) end + Components::ResultSet.new(events, body['meta']) + end - # Get event details for a specific event - # @param [Integer] event - Valid event id - # @return [Event] - 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 details for a specific event + # @param [Integer] event - Valid event id + # @return [Event] + 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 - # Update a specific EventSpot event - # @param [Event] event - Event to be updated - # @return [Event] - 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 a specific EventSpot event + # @param [Event] event - Event to be updated + # @return [Event] + 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 - # Publish a specific EventSpot event - # @param [Event] event - Event to be updated - # @return [Event] - 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 + # Publish a specific EventSpot event + # @param [Event] event - Event to be updated + # @return [Event] + 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 - # Cancel a specific EventSpot event - # @param [Event] event - Event to be updated - # @return [Event] - 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 + # Cancel a specific EventSpot event + # @param [Event] event - Event to be updated + # @return [Event] + 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 - # Create a new event fee - # @param [Integer] event - Valid event id - # @param [EventFee] fee - Event fee to be created - # @return [EventFee] - 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 + # Create a new event fee + # @param [Integer] event - Valid event id + # @param [EventFee] fee - Event fee to be created + # @return [EventFee] + 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 - # Get an array of event fees - # @param [Integer] event - Valid event id - # @return [Array<EventFee>] - 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 an array of event fees + # @param [Integer] event - Valid event id + # @return [Array<EventFee>] + 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) - - # Get an individual event fee - # @param [Integer] event - Valid event id - # @param [Integer] fee - Valid fee id - # @return [EventFee] - 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)) + response = RestClient.get(url, get_headers()) + body = JSON.parse(response.body) + + fees = body.collect do |fee| + Components::EventFee.create(fee) end + end - # Update an individual event fee - # @param [Integer] event - Valid event id - # @param [Integer] fee - Valid fee id - # @return [EventFee] - 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 + # Get an individual event fee + # @param [Integer] event - Valid event id + # @param [Integer] fee - Valid fee id + # @return [EventFee] + 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) - 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.get(url, get_headers()) + fee = Components::EventFee.create(JSON.parse(response.body)) + end - response = RestClient.put(url, payload, get_headers()) - fee = Components::EventFee.create(JSON.parse(response.body)) + + # Update an individual event fee + # @param [Integer] event - Valid event id + # @param [Integer] fee - Valid fee id + # @return [EventFee] + 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 - # Delete an individual event fee - # @param [Integer] event - Valid event id - # @param [Integer] fee - Valid fee id - # @return [Boolean] - 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.put(url, payload, get_headers()) + fee = Components::EventFee.create(JSON.parse(response.body)) + end - response = RestClient.delete(url, get_headers()) - response.code == 204 - end + # Delete an individual event fee + # @param [Integer] event - Valid event id + # @param [Integer] fee - Valid fee id + # @return [Boolean] + 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) - # Get a set of event registrants - # @param [Integer] event - Valid event id - # @return [ResultSet<Registrant>] - 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.delete(url, get_headers()) + response.code == 204 + end - response = RestClient.get(url, get_headers()) - body = JSON.parse(response.body) - registrants = body['results'].collect do |registrant| - Components::Registrant.create(registrant) - end + # Get a set of event registrants + # @param [Integer] event - Valid event id + # @return [ResultSet<Registrant>] + 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) - Components::ResultSet.new(registrants, body['meta']) + 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 - # Get an individual event registant - # @param [Integer] event - Valid event id - # @param [Integer] registrant - Valid fee id - # @return [Registrant] - 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 an individual event registant + # @param [Integer] event - Valid event id + # @param [Integer] registrant - Valid fee id + # @return [Registrant] + 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 an array of event items for an individual event - # @param [Integer] event_id - event id to retrieve items for - # @return [Array<EventItem>] - 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 + # Get an array of event items for an individual event + # @param [Integer] event_id - event id to retrieve items for + # @return [Array<EventItem>] + 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 + event_items = [] + JSON.parse(response.body).each do |event_item| + event_items << Components::EventItem.create(event_item) end + event_items + end - # Get an individual event item - # @param [Integer] event_id - id of event to retrieve item for - # @param [Integer] item_id - id of item to be retrieved - # @return [EventItem] - 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 an individual event item + # @param [Integer] event_id - id of event to retrieve item for + # @param [Integer] item_id - id of item to be retrieved + # @return [EventItem] + 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 - # Create a new event item for an event - # @param [Integer] event_id - id of event to be associated with the event item - # @param [EventItem] event_item - event item to be created - # @return [EventItem] - 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 + # Create a new event item for an event + # @param [Integer] event_id - id of event to be associated with the event item + # @param [EventItem] event_item - event item to be created + # @return [EventItem] + 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 - # Delete a specific event item for an event - # @param [Integer] event_id - id of event to delete an event item for - # @param [Integer] item_id - id of event item to be deleted - # @return [Boolean] - 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 a specific event item for an event + # @param [Integer] event_id - id of event to delete an event item for + # @param [Integer] item_id - id of event item to be deleted + # @return [Boolean] + 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 - # Update a specific event item for an event - # @param [Integer] event_id - id of event associated with the event item - # @param [EventItem] event_item - event item to be updated - # @return [EventItem] - 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 a specific event item for an event + # @param [Integer] event_id - id of event associated with the event item + # @param [EventItem] event_item - event item to be updated + # @return [EventItem] + 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 - # Get an array of attributes for an individual event item - # @param [Integer] event_id - event id to retrieve item for - # @param [Integer] item_id - event item id to retrieve attributes for - # @return [Array<EventItemAttribute>] - 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 + # Get an array of attributes for an individual event item + # @param [Integer] event_id - event id to retrieve item for + # @param [Integer] item_id - event item id to retrieve attributes for + # @return [Array<EventItemAttribute>] + 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 + 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 an individual event item attribute - # @param [Integer] event_id - id of event to retrieve item for - # @param [Integer] item_id - id of item to retrieve attribute for - # @param [Integer] attribute_id - id of attribute to be retrieved - # @return [EventItemAttribute] - 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 an individual event item attribute + # @param [Integer] event_id - id of event to retrieve item for + # @param [Integer] item_id - id of item to retrieve attribute for + # @param [Integer] attribute_id - id of attribute to be retrieved + # @return [EventItemAttribute] + 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 - # Create a new event item attribute for an event item - # @param [Integer] event_id - id of event to be associated with the event item attribute - # @param [Integer] item_id - id of event item to be associated with the event item attribute - # @param [EventItemAttribute] event_item_attribute - event item attribute to be created - # @return [EventItemAttribute] - 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 + # Create a new event item attribute for an event item + # @param [Integer] event_id - id of event to be associated with the event item attribute + # @param [Integer] item_id - id of event item to be associated with the event item attribute + # @param [EventItemAttribute] event_item_attribute - event item attribute to be created + # @return [EventItemAttribute] + 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 - # Delete a specific event item for an event - # @param [Integer] event_id - id of event to delete an event item attribute for - # @param [Integer] item_id - id of event item to delete an event item attribute for - # @param [Integer] attribute_id - id of attribute to be deleted - # @return [Boolean] - 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 a specific event item for an event + # @param [Integer] event_id - id of event to delete an event item attribute for + # @param [Integer] item_id - id of event item to delete an event item attribute for + # @param [Integer] attribute_id - id of attribute to be deleted + # @return [Boolean] + 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 - # Update a specific event item attribute for an event item - # @param [Integer] event_id - id of event associated with the event item - # @param [Integer] item_id - id of event item associated with the event item attribute - # @param [EventItemAttribute] event_item_attribute - event item to be updated - # @return [EventItemAttribute] - 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 a specific event item attribute for an event item + # @param [Integer] event_id - id of event associated with the event item + # @param [Integer] item_id - id of event item associated with the event item attribute + # @param [EventItemAttribute] event_item_attribute - event item to be updated + # @return [EventItemAttribute] + 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 - # Get an array of promocodes for an individual event - # @param [Integer] event_id - event id to retrieve promocodes for - # @return [Array<Promocode>] - 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 + # Get an array of promocodes for an individual event + # @param [Integer] event_id - event id to retrieve promocodes for + # @return [Array<Promocode>] + 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 + promocodes = [] + JSON.parse(response.body).each do |promocode| + promocodes << Components::Promocode.create(promocode) end + promocodes + end - # Get an individual promocode - # @param [Integer] event_id - id of event to retrieve item for - # @param [Integer] promocode_id - id of item to be retrieved - # @return [Promocode] - 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 an individual promocode + # @param [Integer] event_id - id of event to retrieve item for + # @param [Integer] promocode_id - id of item to be retrieved + # @return [Promocode] + 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 - # Create a new promocode for an event - # @param [Integer] event_id - id of event to be associated with the promocode - # @param [Promocode] promocode - promocode to be created - # @return [Promocode] - 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 + # Create a new promocode for an event + # @param [Integer] event_id - id of event to be associated with the promocode + # @param [Promocode] promocode - promocode to be created + # @return [Promocode] + 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 - # Delete a specific promocode for an event - # @param [Integer] event_id - id of event to delete a promocode for - # @param [Integer] promocode_id - id of promocode to be deleted - # @return [Boolean] - 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 + # Delete a specific promocode for an event + # @param [Integer] event_id - id of event to delete a promocode for + # @param [Integer] promocode_id - id of promocode to be deleted + # @return [Boolean] + 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 - # Update a specific promocode for an event - # @param [Integer] event_id - id of event associated with the promocode - # @param [Promocode] promocode - promocode to be updated - # @return [Promocode] - 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 + # Update a specific promocode for an event + # @param [Integer] event_id - id of event associated with the promocode + # @param [Promocode] promocode - promocode to be updated + # @return [Promocode] + 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 + end end end \ No newline at end of file