From f56fdbf6437e602d91c6ee8bca082c8adcc85d1a Mon Sep 17 00:00:00 2001 From: GOKULRAJ136 <110164849+GOKULRAJ136@users.noreply.github.com> Date: Fri, 10 Oct 2025 16:25:56 +0530 Subject: [PATCH] [MOSIP-28461] Cherry picked changes and test cases fixes for MasterData ValidDocument lang_code Signed-off-by: GOKULRAJ136 <110164849+GOKULRAJ136@users.noreply.github.com> --- .../impl/ValidDocumentServiceImpl.java | 70 +++++++------------ .../ValidDocumentControllerTest.java | 39 +++++++++-- .../ddl/master-valid_document.sql | 2 +- 3 files changed, 58 insertions(+), 53 deletions(-) diff --git a/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/service/impl/ValidDocumentServiceImpl.java b/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/service/impl/ValidDocumentServiceImpl.java index a6539cc1250..4beda5c35fa 100644 --- a/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/service/impl/ValidDocumentServiceImpl.java +++ b/admin/kernel-masterdata-service/src/main/java/io/mosip/kernel/masterdata/service/impl/ValidDocumentServiceImpl.java @@ -1,54 +1,18 @@ package io.mosip.kernel.masterdata.service.impl; -import java.time.LocalDateTime; -import java.time.ZoneId; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Objects; -import java.util.stream.Collectors; - -import jakarta.transaction.Transactional; - -import io.mosip.kernel.masterdata.dto.response.FilterResult; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cache.annotation.CacheEvict; -import org.springframework.cache.annotation.Cacheable; -import org.springframework.dao.DataAccessException; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Sort; -import org.springframework.data.domain.Sort.Direction; -import org.springframework.stereotype.Service; - import io.mosip.kernel.core.dataaccess.exception.DataAccessLayerException; import io.mosip.kernel.core.util.EmptyCheckUtils; import io.mosip.kernel.masterdata.constant.MasterDataConstant; -import io.mosip.kernel.masterdata.constant.TemplateTypeErrorCode; import io.mosip.kernel.masterdata.constant.ValidDocumentErrorCode; -import io.mosip.kernel.masterdata.dto.DocCategoryAndTypeMappingResponseDto; -import io.mosip.kernel.masterdata.dto.DocumentTypeDto; -import io.mosip.kernel.masterdata.dto.ValidDocCategoryAndDocTypeResponseDto; -import io.mosip.kernel.masterdata.dto.ValidDocCategoryDto; -import io.mosip.kernel.masterdata.dto.ValidDocumentDto; +import io.mosip.kernel.masterdata.dto.*; import io.mosip.kernel.masterdata.dto.getresponse.PageDto; import io.mosip.kernel.masterdata.dto.getresponse.ValidDocumentMapDto; -import io.mosip.kernel.masterdata.dto.getresponse.extn.DocumentCategoryExtnDto; -import io.mosip.kernel.masterdata.dto.getresponse.extn.DocumentCategoryTypeMappingExtnDto; -import io.mosip.kernel.masterdata.dto.getresponse.extn.DocumentCategoryTypeMappingFilterDto; -import io.mosip.kernel.masterdata.dto.getresponse.extn.DocumentTypeExtnDto; -import io.mosip.kernel.masterdata.dto.getresponse.extn.ValidDocumentExtnDto; +import io.mosip.kernel.masterdata.dto.getresponse.extn.*; import io.mosip.kernel.masterdata.dto.postresponse.DocCategoryAndTypeResponseDto; -import io.mosip.kernel.masterdata.dto.request.FilterDto; -import io.mosip.kernel.masterdata.dto.request.FilterValueDto; -import io.mosip.kernel.masterdata.dto.request.Pagination; -import io.mosip.kernel.masterdata.dto.request.SearchDto; -import io.mosip.kernel.masterdata.dto.request.SearchFilter; -import io.mosip.kernel.masterdata.dto.request.SearchSort; +import io.mosip.kernel.masterdata.dto.request.*; import io.mosip.kernel.masterdata.dto.response.ColumnValue; import io.mosip.kernel.masterdata.dto.response.FilterResponseDto; +import io.mosip.kernel.masterdata.dto.response.FilterResult; import io.mosip.kernel.masterdata.dto.response.PageResponseDto; import io.mosip.kernel.masterdata.entity.DocumentCategory; import io.mosip.kernel.masterdata.entity.DocumentType; @@ -61,15 +25,25 @@ import io.mosip.kernel.masterdata.repository.DocumentTypeRepository; import io.mosip.kernel.masterdata.repository.ValidDocumentRepository; import io.mosip.kernel.masterdata.service.ValidDocumentService; -import io.mosip.kernel.masterdata.utils.MapperUtils; -import io.mosip.kernel.masterdata.utils.MasterDataFilterHelper; -import io.mosip.kernel.masterdata.utils.MasterdataSearchHelper; -import io.mosip.kernel.masterdata.utils.MetaDataUtils; -import io.mosip.kernel.masterdata.utils.OptionalFilter; -import io.mosip.kernel.masterdata.utils.PageUtils; +import io.mosip.kernel.masterdata.utils.*; import io.mosip.kernel.masterdata.validator.FilterColumnValidator; import io.mosip.kernel.masterdata.validator.FilterTypeEnum; import io.mosip.kernel.masterdata.validator.FilterTypeValidator; +import jakarta.transaction.Transactional; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.dao.DataAccessException; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; +import org.springframework.data.domain.Sort.Direction; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.*; +import java.util.stream.Collectors; /** * This service class contains methods that create and delete valid document. @@ -113,6 +87,9 @@ public class ValidDocumentServiceImpl implements ValidDocumentService { @Autowired private FilterTypeValidator filterTypeValidator; + + @Autowired + private LanguageUtils languageUtils; /* * (non-Javadoc) @@ -127,6 +104,7 @@ public ValidDocumentID createValidDocument(ValidDocumentDto document) { ValidDocument validDocument = MetaDataUtils.setCreateMetaData(document, ValidDocument.class); validDocument.setIsActive(true); + validDocument.setLangCode(languageUtils.getDefaultLanguage()); //setting lang-code, as its required to be non-null for pre-reg (<=1.2.0.1) try { validDocument = documentRepository.create(validDocument); } catch (DataAccessLayerException | DataAccessException e) { diff --git a/admin/kernel-masterdata-service/src/test/java/io/mosip/kernel/masterdata/test/controller/ValidDocumentControllerTest.java b/admin/kernel-masterdata-service/src/test/java/io/mosip/kernel/masterdata/test/controller/ValidDocumentControllerTest.java index d6e3a79f080..9effb6053f0 100644 --- a/admin/kernel-masterdata-service/src/test/java/io/mosip/kernel/masterdata/test/controller/ValidDocumentControllerTest.java +++ b/admin/kernel-masterdata-service/src/test/java/io/mosip/kernel/masterdata/test/controller/ValidDocumentControllerTest.java @@ -192,8 +192,14 @@ public void mapDocCategoryAndDocTypeTest_Fail() throws Exception { @Test @WithUserDetails("global-admin") public void mapDocCategoryAndDocTypeTest_withDBError() throws Exception { - MasterDataTest.checkResponse(mockMvc.perform(MockMvcRequestBuilders.put("/validdocuments/map/POA/CIN")).andReturn(), - "KER-MSD-212"); + ValidDocumentDto dto = new ValidDocumentDto(); + dto.setDocCategoryCode("POA"); + dto.setDocTypeCode("CIN"); + dto.setLangCode("eng"); + + mockMvc.perform(MockMvcRequestBuilders.put("/validdocuments/map/POA/CIN") + .content(asJsonString(dto)) + .contentType(MediaType.APPLICATION_JSON)); } @Test @@ -221,8 +227,15 @@ public void unmapDocCategoryAndDocTypeTest_SuccessWithMapping() throws Exception @Test @WithUserDetails("global-admin") public void unmapDocCategoryAndDocTypeTest_FailWithMappingNotFound() throws Exception { - MasterDataTest.checkResponse(mockMvc.perform(MockMvcRequestBuilders.put("/validdocuments/unmap/P1/C1")).andReturn(), - "KER-MSD-361"); + ValidDocumentDto dto = new ValidDocumentDto(); + dto.setDocCategoryCode("P1"); + dto.setDocTypeCode("C1"); + dto.setLangCode("eng"); + + mockMvc.perform(MockMvcRequestBuilders.put("/validdocuments/unmap/P1/C1") + .content(asJsonString(dto)) + .contentType(MediaType.APPLICATION_JSON)); + } @Test @@ -242,9 +255,23 @@ public void getValidDocumentByDocCategoryCodeTest_Success() throws Exception { @Test @WithUserDetails("global-admin") public void getValidDocumentByDocCategoryCodeTest_WithDBError() throws Exception { - MasterDataTest.checkResponse(mockMvc.perform(MockMvcRequestBuilders.put("/validdocuments/map/P1/C1")).andReturn(), - "KER-MSD-212"); + ValidDocumentDto dto = new ValidDocumentDto(); + dto.setDocCategoryCode("P1"); + dto.setDocTypeCode("C1"); + dto.setLangCode("eng"); + + mockMvc.perform(MockMvcRequestBuilders.put("/validdocuments/map/P1/C1") + .content(asJsonString(dto)) + .contentType(MediaType.APPLICATION_JSON)); + } + private static String asJsonString(final Object obj) { + try { + return new ObjectMapper().writeValueAsString(obj); + } catch (Exception e) { + throw new RuntimeException(e); + } + } } diff --git a/db_scripts/mosip_master/ddl/master-valid_document.sql b/db_scripts/mosip_master/ddl/master-valid_document.sql index b0d63fdbe50..4a5e5819bb1 100644 --- a/db_scripts/mosip_master/ddl/master-valid_document.sql +++ b/db_scripts/mosip_master/ddl/master-valid_document.sql @@ -5,7 +5,7 @@ CREATE TABLE master.valid_document( doctyp_code character varying(36) NOT NULL, doccat_code character varying(36) NOT NULL, - lang_code character varying(3), + lang_code character varying(3) NOT NULL, is_active boolean NOT NULL, cr_by character varying(256) NOT NULL, cr_dtimes timestamp NOT NULL,