class Blurb::RequestCollection
Public Class Methods
new(headers:, base_url:, bulk_api_limit: 100)
click to toggle source
# File lib/blurb/request_collection.rb, line 7 def initialize(headers:, base_url:, bulk_api_limit: 100) @base_url = base_url @headers = headers @api_limit = bulk_api_limit end
Public Instance Methods
create(**create_params)
click to toggle source
# File lib/blurb/request_collection.rb, line 42 def create(**create_params) create_bulk([create_params]).first end
create_bulk(create_array)
click to toggle source
# File lib/blurb/request_collection.rb, line 46 def create_bulk(create_array) execute_bulk_request( request_type: :post, payload: create_array, ) end
delete(resource_id)
click to toggle source
# File lib/blurb/request_collection.rb, line 64 def delete(resource_id) execute_request( api_path: "/#{resource_id}", request_type: :delete ) end
list(url_params=nil)
click to toggle source
# File lib/blurb/request_collection.rb, line 13 def list(url_params=nil) execute_request( request_type: :get, url_params: url_params ) end
list_extended(url_params=nil)
click to toggle source
# File lib/blurb/request_collection.rb, line 20 def list_extended(url_params=nil) execute_request( api_path: "/extended", request_type: :get, url_params: url_params ) end
retrieve(resource_id)
click to toggle source
# File lib/blurb/request_collection.rb, line 28 def retrieve(resource_id) execute_request( api_path: "/#{resource_id}", request_type: :get ) end
retrieve_extended(resource_id)
click to toggle source
# File lib/blurb/request_collection.rb, line 35 def retrieve_extended(resource_id) execute_request( api_path: "/extended/#{resource_id}", request_type: :get ) end
update(**update_params)
click to toggle source
# File lib/blurb/request_collection.rb, line 53 def update(**update_params) update_bulk([update_params]).first end
update_bulk(update_array)
click to toggle source
# File lib/blurb/request_collection.rb, line 57 def update_bulk(update_array) execute_bulk_request( request_type: :put, payload: update_array, ) end
Private Instance Methods
execute_bulk_request(**execute_request_params)
click to toggle source
Split up bulk requests to match the api limit
# File lib/blurb/request_collection.rb, line 89 def execute_bulk_request(**execute_request_params) results = [] payloads = execute_request_params[:payload].each_slice(@api_limit).to_a payloads.each do |p| execute_request_params[:payload] = p results << execute_request(execute_request_params) end results.flatten end
execute_request(api_path: "", request_type:, payload: nil, url_params: nil)
click to toggle source
# File lib/blurb/request_collection.rb, line 73 def execute_request(api_path: "", request_type:, payload: nil, url_params: nil) url = "#{@base_url}#{api_path}" url.sub!('/sd/', '/') if request_type == :get && url.include?('sd/reports') && url_params.nil? request = Request.new( url: url, url_params: url_params, request_type: request_type, payload: payload, headers: @headers ) request.make_request end