Class: Cb::Clients::Recommendation
- Defined in:
- lib/cb/clients/recommendation.rb
Class Method Summary collapse
- .create_jobs(json_hash, type) ⇒ Object
- .for_company(company_did) ⇒ Object
- .for_job(*args) ⇒ Object
- .for_user(*args) ⇒ Object
- .normalize_args(args) ⇒ Object
- .set_hash_defaults(hash) ⇒ Object
Methods inherited from Base
Class Method Details
.create_jobs(json_hash, type) ⇒ Object
99 100 101 102 103 104 105 106 107 |
# File 'lib/cb/clients/recommendation.rb', line 99 def self.create_jobs(json_hash, type) jobs = [] [json_hash["ResponseRecommend#{type}"]['RecommendJobResults']['RecommendJobResult']].flatten.each do |api_job| jobs << Models::Job.new(api_job) end jobs end |
.for_company(company_did) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/cb/clients/recommendation.rb', line 63 def self.for_company(company_did) json_hash = cb_client.cb_get(Cb.configuration.uri_recommendation_for_company, query: { CompanyDID: company_did }) jobs = [] if json_hash api_jobs = json_hash.fetch('Results', {}).fetch('JobRecommendation', {}).fetch('Jobs', {}) if api_jobs company_jobs = [api_jobs.fetch('CompanyJob', [])].flatten.compact company_jobs.each do |cur_job| jobs << Models::Job.new(cur_job) end end cb_client.append_api_responses(jobs, json_hash.fetch('Results', {}).fetch('JobRecommendation', {})) cb_client.append_api_responses(jobs, json_hash.fetch('Results', {})) cb_client.append_api_responses(jobs, json_hash) end end |
.for_job(*args) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/cb/clients/recommendation.rb', line 16 def self.for_job(*args) hash = normalize_args(args) hash = set_hash_defaults(hash) json_hash = cb_client.cb_get(Cb.configuration.uri_recommendation_for_job, query: hash) jobs = [] if json_hash.key?('ResponseRecommendJob') if json_hash['ResponseRecommendJob'].key?('RecommendJobResults') && !json_hash['ResponseRecommendJob']['RecommendJobResults'].nil? jobs = create_jobs json_hash, 'Job' cb_client.append_api_responses(jobs, json_hash['ResponseRecommendJob']['Request']) end cb_client.append_api_responses(jobs, json_hash['ResponseRecommendJob']) end cb_client.append_api_responses(jobs, json_hash) end |
.for_user(*args) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/cb/clients/recommendation.rb', line 39 def self.for_user(*args) hash = normalize_args(args) hash = set_hash_defaults(hash) json_hash = cb_client.cb_get(Cb.configuration.uri_recommendation_for_user, query: hash) jobs = [] if json_hash.key?('ResponseRecommendUser') if json_hash['ResponseRecommendUser'].key?('RecommendJobResults') && !json_hash['ResponseRecommendUser']['RecommendJobResults'].nil? jobs = create_jobs json_hash, 'User' cb_client.append_api_responses(jobs, json_hash['ResponseRecommendUser']['Request']) end cb_client.append_api_responses(jobs, json_hash['ResponseRecommendUser']) end cb_client.append_api_responses(jobs, json_hash) end |
.normalize_args(args) ⇒ Object
82 83 84 85 86 87 88 89 90 91 |
# File 'lib/cb/clients/recommendation.rb', line 82 def self.normalize_args(args) return args[0] if args[0].class == Hash { ExternalID: args[0], JobDID: args[0], CountLimit: args[1] || '25', SiteID: args[2] || '', CoBrand: args[3] || '' } end |
.set_hash_defaults(hash) ⇒ Object
93 94 95 96 97 |
# File 'lib/cb/clients/recommendation.rb', line 93 def self.set_hash_defaults(hash) hash[:CountLimit] ||= '25' hash[:HostSite] ||= Cb.configuration.host_site hash end |