class Skr::Jobs::FreshBooks::Base
Constants
- STEPS
Attributes
fb[R]
Public Instance Methods
fetch_each(reqtype)
click to toggle source
# File lib/skr/jobs/fresh_books/base.rb, line 21 def fetch_each(reqtype) Enumerator.new { | enum | page = last_page = 1 while page <= last_page resp = fb.__send__(reqtype).list(per_page: 25, page: page) data = resp_data_for_req_type(reqtype, resp) last_page = data['pages'].to_i page += 1 Array.wrap(data[reqtype]).each{|record| enum.yield record } end } end
process_each_type(account, token) { |output, index| ... }
click to toggle source
# File lib/skr/jobs/fresh_books/base.rb, line 37 def process_each_type(account, token) @fb = ::FreshBooks::Client.new("#{account}.freshbooks.com", token) output = {} @ignored_ids ||= {} STEPS.each_with_index do | step, index | type = step.singularize output[step] = fetch_each( type ).map { | record | send("process_#{type}", record) }.reject(&:nil?) yield output, index end output end
resp_data_for_req_type(type, resp)
click to toggle source
# File lib/skr/jobs/fresh_books/base.rb, line 11 def resp_data_for_req_type(type, resp) if type == 'staff' data = resp['staff_members'] data[type]=data.delete('member') data else resp[type.pluralize] end end