class Makeleaps::Request::Generic
Attributes
handler[R]
url_manager[R]
Public Class Methods
new(access_token)
click to toggle source
Calls superclass method
Makeleaps::Request::Base::new
# File lib/makeleaps/request/generic.rb, line 10 def initialize(access_token) super() do |conn| conn.authorization :Bearer, access_token end @handler = Makeleaps::Request::RequestHandler.new(connection) @url_manager = Makeleaps::Request::URLManager.new end
Public Instance Methods
delete(resource_or_url, mid=nil, &block)
click to toggle source
# File lib/makeleaps/request/generic.rb, line 81 def delete(resource_or_url, mid=nil, &block) handler.delete url_manager.build_url_for(resource_or_url, mid), &block end
each_page(start_page, *args, params: nil, max_pages: nil, &block)
click to toggle source
set max_pages to change the maximum number of retrievable pages WARNING: this might invoke too many API accesses.
# File lib/makeleaps/request/generic.rb, line 32 def each_page(start_page, *args, params: nil, max_pages: nil, &block) next_url = start_page max_pages = max_pages || 100 # TODO: let default value be customizeable using config max_pages.times do response = get(next_url, *args) { |req| req.params.merge!(params) unless params.nil? } block.call(response) next_url = response.next break unless next_url sleep 0.1 # TODO: throttling parameter can be adjusted individually end end
each_resource(start_page, *args, params: nil, max_pages: nil, &block)
click to toggle source
set max_pages to change the maximum number of retrievable pages WARNING: this might invoke too many API accesses.
# File lib/makeleaps/request/generic.rb, line 49 def each_resource(start_page, *args, params: nil, max_pages: nil, &block) each_page(start_page, *args, params: params, max_pages: max_pages) do |page| page.each_resource do |resource| block.call(resource) end end end
find_partner_by(name: )
click to toggle source
# File lib/makeleaps/request/generic.rb, line 25 def find_partner_by(name: ) partners = get(:partner) partners.find_resource { |partner| partner['name'] == name } end
find_resource(start_page, *args, params: nil, max_pages: nil, &block)
click to toggle source
# File lib/makeleaps/request/generic.rb, line 57 def find_resource(start_page, *args, params: nil, max_pages: nil, &block) each_page(start_page, params: params, max_pages: max_pages) do |page| resource = page.find_resource(*args, &block) return resource if resource end nil end
get(resource_or_url, mid=nil, &block)
click to toggle source
# File lib/makeleaps/request/generic.rb, line 65 def get(resource_or_url, mid=nil, &block) handler.get url_manager.build_url_for(resource_or_url, mid), &block end
options(resource_or_url, mid=nil, &block)
click to toggle source
# File lib/makeleaps/request/generic.rb, line 85 def options(resource_or_url, mid=nil, &block) handler.options url_manager.build_url_for(resource_or_url, mid), &block end
patch(resource_or_url, mid=nil, &block)
click to toggle source
# File lib/makeleaps/request/generic.rb, line 77 def patch(resource_or_url, mid=nil, &block) handler.patch url_manager.build_url_for(resource_or_url, mid), &block end
post(resource_or_url, mid=nil, &block)
click to toggle source
# File lib/makeleaps/request/generic.rb, line 69 def post(resource_or_url, mid=nil, &block) handler.post url_manager.build_url_for(resource_or_url, mid), &block end
put(resource_or_url, mid=nil, &block)
click to toggle source
# File lib/makeleaps/request/generic.rb, line 73 def put(resource_or_url, mid=nil, &block) handler.put url_manager.build_url_for(resource_or_url, mid), &block end
set_partner!(name: )
click to toggle source
# File lib/makeleaps/request/generic.rb, line 18 def set_partner!(name: ) url = find_partner_by(name: name)['url'] partner_mid = url.split('/').last url_manager.set_partner!(partner_mid) self end