class Eventify::Provider::Piletilevi

Constants

URL

Public Class Methods

fetch() click to toggle source
# File lib/eventify/provider/piletilevi.rb, line 9
def fetch
  first_page_json = fetch_page(1)
  list_info = first_page_json["responseData"]["listInfo"]
  total_pages = list_info["total"] / list_info["pageSize"] + 1
  result = events(first_page_json) + (2..total_pages).flat_map { |page_number| events(fetch_page(page_number)) }
  result
end

Private Class Methods

events(json) click to toggle source
# File lib/eventify/provider/piletilevi.rb, line 23
def events(json)
  entries = json["responseData"]["event"]
  entries.map do |entry|
    link = URI.parse(entry["link"])
    link.scheme = "https" unless link.scheme
    new id: entry["id"], title: entry["title"], link: link.to_s, date: Time.at(entry["startTime"]["stamp"])
  end
end
fetch_page(number) click to toggle source
# File lib/eventify/provider/piletilevi.rb, line 19
def fetch_page(number)
  JSON.parse(open("#{URL}/page:#{number}").read)
end