lib/gooddata/bricks/middleware/restforce_middleware.rb in gooddata-0.6.0.pre5 vs lib/gooddata/bricks/middleware/restforce_middleware.rb in gooddata-0.6.0.pre6

- old
+ new

@@ -8,20 +8,39 @@ username = params[:salesforce_username] password = params[:salesforce_password] token = params[:salesforce_token] client_id = params[:salesforce_client_id] client_secret = params[:salesforce_client_secret] - - Restforce.log = true if params[:salesforce_client_logger] + oauth_token = params[:salesforce_oauth_token] + refresh_token = params[:salesforce_refresh_token] + host = params[:salesforce_host] - client = Restforce.new( - :username => username, - :password => password, - :security_token => token, + credentials = {} + credentials = if (username && password && token) + { + :username => username, + :password => password, + :security_token => token + } + elsif (oauth_token && refresh_token) + { + :oauth_token => oauth_token, + :refresh_token => refresh_token + } + else + fail "Salesforce middleware failed while trying to log in. Either salesforce_username, salesforce_password, salesforce_token or salesforce_oauth_token, salesforce_refresh_token are needed. Additionally you have to specify salesforce_client_id and salesforce_client_secret parameters in both cases" + end + + + credentials.merge!({ :client_id => client_id, - :client_secret => client_secret) + :client_secret => client_secret, + }) + credentials[:host] = host unless host.nil? + Restforce.log = true if params[:salesforce_client_logger] + client = Restforce.new(credentials) @app.call(params.merge(:salesforce_client => client)) end end end \ No newline at end of file