All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.xcase.salesforce.impl.simple.methods.SearchAccountMethod Maven / Gradle / Ivy

/**
 * Copyright 2016 Xcase All rights reserved.
 */
package com.xcase.salesforce.impl.simple.methods;

import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.xcase.salesforce.constant.SalesforceConstant;
import com.xcase.salesforce.factories.SalesforceResponseFactory;
import com.xcase.salesforce.objects.SalesforceException;
import com.xcase.salesforce.transputs.SearchAccountRequest;
import com.xcase.salesforce.transputs.SearchAccountResponse;
import java.io.*;
import java.lang.invoke.*;
import java.util.*;
import org.apache.http.Header;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicHeader;
import org.apache.logging.log4j.*;

/**
 *
 * @author martin
 */
public class SearchAccountMethod extends BaseSalesforceMethod {

    /**
     * log4j object.
     */
    protected static final Logger LOGGER = LogManager.getLogger(MethodHandles.lookup().lookupClass());

    /**
     *
     * @param searchAccountRequest
     * @return response
     * @throws IOException
     * @throws SalesforceException
     */
    public SearchAccountResponse searchAccount(SearchAccountRequest searchAccountRequest) throws IOException, SalesforceException {
        LOGGER.debug("starting searchAccount()");
        SearchAccountResponse searchAccountResponse = SalesforceResponseFactory.createSearchAccountResponse();
        LOGGER.debug("created search account response");
        String accessToken = searchAccountRequest.getAccessToken();
        LOGGER.debug("accessToken is " + accessToken);
        String searchString = searchAccountRequest.getSearchString();
        LOGGER.debug("searchString is " + searchString);
        StringBuffer urlBuff = super.getApiUrl("query/?q=" + searchString);
        String accountApiUrl = urlBuff.toString();
        LOGGER.debug("accountApiUrl is " + accountApiUrl);
        String bearerString = "Bearer " + accessToken;
        LOGGER.debug("bearerString is " + bearerString);
        Header header = new BasicHeader("Authorization", bearerString);
        LOGGER.debug("created Authorization header");
        Header[] headers = {header};
        List parameters = new ArrayList();
        //parameters.add(new BasicNameValuePair("q", searchString));
        try {
            JsonElement jsonElement = httpManager.doJsonGet(accountApiUrl, headers, parameters);
            if (!jsonElement.isJsonNull()) {
                LOGGER.debug("jsonElement is " + jsonElement.toString());
                JsonObject jsonObject = (JsonObject) jsonElement;
                JsonElement totalSizeElement = jsonObject.get("totalSize");
                int totalSize = totalSizeElement.getAsInt();
                LOGGER.debug("totalSize is " + totalSize);
                JsonArray recordsArray = jsonObject.getAsJsonArray("records");
                int recordsSize = recordsArray.size();
                LOGGER.debug("recordsSize is " + recordsSize);
                Iterator recordsIterator = recordsArray.iterator();
                while (recordsIterator.hasNext()) {
                    JsonElement recordElement = recordsIterator.next();
                    LOGGER.debug("recordElement is " + recordElement.toString());
                }
            } else {
                String status = SalesforceConstant.STATUS_NOT_LOGGED_IN;
                searchAccountResponse.setStatus(status);
            }
        } catch (Exception e) {
            throw new SalesforceException("Failed to parse to a document.", e);
        }

        return searchAccountResponse;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy