class Patreon::API
Public Class Methods
new(access_token)
click to toggle source
# File lib/patreon/api.rb, line 3 def initialize(access_token) @access_token = access_token end
Public Instance Methods
fetch_campaign(opts = {})
click to toggle source
# File lib/patreon/api.rb, line 11 def fetch_campaign(opts = {}) get_parse_json(Utils::JSONAPI::URLUtil.build_url('current_user/campaigns', opts[:includes], opts[:fields])) end
fetch_campaign_and_patrons(opts = {})
click to toggle source
# File lib/patreon/api.rb, line 15 def fetch_campaign_and_patrons(opts = {}) opts[:includes] = opts[:includes] ? Array(opts[:includes]) : [] opts[:includes].concat(Schemas::Campaign.default_relationships + [Schemas::Campaign::Relationships::PLEDGES]) fetch_campaign(opts) end
fetch_page_of_pledges(campaign_id, opts = {})
click to toggle source
# File lib/patreon/api.rb, line 21 def fetch_page_of_pledges(campaign_id, opts = {}) params = {} params["page[count]"] = opts[:count] || 10 params["page[cursor]"] = opts[:cursor] if opts[:cursor] url = "campaigns/#{campaign_id}/pledges?#{Rack::Utils.build_query(params)}" get_parse_json(Patreon::Utils::JSONAPI::URLUtil.build_url(url, opts[:includes], opts[:fields])) end
fetch_user(opts = {})
click to toggle source
# File lib/patreon/api.rb, line 7 def fetch_user(opts = {}) get_parse_json(Utils::JSONAPI::URLUtil.build_url('current_user', opts[:includes], opts[:fields])) end
Private Instance Methods
get_json(suffix)
click to toggle source
# File lib/patreon/api.rb, line 36 def get_json(suffix) http = Net::HTTP.new("www.patreon.com", 443) http.use_ssl = true # TODO: It would be nice if we verified our certs http.verify_mode = OpenSSL::SSL::VERIFY_NONE #SECURITY HOLE http.set_debug_output($stdout) if ENV['DEBUG'] req = Net::HTTP::Get.new("/api/oauth2/api/#{suffix}") req['Authorization'] = "Bearer #{@access_token}" req['User-Agent'] = Utils::Client.user_agent_string http.request(req).body end
get_parse_json(suffix)
click to toggle source
# File lib/patreon/api.rb, line 31 def get_parse_json(suffix) json = get_json(suffix) parse_json(json) end
parse_json(json)
click to toggle source
# File lib/patreon/api.rb, line 52 def parse_json(json) JSON::Api::Vanilla.parse(json) end