commit b225051fc17d709ce02260eb19fd9d223e7464b1 Author: Will Bradley Date: Fri Mar 8 03:23:10 2013 -0700 Initial commit diff --git a/guestlist-api.rb b/guestlist-api.rb new file mode 100644 index 0000000..08623e9 --- /dev/null +++ b/guestlist-api.rb @@ -0,0 +1,85 @@ +require 'net/http' +require 'uri' +require 'json' + +username = 'user@example.com' +password = 'mypassword' + +url = 'https://guestlistapp.com/api/v0.1/events/' +#url = 'https://guestlistapp.com/api/v0.1/events/?page=2' +#url = 'https://guestlistapp.com/api/v0.1/events/12345/orders' +#url = "https://guestlistapp.com/api/v0.1/events/12345/orders/54321" + +def query(url) +uri = URI(url) + +req = Net::HTTP::Get.new(url) +req.basic_auth username, password + +res = Net::HTTP.start(uri.hostname, uri.port, :use_ssl => true) {|http| + http.request(req) +} + +JSON.parse(res.body) +end + +# get events +results = [] +results << query(url) + +#puts results.first["total_pages"].inspect + +if results.first["total_pages"] > 1 then + results.first["total_pages"].times {|i| + results << query(url+"?page="+(i+1).to_s) + } +end + +#puts results.inspect + +events = [] +results.each do |r| + events += r["events"] +end + +#puts events.inspect + +puts "We have had #{events.count} events." +puts "The last one is #{events.last.inspect}." + + +event_detail_results = [] + +events.last(10).each do |e| + event_detail_results << query(e) +end + +event_detail_results.last(10).each do |e| + published = "live" + if e["published_at"].nil? then + published = "NOT live" + end + + puts "(#{e["start"]}) #{e["name"]} is #{published} and has #{e["orders"].count} out of #{e["max_tickets"]} sold." + + e["orders"].each do |o| + order_result = query(o) + + if !order_result["first_name"].nil? && !order_result["last_name"].nil? then + puts " ORDER: "+order_result["first_name"]+" "+order_result["last_name"] + else + puts " ORDER: nil" + end + order_result["tickets"].each do |t| + ticket_result = query(t) + if !ticket_result["first_name"].nil? && !ticket_result["last_name"].nil? then + puts " TICKET: "+ticket_result["first_name"]+" "+ticket_result["last_name"] + else + puts " TICKET: nil" + end + end + + end + +end +