lib/sourcescrub/client.rb in sourcescrub-0.0.5 vs lib/sourcescrub/client.rb in sourcescrub-0.0.6
- old
+ new
@@ -1,9 +1,10 @@
# frozen_string_literal: true
require_relative './utils/request'
require_relative './apis/companies'
+require_relative './apis/sources'
# Root Sourcescrub
module Sourcescrub
# Client
class Client
@@ -22,22 +23,68 @@
api.sobject.parse_response get(api.request_url, api.args)
end
def company_cards(domain, args = {})
- api = companies_api(domain, args.merge(model_type: card_mappings[args[:card_id]]))
+ api = companies_api(domain, args.merge(model_type: company_card_mappings[args[:card_id]]))
- Models::CompanyItems.new.parse_response_items(domain, api.kclass_name, get(api.request_url, api.args))
+ Models::CompanyItems.new.parse_response_items(
+ domain,
+ api.kclass_name,
+ get(api.request_url, api.args)
+ )
end
+ # The max limit range is 0 - 100
+ def all_sources(args = { sourceStatus: 'None', limit: 100, offset: 0 })
+ api = source_api('sources', args)
+
+ Models::SourceItems.new.parse_response_items(
+ api.kclass_name,
+ get(api.request_url, api.args)
+ )
+ end
+
+ def sources(source_id, args = {})
+ api = source_api(source_id, args)
+
+ api.sobject.parse_response get(api.request_url, api.args)
+ end
+
+ def source_companies(source_id, args = {})
+ api = source_companies_api(source_id, args)
+
+ Models::CompanyItems.new.parse_response_items(
+ source_id,
+ api.kclass_name,
+ get(api.companies_url, api.args)
+ )
+ end
+
private
def companies_api(domain, args)
- @companies_api || Apis::Companies.new(domain,
- { model_type: 'company' }.merge(args))
+ @companies_api ||= Apis::Companies.new(
+ domain,
+ { model_type: 'company' }.merge(args)
+ )
end
- def card_mappings
+ def source_api(source_id, args)
+ @source_api ||= Apis::Sources.new(
+ source_id,
+ { model_type: 'source' }.merge(args)
+ )
+ end
+
+ def source_companies_api(source_id, args)
+ @source_companies_api ||= Apis::Sources.new(
+ source_id,
+ { model_type: 'company' }.merge(args)
+ )
+ end
+
+ def company_card_mappings
{
'sources' => 'source',
'people' => 'person',
'financials' => 'financial',
'investments' => 'investment',