class CommonUtils {

    public static String doHttpPut(final String url, final String requestBody) throws Exception {
        try {
            HttpClient client = HttpClientBuilder.create().build();
            HttpPut httpPut = new HttpPut(url);
            httpPut.setHeader(CONTENT_TYPE, APPLICATION_JSON);

            StringEntity jsonEntity = null;
            if (requestBody != null) {
                jsonEntity = new StringEntity(requestBody);
            }

            httpPut.setEntity(jsonEntity);
            HttpResponse httpresponse = client.execute(httpPut);
            if (httpresponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                return EntityUtils.toString(httpresponse.getEntity());
            } else {
            	 if(AuthManager.getToken()!=null){
                     String accessToken =  AuthManager.getToken();
                     if(!Strings.isNullOrEmpty(accessToken))
                     {
                     	httpPut.setHeader(PacmanSdkConstants.AUTH_HEADER, "Bearer " + accessToken);
                     }
                 }
                 httpPut.setEntity(jsonEntity);
                 HttpResponse httpresponse1 = client.execute(httpPut);
                 if (httpresponse1.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                     return EntityUtils.toString(httpresponse1.getEntity());
                 } else {
                     throw new Exception(
                             "unable to execute put request caused by" + EntityUtils.toString(httpresponse1.getEntity()));
                 }
            }
        } catch (ParseException parseException) {
            LOGGER.error("ParseException in getHttpPut :" + parseException.getMessage());
        } catch (IOException ioException) {
            LOGGER.error("IOException in getHttpPut :" + ioException.getMessage());
        }
        return null;
    }

}