All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
io.mosip.credentialstore.util.PolicyUtil Maven / Gradle / Ivy
package io.mosip.credentialstore.util;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.client.HttpServerErrorException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.mosip.credentialstore.constants.ApiName;
import io.mosip.credentialstore.constants.LoggerFileConstant;
import io.mosip.credentialstore.dto.PartnerCredentialTypePolicyDto;
import io.mosip.credentialstore.dto.PartnerExtractorResponse;
import io.mosip.credentialstore.dto.PartnerExtractorResponseDto;
import io.mosip.credentialstore.dto.PolicyManagerResponseDto;
import io.mosip.credentialstore.exception.ApiNotAccessibleException;
import io.mosip.credentialstore.exception.PartnerException;
import io.mosip.credentialstore.exception.PolicyException;
import io.mosip.idrepository.core.logger.IdRepoLogger;
import io.mosip.idrepository.core.security.IdRepoSecurityManager;
import io.mosip.kernel.core.exception.ExceptionUtils;
import io.mosip.kernel.core.exception.ServiceError;
import io.mosip.kernel.core.logger.spi.Logger;
@Component
public class PolicyUtil {
/** The rest template. */
@Autowired
RestUtil restUtil;
private static final Logger LOGGER = IdRepoLogger.getLogger(PolicyUtil.class);
/** The mapper. */
@Autowired
private ObjectMapper mapper;
@Autowired
Utilities utilities;
public PartnerCredentialTypePolicyDto getPolicyDetail(String credentialType, String subscriberId, String requestId)
throws PolicyException, ApiNotAccessibleException {
try {
LOGGER.debug(IdRepoSecurityManager.getUser(), LoggerFileConstant.REQUEST_ID.toString(),
requestId,
"started fetching the policy data");
Map pathsegments = new HashMap<>();
pathsegments.put("partnerId", subscriberId);
pathsegments.put("credentialType", credentialType);
String responseString = restUtil.getApi(ApiName.PARTNER_POLICY, pathsegments, String.class);
PolicyManagerResponseDto responseObject = mapper.readValue(responseString,
PolicyManagerResponseDto.class);
if (responseObject != null && responseObject.getErrors() != null && !responseObject.getErrors().isEmpty()) {
ServiceError error = responseObject.getErrors().get(0);
throw new PolicyException(error.getMessage());
}
PartnerCredentialTypePolicyDto policyResponseDto = responseObject.getResponse();
LOGGER.info(IdRepoSecurityManager.getUser(), LoggerFileConstant.REQUEST_ID.toString(),
requestId,
"Fetched policy details successfully");
LOGGER.debug(IdRepoSecurityManager.getUser(), LoggerFileConstant.REQUEST_ID.toString(), requestId,
"ended fetching the policy data");
return policyResponseDto;
} catch (IOException e) {
LOGGER.error(IdRepoSecurityManager.getUser(), LoggerFileConstant.REQUEST_ID.toString(), requestId,
"error with error message" + ExceptionUtils.getStackTrace(e));
throw new PolicyException(e);
} catch (Exception e) {
LOGGER.error(IdRepoSecurityManager.getUser(), LoggerFileConstant.REQUEST_ID.toString(), requestId,
"error with error message" + ExceptionUtils.getStackTrace(e));
if (e.getCause() instanceof HttpClientErrorException) {
HttpClientErrorException httpClientException = (HttpClientErrorException) e.getCause();
throw new ApiNotAccessibleException(httpClientException.getResponseBodyAsString());
} else if (e.getCause() instanceof HttpServerErrorException) {
HttpServerErrorException httpServerException = (HttpServerErrorException) e.getCause();
throw new ApiNotAccessibleException(httpServerException.getResponseBodyAsString());
} else {
throw new PolicyException(e);
}
}
}
public PartnerExtractorResponse getPartnerExtractorFormat(String policyId, String subscriberId, String requestId)
throws ApiNotAccessibleException, PartnerException {
LOGGER.debug(IdRepoSecurityManager.getUser(), LoggerFileConstant.REQUEST_ID.toString(), requestId,
"started fetching the partner extraction policy data");
PartnerExtractorResponse partnerExtractorResponse = null;
try {
Map pathsegments = new HashMap<>();
pathsegments.put("partnerId", subscriberId);
pathsegments.put("policyId", policyId);
String responseString = restUtil.getApi(ApiName.PARTNER_EXTRACTION_POLICY, pathsegments, String.class);
mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
PartnerExtractorResponseDto responseObject = mapper.readValue(responseString,
PartnerExtractorResponseDto.class);
if (responseObject != null && responseObject.getErrors() != null && !responseObject.getErrors().isEmpty()) {
ServiceError error = responseObject.getErrors().get(0);
if (error.getErrorCode().equalsIgnoreCase("PMS_PRT_064")) {
return null;
} else {
LOGGER.info(IdRepoSecurityManager.getUser(), LoggerFileConstant.REQUEST_ID.toString(), requestId,
error.getMessage());
throw new PartnerException(error.getMessage());
}
}
partnerExtractorResponse = responseObject.getResponse();
LOGGER.info(IdRepoSecurityManager.getUser(), LoggerFileConstant.REQUEST_ID.toString(), requestId,
"Fetched partner extraction policy details successfully");
LOGGER.debug(IdRepoSecurityManager.getUser(), LoggerFileConstant.REQUEST_ID.toString(), requestId,
"ended fetching the policy data");
return partnerExtractorResponse;
} catch (Exception e) {
LOGGER.error(IdRepoSecurityManager.getUser(), LoggerFileConstant.REQUEST_ID.toString(), requestId,
"error with error message" + ExceptionUtils.getStackTrace(e));
if (e.getCause() instanceof HttpClientErrorException) {
HttpClientErrorException httpClientException = (HttpClientErrorException) e.getCause();
throw new ApiNotAccessibleException(httpClientException.getResponseBodyAsString());
} else if (e.getCause() instanceof HttpServerErrorException) {
HttpServerErrorException httpServerException = (HttpServerErrorException) e.getCause();
throw new ApiNotAccessibleException(httpServerException.getResponseBodyAsString());
} else {
throw new PartnerException(e);
}
}
}
}