Class: Planvine::PlanvineAPI

Inherits:
Object
  • Object
show all
Includes:
HTTParty
Defined in:
lib/planvine/planvine_api.rb

Instance Method Summary collapse

Constructor Details

#initialize(api_key) ⇒ PlanvineAPI

Returns a new instance of PlanvineAPI.



7
8
9
# File 'lib/planvine/planvine_api.rb', line 7

def initialize(api_key)
  @api_key = api_key
end

Instance Method Details

#categoriesObject



17
18
19
20
21
22
# File 'lib/planvine/planvine_api.rb', line 17

def categories
  categories = self.class.get("/category?api_key=#{@api_key}")
  categories["data"].map do |category|
    CategoriesBuilder.build(category, self)
  end
end

#category_events(id) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/planvine/planvine_api.rb', line 24

def category_events(id)
  begin
    number_of_pages = self.class.get("/category/#{id}/events?api_key=#{@api_key}")["_metadata"]["total_pages"]
  rescue
    number_of_pages = 1
  end
  events = [self.class.get("/category/#{id}/events?api_key=#{@api_key}")["data"]]
  return events if number_of_pages == 1

  self.class.get("/category/#{id}/events?api_key=#{@api_key}")["_metadata"]["total_pages"].times do |i|
    next if (i+1) == 1
    page = self.class.get("/category/#{id}/events?api_key=#{@api_key}&page=#{i + 1}")["data"]

    events << page
  end
  events
end

#event(id) ⇒ Object



42
43
44
# File 'lib/planvine/planvine_api.rb', line 42

def event(id)
  self.class.get("/event/#{id}?api_key=#{@api_key}")["data"]
end

#eventsObject



11
12
13
14
15
# File 'lib/planvine/planvine_api.rb', line 11

def events
  self.class.get("/event?api_key=#{@api_key}")["data"].map do |event|
    EventsBuilder.build(event)
  end
end

#venue(id) ⇒ Object



46
47
48
# File 'lib/planvine/planvine_api.rb', line 46

def venue(id)
  Venue.new(self.class.get("/venue/#{id}?api_key=#{@api_key}")["data"])
end