Skip to content

Commit

Permalink
Merge pull request #1765 from sowmya695/MOSIP-28478_develop
Browse files Browse the repository at this point in the history
MOSIP-28478 Merge pull request #1753 from sowmya695/MOSIP-28478
  • Loading branch information
vishwa-vyom authored Sep 7, 2023
2 parents 23f3476 + 2b7da59 commit 5ac0460
Show file tree
Hide file tree
Showing 2 changed files with 1,075 additions and 1,035 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package io.mosip.registration.processor.abis.handler.stage;

import java.io.IOException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
Expand All @@ -12,9 +11,9 @@
import java.util.UUID;
import java.util.stream.Collectors;

import io.mosip.kernel.core.util.StringUtils;
import io.mosip.registration.processor.packet.storage.utils.PacketManagerService;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.simple.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
Expand Down Expand Up @@ -42,12 +41,10 @@
import io.mosip.kernel.core.logger.spi.Logger;
import io.mosip.kernel.core.util.DateUtils;
import io.mosip.kernel.core.util.JsonUtils;
import io.mosip.kernel.core.util.StringUtils;
import io.mosip.kernel.core.util.exception.JsonProcessingException;
import io.mosip.registration.processor.abis.handler.constant.AbisHandlerStageConstant;
import io.mosip.registration.processor.abis.handler.dto.DataShareResponseDto;
import io.mosip.registration.processor.core.packet.dto.datashare.Filter;
import io.mosip.registration.processor.core.packet.dto.datashare.ShareableAttributes;
import io.mosip.registration.processor.core.packet.dto.datashare.Source;
import io.mosip.registration.processor.abis.handler.exception.AbisHandlerException;
import io.mosip.registration.processor.abis.handler.exception.DataShareException;
import io.mosip.registration.processor.abis.queue.dto.AbisQueueDetails;
Expand All @@ -63,16 +60,19 @@
import io.mosip.registration.processor.core.code.EventType;
import io.mosip.registration.processor.core.code.ModuleName;
import io.mosip.registration.processor.core.code.RegistrationTransactionStatusCode;
import io.mosip.registration.processor.core.constant.JsonConstant;
import io.mosip.registration.processor.core.constant.LoggerFileConstant;
import io.mosip.registration.processor.core.constant.MappingJsonConstants;
import io.mosip.registration.processor.core.constant.PolicyConstant;
import io.mosip.registration.processor.core.constant.ProviderStageName;
import io.mosip.registration.processor.core.exception.ApisResourceAccessException;
import io.mosip.registration.processor.core.exception.PacketManagerException;
import io.mosip.registration.processor.core.exception.util.PlatformErrorMessages;
import io.mosip.registration.processor.core.exception.util.PlatformSuccessMessages;
import io.mosip.registration.processor.core.http.ResponseWrapper;
import io.mosip.registration.processor.core.logger.LogDescription;
import io.mosip.registration.processor.core.logger.RegProcessorLogger;
import io.mosip.registration.processor.core.packet.dto.FieldValue;
import io.mosip.registration.processor.core.packet.dto.Identity;
import io.mosip.registration.processor.core.packet.dto.abis.AbisIdentifyRequestDto;
import io.mosip.registration.processor.core.packet.dto.abis.AbisIdentifyRequestGalleryDto;
Expand All @@ -82,12 +82,16 @@
import io.mosip.registration.processor.core.packet.dto.abis.ReferenceIdDto;
import io.mosip.registration.processor.core.packet.dto.abis.RegBioRefDto;
import io.mosip.registration.processor.core.packet.dto.abis.RegDemoDedupeListDto;
import io.mosip.registration.processor.core.packet.dto.datashare.Filter;
import io.mosip.registration.processor.core.packet.dto.datashare.ShareableAttributes;
import io.mosip.registration.processor.core.packet.dto.datashare.Source;
import io.mosip.registration.processor.core.spi.packetmanager.PacketInfoManager;
import io.mosip.registration.processor.core.spi.restclient.RegistrationProcessorRestClientService;
import io.mosip.registration.processor.core.status.util.StatusUtil;
import io.mosip.registration.processor.core.status.util.TrimExceptionMessage;
import io.mosip.registration.processor.core.util.JsonUtil;
import io.mosip.registration.processor.packet.storage.dto.ApplicantInfoDto;
import io.mosip.registration.processor.packet.storage.utils.PacketManagerService;
import io.mosip.registration.processor.packet.storage.utils.PriorityBasedPacketManagerService;
import io.mosip.registration.processor.packet.storage.utils.Utilities;
import io.mosip.registration.processor.rest.client.audit.builder.AuditLogRequestBuilder;
Expand Down Expand Up @@ -208,6 +212,9 @@ public class AbisHandlerStage extends MosipVerticleAPIManager {

private static final String DATETIME_PATTERN = "mosip.registration.processor.datetime.pattern";

@Value("#{T(java.util.Arrays).asList('${mosip.regproc.common.before-cbeff-others-attibute.reg-client-versions:}')}")
private List<String> regClientVersionsBeforeCbeffOthersAttritube;

/**
* Deploy verticle.
*/
Expand Down Expand Up @@ -502,7 +509,7 @@ private void createInsertRequest(List<AbisQueueDetails> abisQueueDetails, String
abisRequestDto.setReqBatchId(batchId);
abisRequestDto.setRefRegtrnId(transactionId);


abisRequestDto.setStatusCode(AbisStatusCode.IN_PROGRESS.toString());
abisRequestDto.setStatusComment(null);
abisRequestDto.setLangCode(AbisHandlerStageConstant.ENG);
Expand Down Expand Up @@ -539,7 +546,7 @@ private void createInsertRequest(List<AbisQueueDetails> abisQueueDetails, String
* @param id the id
* @param bioRefId the bio ref id
* @param description
* @param status
* @param status
* @return the insert request bytes
*/
private byte[] getInsertRequestBytes(String regId, String id, String process, String bioRefId,
Expand Down Expand Up @@ -608,7 +615,7 @@ private String getDataShareUrl(String id, String process) throws Exception {
priorityBasedPacketManagerService.getMetaInfo(id, process, ProviderStageName.BIO_DEDUPE));
}

byte[] content = cbeffutil.createXML(filterExceptionBiometrics(biometricRecord).getSegments());
byte[] content = cbeffutil.createXML(filterExceptionBiometrics(biometricRecord,id,process).getSegments());

MultiValueMap<String, Object> map = new LinkedMultiValueMap<>();
map.add("name", individualBiometricsLabel);
Expand Down Expand Up @@ -711,18 +718,47 @@ private void validateBiometricRecord(BiometricRecord biometricRecord, List<Strin
}
}

private BiometricRecord filterExceptionBiometrics(BiometricRecord biometricRecord) {
private BiometricRecord filterExceptionBiometrics(BiometricRecord biometricRecord, String id, String process)
throws ApisResourceAccessException, PacketManagerException, JsonProcessingException, IOException,
JSONException
{

String version = getRegClientVersionFromMetaInfo(id, process, priorityBasedPacketManagerService.getMetaInfo(id, process, ProviderStageName.BIO_DEDUPE));
if (regClientVersionsBeforeCbeffOthersAttritube.contains(version)) {
return biometricRecord;
}
List<BIR> segments = biometricRecord.getSegments().stream().filter(bio -> {
Map<String, String> othersMap = bio.getOthers().entrySet().stream()
.collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue()));
return (othersMap == null || !othersMap.containsKey("EXCEPTION")) ? true
: !(Boolean.parseBoolean(othersMap.get("EXCEPTION")));
}).collect(Collectors.toList());
}).collect(Collectors.toList());
BiometricRecord biorecord = new BiometricRecord();
biorecord.setSegments(segments);
return biorecord;
}

private String getRegClientVersionFromMetaInfo(String id, String process, Map<String, String> metaInfoMap)
throws ApisResourceAccessException, PacketManagerException, IOException, JSONException {
String metadata = metaInfoMap.get(JsonConstant.METADATA);
String version = null;
if (StringUtils.isNotEmpty(metadata)) {
JSONArray jsonArray = new JSONArray(metadata);

for (int i = 0; i < jsonArray.length(); i++) {
if (!jsonArray.isNull(i)) {
org.json.JSONObject jsonObject = (org.json.JSONObject) jsonArray.get(i);
FieldValue fieldValue = mapper.readValue(jsonObject.toString(), FieldValue.class);
if (fieldValue.getLabel().equalsIgnoreCase(JsonConstant.REGCLIENTVERSION)) {
version = fieldValue.getValue();
break;
}
}
}
}
return version;
}

public Map<String, List<String>> createTypeSubtypeMapping() throws ApisResourceAccessException, DataShareException,
IOException {

Expand Down
Loading

0 comments on commit 5ac0460

Please sign in to comment.