module Xcal module Parktronic module Routes module Events # Fetches event with specific ID # # ==== Parameters # * +id+ event ID # # ==== Examples # api.get_event(1) # api.event(1) def get_event(id) response = http.get("/#{api_version}/events/#{id}?access_token=#{access_token}") generic_response = Xcal::Parktronic::GenericResponse.new(response.body) response.code == '200' ? Xcal::Parktronic::GenericResponse.new(generic_response.event, self) : generic_response # TODO Add caching end alias :event :get_event # Update event with specific ID # # ==== Parameters # * +id+ event ID # * +params+ alarm params # # ==== Examples # api.update_event(2, subject: 'new subject') # api.update_event(5, subject: 'new subject', description: 'new description') def update_event(id, params) begin request = Net::HTTP::Patch.new("/#{api_version}/events/#{id}", 'Content-Type' => 'application/json') rescue # ruby 1.9.2 request = Net::HTTP::Put.new("/#{api_version}/events/#{id}", 'Content-Type' => 'application/json') end request.body = { access_token: access_token, event: params }.to_json response = http.start { |net| net.request(request) } Xcal::Parktronic::GenericResponse.new(response.body) end # Find all Event Tags # # ==== Parameters # * +id+ event ID # # ==== Examples # api.get_event_tags(2) # api.event_tags(2) def get_event_tags(id) response = http.get("/#{api_version}/events/#{id}/tags?#{URI.encode_www_form(access_token: access_token)}") generic_response = Xcal::Parktronic::GenericResponse.new(response.body, self) response.code == '200' && generic_response.has_key?(:tags) ? generic_response.tags.map(&:tag) : generic_response end alias :event_tags :get_event_tags end end end end