Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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.
Expand Down Expand Up @@ -113,6 +87,9 @@ public class ValidDocumentServiceImpl implements ValidDocumentService {

@Autowired
private FilterTypeValidator filterTypeValidator;

@Autowired
private LanguageUtils languageUtils;

/*
* (non-Javadoc)
Expand All @@ -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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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);
}
}

}
2 changes: 1 addition & 1 deletion db_scripts/mosip_master/ddl/master-valid_document.sql
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down