require "lenddo" require "lenddo/authentication" require "lenddo/response" require "lenddo/network_service/self" include Lenddo::Authentication module Lenddo module WhiteLabelClient class << self attr_accessor :network_service # Submit additional data about an application to Lenddo. # @param string application_id # @param string partnerscript_id # @param array extra_data def extra_application_data(application_id, partnerscript_id, extra_data = {}) @network_service ||= NetworkService.new if !extra_data.is_a?(Hash) raise ArgumentError.new("@extra_data must be a Hash.") else Response.new @network_service.extra_application_data(application_id, partnerscript_id, extra_data) end end # Posting network tokens, if successful, returns a "Profile ID" which is used when submitting a client for scoring. # @param string application_id # @param string provider # @param hash token_data # @param string oauth_key # @param string oauth_secret (optional) def partner_token(application_id, provider, token_data, oauth_key, oauth_secret = nil) @network_service ||= NetworkService.new if !valid_token_providers.include?(provider) raise ArgumentError.new("@provider must be one of the following: #{valid_token_providers.join(", ")}") elsif !token_data.is_a?(Hash) raise ArgumentError.new("@token_data must be a Hash.") else Response.new @network_service.partner_token(application_id, provider, token_data, oauth_key, oauth_secret) end end # Submit an application with profile ids for scoring to Lenddo. # To perform this step you must have an array of at least one profile id obtained from the PartnerToken call. # @param string partnerscript_id # @param string application_id # @param array profile_ids # @param verification - Optional def commit_partner_job(partnerscript_id, application_id, profile_ids, verification = nil) @network_service ||= NetworkService.new if !profile_ids.is_a?(Array) raise ArgumentError.new("@profile_ids must be an array.") elsif profile_ids.empty? raise ArgumentError.new("@profile_ids must contain at least one entry.") else Response.new @network_service.commit_partner_job(partnerscript_id, application_id, profile_ids, verification) end end private def valid_token_providers ['Facebook', 'LinkedIn', 'Yahoo', 'WindowsLive', 'Google'] end end end end