From 5ea255336e2964d784ce68f41ea5b7b0b8a872a1 Mon Sep 17 00:00:00 2001 From: Yash S <119652212+yashmsonkusare@users.noreply.github.com> Date: Thu, 4 Apr 2024 16:55:24 +0530 Subject: [PATCH 1/4] MOSIP-19740:Added the zoneCode and regCenterId in the Machine POST response Signed-off-by: Yash S <119652212+yashmsonkusare@users.noreply.github.com> --- .../dto/getresponse/extn/MachineExtnDto.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/dto/getresponse/extn/MachineExtnDto.java b/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/dto/getresponse/extn/MachineExtnDto.java index 043d900a79a..a93efb12022 100644 --- a/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/dto/getresponse/extn/MachineExtnDto.java +++ b/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/dto/getresponse/extn/MachineExtnDto.java @@ -3,12 +3,14 @@ import java.time.LocalDateTime; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import com.fasterxml.jackson.annotation.JsonFormat; import io.mosip.kernel.masterdata.validator.FilterType; import io.mosip.kernel.masterdata.validator.FilterTypeEnum; +import io.mosip.kernel.masterdata.validator.StringFormatter; import io.mosip.kernel.masterdata.validator.ValidLangCode; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -81,4 +83,12 @@ public class MachineExtnDto extends BaseDto { */ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'") private LocalDateTime validityDateTime; -} + + @NotNull + @StringFormatter(min = 1, max = 36) + @ApiModelProperty(value = "zoneCode", required = true, dataType = "java.lang.String") + private String zoneCode; + + @ApiModelProperty(value = "regCenterId", dataType = "java.lang.String") + private String regCenterId; +} \ No newline at end of file From c66017899f1b91af5b27d0943db315ab0cce8d02 Mon Sep 17 00:00:00 2001 From: Yash S <119652212+yashmsonkusare@users.noreply.github.com> Date: Thu, 4 Apr 2024 17:08:27 +0530 Subject: [PATCH 2/4] MOSIP-30026:Added the code tp throw the error for invalid biometricAvailable/gender/residenceStatus data Signed-off-by: Yash S <119652212+yashmsonkusare@users.noreply.github.com> --- .../constant/ApplicantTypeErrorCode.java | 6 ++-- .../impl/ApplicantTypeServiceImpl.java | 35 +++++++++++++++++-- .../resources/application-local1.properties | 7 +++- 3 files changed, 41 insertions(+), 7 deletions(-) diff --git a/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/constant/ApplicantTypeErrorCode.java b/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/constant/ApplicantTypeErrorCode.java index 773a42fa2bd..542793637c3 100644 --- a/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/constant/ApplicantTypeErrorCode.java +++ b/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/constant/ApplicantTypeErrorCode.java @@ -2,7 +2,7 @@ /** * Error code constants - * + * * @author Bal Vikash Sharma * @since 1.0.0 */ @@ -11,8 +11,8 @@ public enum ApplicantTypeErrorCode { NO_APPLICANT_FOUND_EXCEPTION("KER-MSD-147", "Applicant Type data does not exist"), APPLICANT_TYPE_FETCH_EXCEPTION("KER-MSD-149", "Error occurred while fetching Applicant Type-Document Category-Document Type Mapping details"), - APPLICANT_TYPE_NOT_FOUND_EXCEPTION("KER-MSD-150", "Document Category- Document Type mapping not found"); - + APPLICANT_TYPE_NOT_FOUND_EXCEPTION("KER-MSD-150", "Document Category- Document Type mapping not found"), + INVALID_ATTRIBUTE("KER-MSD-200", "Invalid value for attribute "); private final String errorCode; private final String errorMessage; diff --git a/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/service/impl/ApplicantTypeServiceImpl.java b/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/service/impl/ApplicantTypeServiceImpl.java index d604792c733..dfd82c79c00 100644 --- a/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/service/impl/ApplicantTypeServiceImpl.java +++ b/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/service/impl/ApplicantTypeServiceImpl.java @@ -26,16 +26,25 @@ import io.mosip.kernel.masterdata.exception.DataNotFoundException; import io.mosip.kernel.masterdata.exception.RequestException; import io.mosip.kernel.masterdata.service.ApplicantTypeService; +import org.springframework.beans.factory.annotation.Value; @Service public class ApplicantTypeServiceImpl implements ApplicantTypeService { @Autowired private ApplicantType applicantCodeService; + @Value("${mosip.kernel.masterdata.individualTypeCode}") + private String individualTypeCode; + + @Value("${mosip.kernel.masterdata.genderCode}") + private String genderCode; + + @Value("${mosip.kernel.masterdata.biometricAvailable}") + private String biometricAvailable; /* * (non-Javadoc) - * + * * @see * io.mosip.kernel.applicanttype.service.ApplicantTypeService#getApplicantType( * io.mosip.kernel.applicanttype.dto.RequestDTO) @@ -47,7 +56,27 @@ public ResponseDTO getApplicantType(RequestDTO dto) { List> list = dto.getAttributes(); Map map = new HashMap<>(); for (KeyValues keyValues : list) { - map.put(keyValues.getAttribute(), keyValues.getValue()); + String attribute = keyValues.getAttribute(); + Object value = keyValues.getValue(); + + if ("residenceStatus".equals(attribute)) { + if (value instanceof String && !individualTypeCode.contains((String) value)) { + throw new DataNotFoundException(ApplicantTypeErrorCode.INVALID_ATTRIBUTE.getErrorCode(), + ApplicantTypeErrorCode.INVALID_ATTRIBUTE.getErrorMessage()+attribute); + } + } else if ("gender".equals(attribute)) { + if (value instanceof String && !genderCode.contains((String) value)) { + throw new DataNotFoundException(ApplicantTypeErrorCode.INVALID_ATTRIBUTE.getErrorCode(), + ApplicantTypeErrorCode.INVALID_ATTRIBUTE.getErrorMessage()+attribute); + } + } else if ("biometricAvailable".equals(attribute)) { + if (value instanceof String && !biometricAvailable.contains((String) value)) { + throw new DataNotFoundException(ApplicantTypeErrorCode.INVALID_ATTRIBUTE.getErrorCode(), + ApplicantTypeErrorCode.INVALID_ATTRIBUTE.getErrorMessage()+attribute); + } + } + + map.put(attribute, value); } ApplicantTypeCodeDTO appDto = new ApplicantTypeCodeDTO(); @@ -64,4 +93,4 @@ public ResponseDTO getApplicantType(RequestDTO dto) { return response; } -} \ No newline at end of file +} diff --git a/admin/kernel-masterdata-service/src/main/resources/application-local1.properties b/admin/kernel-masterdata-service/src/main/resources/application-local1.properties index a1bc22c4258..6e439527aa8 100644 --- a/admin/kernel-masterdata-service/src/main/resources/application-local1.properties +++ b/admin/kernel-masterdata-service/src/main/resources/application-local1.properties @@ -397,4 +397,9 @@ mosip.role.admin.masterdata.getdynamicfieldmissingidslangcode=GLOBAL_ADMIN,ZONAL zone.user.details.url=https://dev.mosip.net/v1/authmanager/userdetails mosip.kernel.masterdata.code.validate.regex=[^a-z0-9] -mosip.kernel.masterdata.name.validate.regex=[^A-Za-z] \ No newline at end of file +mosip.kernel.masterdata.name.validate.regex=[^A-Za-z] + +#Properties for applicant type +mosip.kernel.masterdata.individualTypeCode=FR,NFR +mosip.kernel.masterdata.genderCode=MLE,FLE +mosip.kernel.masterdata.biometricAvailable=true,false \ No newline at end of file From 46b21fe8cf5e1eb73a63c62f5513c8d5020fb220 Mon Sep 17 00:00:00 2001 From: Yash S <119652212+yashmsonkusare@users.noreply.github.com> Date: Thu, 4 Apr 2024 17:16:06 +0530 Subject: [PATCH 3/4] MOSIP-30009:Added the language validation for the supported language Signed-off-by: Yash S <119652212+yashmsonkusare@users.noreply.github.com> --- .../constant/BlocklistedWordsErrorCode.java | 3 ++- .../service/impl/BlocklistedWordsServiceImpl.java | 14 +++++++++++--- .../main/resources/application-local1.properties | 1 + 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/constant/BlocklistedWordsErrorCode.java b/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/constant/BlocklistedWordsErrorCode.java index 1c6f94f1a25..ea4de99ffe6 100644 --- a/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/constant/BlocklistedWordsErrorCode.java +++ b/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/constant/BlocklistedWordsErrorCode.java @@ -13,7 +13,8 @@ public enum BlocklistedWordsErrorCode { BLOCKLISTED_WORDS_FETCH_EXCEPTION("KER-MSD-007", "Error occurred while fetching Blocklisted words"), BLOCKLISTED_WORDS_INSERT_EXCEPTION("KER-MSD-070", "Error occurred while inserting Blocklisted words"), BLOCKLISTED_WORDS_UPDATE_EXCEPTION("KER-MSD-105", "Error occurred while updating Blocklisted Word"), - BLOCKLISTED_WORDS_DELETE_EXCEPTION("KER-MSD-213", "Error occurred while deleting Blocklisted Word"); + BLOCKLISTED_WORDS_DELETE_EXCEPTION("KER-MSD-213", "Error occurred while deleting Blocklisted Word"), + BLOCKLISTED_WORDS_INVALID_LANGUAGE_CODE("KER-MSD-202", "Invalid language code"); /** * The error code. diff --git a/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/service/impl/BlocklistedWordsServiceImpl.java b/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/service/impl/BlocklistedWordsServiceImpl.java index 18d1e10f94d..0d04022539c 100644 --- a/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/service/impl/BlocklistedWordsServiceImpl.java +++ b/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/service/impl/BlocklistedWordsServiceImpl.java @@ -60,7 +60,7 @@ import io.mosip.kernel.masterdata.validator.FilterColumnValidator; import io.mosip.kernel.masterdata.validator.FilterTypeEnum; import io.mosip.kernel.masterdata.validator.FilterTypeValidator; - +import org.springframework.beans.factory.annotation.Value; /** * Service implementation class for {@link BlocklistedWordsService}. * @@ -70,7 +70,8 @@ */ @Service public class BlocklistedWordsServiceImpl implements BlocklistedWordsService { - + @Value("${mosip.supported-languages}") + private String supportedLanguages; /** * Autowired reference for {@link BlocklistedWordsRepository}. */ @@ -119,6 +120,7 @@ public class BlocklistedWordsServiceImpl implements BlocklistedWordsService { @Cacheable(value = "blocklisted-words", key = "'blocklistedword'.concat('-').concat(#langCode)", condition="#langCode != null") @Override public BlocklistedWordsResponseDto getAllBlocklistedWordsBylangCode(String langCode) { + validateLangCode(langCode); List words = null; try { words = blocklistedWordsRepository.findAllByLangCode(langCode); @@ -134,7 +136,13 @@ public BlocklistedWordsResponseDto getAllBlocklistedWordsBylangCode(String langC throw new DataNotFoundException(BlocklistedWordsErrorCode.NO_BLOCKLISTED_WORDS_FOUND.getErrorCode(), BlocklistedWordsErrorCode.NO_BLOCKLISTED_WORDS_FOUND.getErrorMessage()); } - + private void validateLangCode(String langCode) { + String[] supportedLanguagesArray = supportedLanguages.split(","); + if (!Arrays.asList(supportedLanguagesArray).contains(langCode)) { + throw new DataNotFoundException(BlocklistedWordsErrorCode.BLOCKLISTED_WORDS_INVALID_LANGUAGE_CODE.getErrorCode(), + BlocklistedWordsErrorCode.BLOCKLISTED_WORDS_INVALID_LANGUAGE_CODE.getErrorMessage()); + } + } /* * (non-Javadoc) * diff --git a/admin/kernel-masterdata-service/src/main/resources/application-local1.properties b/admin/kernel-masterdata-service/src/main/resources/application-local1.properties index 6e439527aa8..67d318fbc89 100644 --- a/admin/kernel-masterdata-service/src/main/resources/application-local1.properties +++ b/admin/kernel-masterdata-service/src/main/resources/application-local1.properties @@ -38,6 +38,7 @@ auth.server.admin.offline.token.validate=false aplication.configuration.level.version=1.1.5 mosip.optional-languages= mosip.mandatory-languages=eng +mosip.supported-languages=eng,ara,fra auth.server.validate.url=https://dev.mosip.net/v1/authmanager/authorize/admin/validateToken auth.server.admin.validate.url=https://dev.mosip.net/v1/authmanager/authorize/admin/validateToken From 87cb0d43c7a72b969ce1509f01c67f49c961d8a8 Mon Sep 17 00:00:00 2001 From: Yash S <119652212+yashmsonkusare@users.noreply.github.com> Date: Thu, 4 Apr 2024 17:21:30 +0530 Subject: [PATCH 4/4] MOSIP-30099:Added the code to create the id as provided in the request and if not will generate new randomId Signed-off-by: Yash S <119652212+yashmsonkusare@users.noreply.github.com> --- .../service/impl/MachineSpecificationServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/service/impl/MachineSpecificationServiceImpl.java b/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/service/impl/MachineSpecificationServiceImpl.java index 591a4c7b830..26db3a9ee31 100644 --- a/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/service/impl/MachineSpecificationServiceImpl.java +++ b/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/service/impl/MachineSpecificationServiceImpl.java @@ -124,7 +124,7 @@ public IdAndLanguageCodeID createMachineSpecification(MachineSpecificationDto ma try { - String uniqueId = generateId(); + String uniqueId = machineSpecification.getId() != null ? machineSpecification.getId() : generateId(); machineSpecification.setId(uniqueId); MachineSpecification entity = MetaDataUtils.setCreateMetaData(machineSpecification, MachineSpecification.class);