Skip to content

Commit

Permalink
MOSIP-34112 code changes
Browse files Browse the repository at this point in the history
Signed-off-by: Sowmya Ujjappa Banakar <[email protected]>
  • Loading branch information
Sowmya Ujjappa Banakar committed Jul 17, 2024
1 parent f58d3b3 commit 3228b3b
Show file tree
Hide file tree
Showing 4 changed files with 130 additions and 47 deletions.
Original file line number Diff line number Diff line change
@@ -1,45 +1,49 @@
package io.mosip.registration.processor.biodedupe.constants;

public class BioDedupeConstants {

/** The Constant FILE_SEPARATOR. */
public static final String FILE_SEPARATOR = "\\";

/** The Constant INDIVIDUAL_BIOMETRICS. */
public static final String INDIVIDUAL_BIOMETRICS = "individualBiometrics";

public static final String VALUE = "value";

public static final String CBEFF_PRESENT_IN_PACKET = "Cbeff is present in the packet, destination stage is abis_handler";

public static final String CBEFF_NOT_PRESENT_IN_PACKET = "Cbeff is not present in the packet. This will be sent to manual verification.";

public static final String CBEFF_ABSENT_IN_PACKET = "Cbeff is absent in the packet for child, destination stage is UIN";

public static final String UPDATE_PACKET_BIOMETRIC_NOT_NULL = "Update packet individual biometric not null, destination stage is abis_handler";

public static final String UPDATE_PACKET_BIOMETRIC_NULL = "Update packet individual biometric null, destination stage is UIN";

public static final String ABIS_RESPONSE_NOT_NULL = "ABIS response Details not null, destination stage is Manual_verification";

public static final String ABIS_RESPONSE_NULL = "ABIS response Details null, destination stage is UIN";

public static final String CBEFF_NOT_FOUND = "Cbeff not found for the lost packet";

public static final String APPLICANT_TYPE_CHILD = "Applicant type is child and Cbeff not present returning false";

public static final String APPLICANT_TYPE_ADULT = "Applicant type is adult and Cbeff not present throwing exception";

public static final String LOST_PRE_ABIS_IDENTITIFICATION = "Lost Packet Pre abis identification";

public static final String NO_MATCH_FOUND_FOR_LOST = "No match found, rejecting the lost packet for ";

public static final String FOUND_UIN_IN_BIO_CHECK = "Found a matching UIN in bio check for the lost packet ";

public static final String FOUND_UIN_IN_DEMO_CHECK = "Found a matching UIN in demo check for the lost packet ";

public static final String MULTIPLE_RID_FOUND = "Multiple matched regId found, saving data in manual verification";

/** The Constant INTERNAL_ERROR. */
private static final String INTERNAL_ERROR = "Internal error occurred in bio-dedupe stage while processing for registrationId ";
}
package io.mosip.registration.processor.biodedupe.constants;

public class BioDedupeConstants {

/** The Constant FILE_SEPARATOR. */
public static final String FILE_SEPARATOR = "\\";

/** The Constant INDIVIDUAL_BIOMETRICS. */
public static final String INDIVIDUAL_BIOMETRICS = "individualBiometrics";

public static final String VALUE = "value";

public static final String CBEFF_PRESENT_IN_PACKET = "Cbeff is present in the packet, destination stage is abis_handler";

public static final String CBEFF_NOT_PRESENT_IN_PACKET = "Cbeff is not present in the packet. This will be sent to manual verification.";

public static final String CBEFF_ABSENT_IN_PACKET = "Cbeff is absent in the packet for child, destination stage is UIN";

public static final String UPDATE_PACKET_BIOMETRIC_NOT_NULL = "Update packet individual biometric not null, destination stage is abis_handler";

public static final String UPDATE_PACKET_BIOMETRIC_NULL = "Update packet individual biometric null, destination stage is UIN";

public static final String ABIS_RESPONSE_NOT_NULL = "ABIS response Details not null, destination stage is Manual_verification";

public static final String ABIS_RESPONSE_NULL = "ABIS response Details null, destination stage is UIN";

public static final String CBEFF_NOT_FOUND = "Cbeff not found for the lost packet";

public static final String APPLICANT_TYPE_CHILD = "Applicant type is child and Cbeff not present returning false";

public static final String APPLICANT_TYPE_ADULT = "Applicant type is adult and Cbeff not present throwing exception";

public static final String LOST_PRE_ABIS_IDENTITIFICATION = "Lost Packet Pre abis identification";

public static final String NO_MATCH_FOUND_FOR_LOST = "No match found, rejecting the lost packet for ";

public static final String FOUND_UIN_IN_BIO_CHECK = "Found a matching UIN in bio check for the lost packet ";

public static final String FOUND_UIN_IN_DEMO_CHECK = "Found a matching UIN in demo check for the lost packet ";

public static final String MULTIPLE_RID_FOUND = "Multiple matched regId found, saving data in manual verification";

/** The Constant INTERNAL_ERROR. */
private static final String INTERNAL_ERROR = "Internal error occurred in bio-dedupe stage while processing for registrationId ";

public static final String ABIS_RESPONSE_MATCHING = "ABIS response Details matching, destination stage is UIN";

public static final String NO_MATCH_FOUND_FOR_UPDATE = "No match found, rejecting the Update packet for ";
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;

import org.apache.commons.lang3.exception.ExceptionUtils;
Expand Down Expand Up @@ -132,6 +133,9 @@ public class BioDedupeProcessor {
@Value("${registration.processor.missing.biometric.verification.enabled:true}")
private boolean missingBiometricVerificationEnabled;

@Value("${registration.processor.biometric.autoreject.enabled:false}")
private boolean biometricAutorejectEnable;

/** The reg proc logger. */
private static Logger regProcLogger = RegProcessorLogger.getLogger(BioDedupeProcessor.class);

Expand Down Expand Up @@ -435,6 +439,36 @@ private void postAbisIdentification(InternalRegistrationStatusDto registrationSt
registrationStatusDto.getRegistrationId(), BioDedupeConstants.ABIS_RESPONSE_NULL);

} else {
if (registrationType.equalsIgnoreCase(RegistrationType.UPDATE.name()) && matchedRegIds.size() == 1
&& biometricAutorejectEnable) {
Optional<String> optionalMatchedRegId = matchedRegIds.stream().findFirst();
String matchedRegId = optionalMatchedRegId.get();
String uin = idRepoService.getUinByRid(matchedRegId, utilities.getGetRegProcessorDemographicIdentity());
String updateUin = utilities.getUIn(registrationStatusDto.getRegistrationId(), registrationType,
ProviderStageName.BIO_AUTH);
if (StringUtils.equals(uin, updateUin)) {
registrationStatusDto
.setLatestTransactionStatusCode(RegistrationTransactionStatusCode.SUCCESS.toString());
object.setIsValid(Boolean.TRUE);
registrationStatusDto.setStatusCode(RegistrationStatusCode.PROCESSING.name());
registrationStatusDto.setStatusComment(StatusUtil.BIO_DEDUPE_SUCCESS.getMessage());
registrationStatusDto.setSubStatusCode(StatusUtil.BIO_DEDUPE_SUCCESS.getCode());
regProcLogger.info(LoggerFileConstant.SESSIONID.toString(),
LoggerFileConstant.REGISTRATIONID.toString(), registrationStatusDto.getRegistrationId(),
BioDedupeConstants.ABIS_RESPONSE_MATCHING);
} else {
registrationStatusDto
.setLatestTransactionStatusCode(RegistrationTransactionStatusCode.FAILED.toString());
object.setIsValid(Boolean.FALSE);
registrationStatusDto.setStatusCode(RegistrationStatusCode.REJECTED.name());
registrationStatusDto.setStatusComment(StatusUtil.UPDATE_PACKET_BIOMETRICS_NOT_FOUND.getMessage());
registrationStatusDto.setSubStatusCode(StatusUtil.UPDATE_PACKET_BIOMETRICS_NOT_FOUND.getCode());
regProcLogger.info(LoggerFileConstant.SESSIONID.toString(),
LoggerFileConstant.REGISTRATIONID.toString(), registrationStatusDto.getRegistrationId(),
BioDedupeConstants.NO_MATCH_FOUND_FOR_UPDATE + registrationStatusDto.getRegistrationId());
}

}else {
registrationStatusDto.setStatusCode(RegistrationStatusCode.FAILED.name());
registrationStatusDto.setStatusComment(StatusUtil.BIO_DEDUPE_POTENTIAL_MATCH.getMessage());
registrationStatusDto.setSubStatusCode(StatusUtil.BIO_DEDUPE_POTENTIAL_MATCH.getCode());
Expand All @@ -451,7 +485,7 @@ private void postAbisIdentification(InternalRegistrationStatusDto registrationSt

regProcLogger.info(LoggerFileConstant.SESSIONID.toString(), LoggerFileConstant.REGISTRATIONID.toString(),
registrationStatusDto.getRegistrationId(), BioDedupeConstants.ABIS_RESPONSE_NOT_NULL);

}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -460,7 +460,7 @@ public void testBioDeDupUpdatePacketHandlerProcessingFailure() throws ApisResour
Set<String> matchedRidList = new HashSet<>();
matchedRidList.add("27847657360002520190320095010");
Mockito.when(abisHandlerUtil.getUniqueRegIds(any(), any(), anyInt(), any(), any())).thenReturn(matchedRidList);

ReflectionTestUtils.setField(bioDedupeProcessor, "biometricAutorejectEnable", false);
MessageDTO messageDto = bioDedupeProcessor.process(dto, stageName);
assertTrue(messageDto.getIsValid());
assertFalse(messageDto.getInternalError());
Expand Down Expand Up @@ -685,4 +685,46 @@ public void testApisResourceAccessException() throws Exception {
assertTrue(messageDto.getIsValid());
assertTrue(messageDto.getInternalError());
}

@Test
public void testBioDeDupUpdatePacketHandlerProcessingSuccessWithAutoRejectEnable()
throws ApisResourceAccessException, IOException, PacketDecryptionFailureException,
io.mosip.kernel.core.exception.IOException, JsonProcessingException, PacketManagerException {
registrationStatusDto.setRegistrationId("reg1234");
registrationStatusDto.setRegistrationType("UPDATE");
Mockito.when(registrationStatusService.getRegistrationStatus(any(), any(), any(), any()))
.thenReturn(registrationStatusDto);
Mockito.when(abisHandlerUtil.getPacketStatus(any())).thenReturn(AbisConstant.POST_ABIS_IDENTIFICATION);

Set<String> matchedRidList = new HashSet<>();
matchedRidList.add("27847657360002520190320095010");
Mockito.when(abisHandlerUtil.getUniqueRegIds(any(), any(), anyInt(), any(), any())).thenReturn(matchedRidList);
when(idRepoService.getUinByRid(any(), any())).thenReturn("9403107397");
Mockito.when(utility.getUIn(anyString(), anyString(), any())).thenReturn("9403107397");
ReflectionTestUtils.setField(bioDedupeProcessor, "biometricAutorejectEnable", true);
MessageDTO messageDto = bioDedupeProcessor.process(dto, stageName);
assertTrue(messageDto.getIsValid());
assertFalse(messageDto.getInternalError());
}

@Test
public void testBioDeDupUpdatePacketHandlerProcessingFailWithAutoRejectEnable()
throws ApisResourceAccessException, IOException, PacketDecryptionFailureException,
io.mosip.kernel.core.exception.IOException, JsonProcessingException, PacketManagerException {
registrationStatusDto.setRegistrationId("reg1234");
registrationStatusDto.setRegistrationType("UPDATE");
Mockito.when(registrationStatusService.getRegistrationStatus(any(), any(), any(), any()))
.thenReturn(registrationStatusDto);
Mockito.when(abisHandlerUtil.getPacketStatus(any())).thenReturn(AbisConstant.POST_ABIS_IDENTIFICATION);

Set<String> matchedRidList = new HashSet<>();
matchedRidList.add("27847657360002520190320095010");
Mockito.when(abisHandlerUtil.getUniqueRegIds(any(), any(), anyInt(), any(), any())).thenReturn(matchedRidList);
when(idRepoService.getUinByRid(any(), any())).thenReturn("9403107397");
Mockito.when(utility.getUIn(anyString(), anyString(), any())).thenReturn("9403107396");
ReflectionTestUtils.setField(bioDedupeProcessor, "biometricAutorejectEnable", true);
MessageDTO messageDto = bioDedupeProcessor.process(dto, stageName);
assertFalse(messageDto.getIsValid());
assertFalse(messageDto.getInternalError());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,9 @@ public enum StatusUtil {
LOST_PACKET_MULTIPLE_MATCH_FOUND(StatusConstants.BIO_DEDUPE_MODULE_FAILED + "003",
"Multiple Match was Found for the Biometrics Received"),

UPDATE_PACKET_BIOMETRICS_NOT_FOUND(StatusConstants.BIO_DEDUPE_MODULE_FAILED + "004",
"No Match was Found for the Biometrics Received"),

// Biometric authentication stage
BIOMETRIC_AUTHENTICATION_FAILED(StatusConstants.BIO_METRIC_AUTHENTICATION_MODULE_FAILED + "001",
"Biometric Authentication has Failed"),
Expand Down

0 comments on commit 3228b3b

Please sign in to comment.