Skip to content

Commit

Permalink
MOSIP-29399 Code fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Sowmya Ujjappa Banakar committed Sep 13, 2023
1 parent 5deea9b commit 17bc0ec
Showing 1 changed file with 26 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -575,29 +575,37 @@ private String getUUID() {
}

private String getDataShareUrl(String id, String process) throws Exception {
Map<String, List<String>> typeAndSubtypMap = createTypeSubtypeMapping();
Map<String, List<String>> policyTypeAndSubTypeMap = createTypeSubtypeMapping();
List<String> modalities = new ArrayList<>();
modalities.addAll(typeAndSubtypMap.keySet());
List<String> policyTypeAndSubTypeList = new ArrayList<>();
modalities.addAll(policyTypeAndSubTypeMap.keySet());
for (Map.Entry<String, List<String>> entry : policyTypeAndSubTypeMap.entrySet()) {
if (entry.getValue() == null) {
policyTypeAndSubTypeList.add(entry.getKey());
} else {
policyTypeAndSubTypeList.addAll(entry.getValue());
}
}
JSONObject regProcessorIdentityJson = utility
.getRegistrationProcessorMappingJson(MappingJsonConstants.IDENTITY);
String individualBiometricsLabel = JsonUtil.getJSONValue(
JsonUtil.getJSONObject(regProcessorIdentityJson, MappingJsonConstants.INDIVIDUAL_BIOMETRICS),
MappingJsonConstants.VALUE);
BiometricRecord biometricRecord = priorityBasedPacketManagerService.getBiometrics(id, individualBiometricsLabel,
modalities, process, ProviderStageName.BIO_DEDUPE);
policyTypeAndSubTypeList, process, ProviderStageName.BIO_DEDUPE);

Map<String, String> tags = packetManagerService.getAllTags(id);
String ageGroup = tags.get("AGE_GROUP");
Map<String, List<String>> biometricModalitySegmentsMap;
Map<String, List<String>> ageGroupModalitySegmentMap;
if(biometricModalitySegmentsMapforAgeGroup.containsKey(ageGroup)){
biometricModalitySegmentsMap = biometricModalitySegmentsMapforAgeGroup.get(ageGroup);
ageGroupModalitySegmentMap = biometricModalitySegmentsMapforAgeGroup.get(ageGroup);
}
else {
biometricModalitySegmentsMap = biometricModalitySegmentsMapforAgeGroup.get("DEFAULT");
ageGroupModalitySegmentMap = biometricModalitySegmentsMapforAgeGroup.get("DEFAULT");
}
validateBiometricRecord(biometricRecord, modalities, biometricModalitySegmentsMap,
validateBiometricRecord(biometricRecord, modalities, ageGroupModalitySegmentMap,
priorityBasedPacketManagerService.getMetaInfo(id, process, ProviderStageName.BIO_DEDUPE),
typeAndSubtypMap);
policyTypeAndSubTypeMap);

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

Expand Down Expand Up @@ -635,8 +643,8 @@ public String getFilename() {

@SuppressWarnings("deprecation")
private void validateBiometricRecord(BiometricRecord biometricRecord, List<String> modalities,
Map<String, List<String>> biometricModalitySegmentsMap, Map<String, String> metaInfoMap,
Map<String, List<String>> typeAndSubtypMap)
Map<String, List<String>> ageGroupModalitySegmentMap, Map<String, String> metaInfoMap,
Map<String, List<String>> policyTypeAndSubTypeMap)
throws DataShareException, JsonParseException, JsonMappingException, IOException {
if (modalities == null || modalities.isEmpty()) {
throw new DataShareException("Data Share Policy Modalities were Empty");
Expand All @@ -656,17 +664,17 @@ private void validateBiometricRecord(BiometricRecord biometricRecord, List<Strin
exceptionList = metaInfoExceptionBiometrics.get("applicant").keySet();
}
boolean isBioFound = false;
for (String biometricSegment : biometricModalitySegmentsMap.keySet()) {
if (!modalities.contains(biometricSegment)) {
for (String biometricModality : ageGroupModalitySegmentMap.keySet()) {
if (!modalities.contains(biometricModality)) {
throw new DataShareException(
"Modalities not Configured as per policy for modality : " + biometricSegment);
"Modalities not Configured as per policy for modality : " + biometricModality);
}
List<String> biometricModalitySegmentsMapFromPolicy = typeAndSubtypMap.get(biometricSegment);
for (String segment : biometricModalitySegmentsMap.get(biometricSegment)) {
if (biometricModalitySegmentsMapFromPolicy != null
&& !biometricModalitySegmentsMapFromPolicy.contains(segment)) {
List<String> policySegmentList = policyTypeAndSubTypeMap.get(biometricModality);
for (String segment : ageGroupModalitySegmentMap.get(biometricModality)) {
if (policySegmentList != null
&& !policySegmentList.contains(segment)) {
throw new DataShareException(
"Biometrics Segments Not Configured as per policy for modality : " + biometricSegment);
"Biometrics Segments Not Configured as per policy for modality : " + biometricModality);
}
Optional<BIR> optionalBIR = Optional.empty();
if (segment.equalsIgnoreCase("Face")) {
Expand Down

0 comments on commit 17bc0ec

Please sign in to comment.