updated code

This commit is contained in:
rajesh
2025-02-25 13:42:38 +05:30
parent cca4c46976
commit 46e603af3e
19 changed files with 104 additions and 111 deletions

View File

@@ -11,7 +11,7 @@ import net.gepafin.tendermanagement.entities.*;
import net.gepafin.tendermanagement.enums.*; import net.gepafin.tendermanagement.enums.*;
import net.gepafin.tendermanagement.model.request.CompanyDocumentRequest; import net.gepafin.tendermanagement.model.request.CompanyDocumentRequest;
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest; import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
import net.gepafin.tendermanagement.model.response.CategoryResponse; import net.gepafin.tendermanagement.model.response.DocumentCategoryResponse;
import net.gepafin.tendermanagement.model.response.CompanyDocumentResponseBean; import net.gepafin.tendermanagement.model.response.CompanyDocumentResponseBean;
import net.gepafin.tendermanagement.model.response.DocumentResponseBean; import net.gepafin.tendermanagement.model.response.DocumentResponseBean;
import net.gepafin.tendermanagement.model.response.UploadFileOnAmazonS3Response; import net.gepafin.tendermanagement.model.response.UploadFileOnAmazonS3Response;
@@ -19,7 +19,6 @@ import net.gepafin.tendermanagement.repositories.CompanyDocumentRepository;
import net.gepafin.tendermanagement.repositories.DocumentRepository; import net.gepafin.tendermanagement.repositories.DocumentRepository;
import net.gepafin.tendermanagement.service.AmazonS3Service; import net.gepafin.tendermanagement.service.AmazonS3Service;
import net.gepafin.tendermanagement.service.ApplicationService; import net.gepafin.tendermanagement.service.ApplicationService;
import net.gepafin.tendermanagement.service.CategoryService;
import net.gepafin.tendermanagement.service.CompanyService; import net.gepafin.tendermanagement.service.CompanyService;
import net.gepafin.tendermanagement.service.impl.AmazonS3ServiceImpl; import net.gepafin.tendermanagement.service.impl.AmazonS3ServiceImpl;
import net.gepafin.tendermanagement.util.LoggingUtil; import net.gepafin.tendermanagement.util.LoggingUtil;
@@ -34,8 +33,6 @@ import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -63,7 +60,7 @@ public class CompanyDocumentDao {
private HttpServletRequest request; private HttpServletRequest request;
@Autowired @Autowired
private CategoryDao categoryDao; private DocumentCategoryDao categoryDao;
@Autowired @Autowired
private CompanyService companyService; private CompanyService companyService;
@@ -89,8 +86,8 @@ public class CompanyDocumentDao {
@Autowired @Autowired
private Validator validator; private Validator validator;
public List<CompanyDocumentResponseBean> uploadFileForCompany(HttpServletRequest request, Long userId, List<MultipartFile> files, Long companyId, Long categoryId, CompanyDocumentTypeEnum companyDocumentSourceTypeEnum, LocalDateTime expirationDate){ public List<CompanyDocumentResponseBean> uploadFileForCompany(HttpServletRequest request, Long userId, List<MultipartFile> files, Long companyId, Long documentCategoryId, CompanyDocumentTypeEnum companyDocumentSourceTypeEnum, LocalDateTime expirationDate){
CategoryEntity categoryEntity = categoryDao.validateCategory(categoryId); DocumentCategoryEntity categoryEntity = categoryDao.validateCategory(documentCategoryId);
validator.validateUserWithCompany(request,companyId); validator.validateUserWithCompany(request,companyId);
UserWithCompanyEntity userWithCompanyEntity=companyService.getUserWithCompany(userId,companyId); UserWithCompanyEntity userWithCompanyEntity=companyService.getUserWithCompany(userId,companyId);
@@ -159,8 +156,8 @@ public class CompanyDocumentDao {
public CompanyDocumentResponseBean convertToCompanyDocumentResponseBean(CompanyDocumentEntity entity) { public CompanyDocumentResponseBean convertToCompanyDocumentResponseBean(CompanyDocumentEntity entity) {
CompanyDocumentResponseBean responseBean = new CompanyDocumentResponseBean(); CompanyDocumentResponseBean responseBean = new CompanyDocumentResponseBean();
CategoryEntity categoryEntity = entity.getCategoryEntity(); DocumentCategoryEntity categoryEntity = entity.getCategoryEntity();
CategoryResponse responseCategory = categoryDao.convertToResponseBean(categoryEntity); DocumentCategoryResponse responseCategory = categoryDao.convertToResponseBean(categoryEntity);
responseBean.setId(entity.getId()); responseBean.setId(entity.getId());
responseBean.setName(entity.getFileName()); responseBean.setName(entity.getFileName());
responseBean.setType(CompanyDocumentTypeEnum.valueOf(entity.getType())); responseBean.setType(CompanyDocumentTypeEnum.valueOf(entity.getType()));
@@ -194,7 +191,7 @@ public class CompanyDocumentDao {
} }
} }
if (companyDocumentRequest.getCategoryId() != null && companyDocumentRequest.getCategoryId() >0) { if (companyDocumentRequest.getCategoryId() != null && companyDocumentRequest.getCategoryId() >0) {
CategoryEntity categoryEntity = categoryDao.validateCategory(companyDocumentRequest.getCategoryId()); DocumentCategoryEntity categoryEntity = categoryDao.validateCategory(companyDocumentRequest.getCategoryId());
setIfUpdated(companyDocumentEntity::getCategoryEntity, companyDocumentEntity::setCategoryEntity, categoryEntity); setIfUpdated(companyDocumentEntity::getCategoryEntity, companyDocumentEntity::setCategoryEntity, categoryEntity);
} }
companyDocumentRepository.save(companyDocumentEntity); companyDocumentRepository.save(companyDocumentEntity);

View File

@@ -3,15 +3,13 @@ package net.gepafin.tendermanagement.dao;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import net.gepafin.tendermanagement.config.Translator; import net.gepafin.tendermanagement.config.Translator;
import net.gepafin.tendermanagement.constants.GepafinConstant; import net.gepafin.tendermanagement.constants.GepafinConstant;
import net.gepafin.tendermanagement.entities.CategoryEntity; import net.gepafin.tendermanagement.entities.DocumentCategoryEntity;
import net.gepafin.tendermanagement.entities.CompanyDocumentEntity; import net.gepafin.tendermanagement.entities.CompanyDocumentEntity;
import net.gepafin.tendermanagement.entities.FaqEntity;
import net.gepafin.tendermanagement.entities.HubEntity;
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum; import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
import net.gepafin.tendermanagement.model.request.CategoryRequest; import net.gepafin.tendermanagement.model.request.DocumentCategoryRequest;
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest; import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
import net.gepafin.tendermanagement.model.response.CategoryResponse; import net.gepafin.tendermanagement.model.response.DocumentCategoryResponse;
import net.gepafin.tendermanagement.repositories.CategoryRepository; import net.gepafin.tendermanagement.repositories.DocumentCategoryRepository;
import net.gepafin.tendermanagement.repositories.CompanyDocumentRepository; import net.gepafin.tendermanagement.repositories.CompanyDocumentRepository;
import net.gepafin.tendermanagement.util.LoggingUtil; import net.gepafin.tendermanagement.util.LoggingUtil;
import net.gepafin.tendermanagement.util.Utils; import net.gepafin.tendermanagement.util.Utils;
@@ -26,10 +24,10 @@ import java.util.List;
import static net.gepafin.tendermanagement.util.Utils.setIfUpdated; import static net.gepafin.tendermanagement.util.Utils.setIfUpdated;
@Component @Component
public class CategoryDao { public class DocumentCategoryDao {
@Autowired @Autowired
private CategoryRepository categoryRepository; private DocumentCategoryRepository categoryRepository;
@Autowired @Autowired
private LoggingUtil loggingUtil; private LoggingUtil loggingUtil;
@@ -40,9 +38,9 @@ public class CategoryDao {
@Autowired @Autowired
private CompanyDocumentRepository companyDocumentRepository; private CompanyDocumentRepository companyDocumentRepository;
public CategoryResponse createDocumentCategory(HttpServletRequest request, CategoryRequest categoryRequest){ public DocumentCategoryResponse createDocumentCategory(HttpServletRequest request, DocumentCategoryRequest categoryRequest){
CategoryEntity entity = createCategoryEntity(new CategoryEntity(),categoryRequest); DocumentCategoryEntity entity = createCategoryEntity(new DocumentCategoryEntity(),categoryRequest);
categoryRepository.save(entity); categoryRepository.save(entity);
/** This code is responsible for adding a version history log for the "Create Company Document Category" operation. **/ /** This code is responsible for adding a version history log for the "Create Company Document Category" operation. **/
@@ -51,15 +49,15 @@ public class CategoryDao {
return convertToResponseBean(entity); return convertToResponseBean(entity);
} }
public CategoryEntity createCategoryEntity(CategoryEntity entity,CategoryRequest companyDocumentCategoryRequest){ public DocumentCategoryEntity createCategoryEntity(DocumentCategoryEntity entity, DocumentCategoryRequest companyDocumentCategoryRequest){
entity.setCategoryName(companyDocumentCategoryRequest.getCategoryName()); entity.setCategoryName(companyDocumentCategoryRequest.getCategoryName());
entity.setDescription(companyDocumentCategoryRequest.getDescription()); entity.setDescription(companyDocumentCategoryRequest.getDescription());
entity.setIsDeleted(false); entity.setIsDeleted(false);
return entity; return entity;
} }
public CategoryResponse convertToResponseBean(CategoryEntity entity){ public DocumentCategoryResponse convertToResponseBean(DocumentCategoryEntity entity){
CategoryResponse response = new CategoryResponse(); DocumentCategoryResponse response = new DocumentCategoryResponse();
response.setId(entity.getId()); response.setId(entity.getId());
response.setCategoryName(entity.getCategoryName()); response.setCategoryName(entity.getCategoryName());
response.setDescription(entity.getDescription()); response.setDescription(entity.getDescription());
@@ -68,24 +66,24 @@ public class CategoryDao {
return response; return response;
} }
public CategoryResponse getDocumentCategoryById(HttpServletRequest request, Long id){ public DocumentCategoryResponse getDocumentCategoryById(HttpServletRequest request, Long id){
return convertToResponseBean(validateCategory(id)); return convertToResponseBean(validateCategory(id));
} }
public CategoryEntity validateCategory(Long id) { public DocumentCategoryEntity validateCategory(Long id) {
return categoryRepository.findById(id) return categoryRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, .orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,
Translator.toLocale(GepafinConstant.DOCUMENT_CATEGORY_NOT_FOUND))); Translator.toLocale(GepafinConstant.DOCUMENT_CATEGORY_NOT_FOUND)));
} }
public void deleteCategory(HttpServletRequest request,Long id) { public void deleteDocumentCategory(HttpServletRequest request,Long id) {
CategoryEntity entity = validateCategory(id); DocumentCategoryEntity entity = validateCategory(id);
List<CompanyDocumentEntity> companyDocumentEntities = companyDocumentRepository.findByCategoryEntityId(id); List<CompanyDocumentEntity> companyDocumentEntities = companyDocumentRepository.findByCategoryEntityId(id);
if (!companyDocumentEntities.isEmpty()){ if (!companyDocumentEntities.isEmpty()){
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.CATEGORY_CANNOT_BE_DELETED)); throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.CATEGORY_CANNOT_BE_DELETED));
} }
CategoryEntity oldCategoryEntity = Utils.getClonedEntityForData(entity); DocumentCategoryEntity oldCategoryEntity = Utils.getClonedEntityForData(entity);
entity.setIsDeleted(true); entity.setIsDeleted(true);
categoryRepository.save(entity); categoryRepository.save(entity);
@@ -94,17 +92,17 @@ public class CategoryDao {
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldCategoryEntity).newData(entity).build()); VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.SOFT_DELETE).oldData(oldCategoryEntity).newData(entity).build());
} }
public CategoryResponse updateCategory(HttpServletRequest request,Long id , CategoryRequest categoryRequest){ public DocumentCategoryResponse updateDocumentCategory(HttpServletRequest request, Long id , DocumentCategoryRequest categoryRequest){
CategoryEntity entity = validateCategory(id); DocumentCategoryEntity entity = validateCategory(id);
CategoryEntity oldCategoryEntity = Utils.getClonedEntityForData(entity); DocumentCategoryEntity oldCategoryEntity = Utils.getClonedEntityForData(entity);
CategoryEntity newCategoryEntity = updateCategoryEntity(entity, categoryRequest); DocumentCategoryEntity newCategoryEntity = updateCategoryEntity(entity, categoryRequest);
/** This code is responsible for adding a version history log for the "Update Category" operation. **/ /** This code is responsible for adding a version history log for the "Update Category" operation. **/
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldCategoryEntity).newData(newCategoryEntity).build()); loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldCategoryEntity).newData(newCategoryEntity).build());
return convertToResponseBean(entity); return convertToResponseBean(entity);
} }
public CategoryEntity updateCategoryEntity(CategoryEntity entity , CategoryRequest categoryRequest){ public DocumentCategoryEntity updateCategoryEntity(DocumentCategoryEntity entity , DocumentCategoryRequest categoryRequest){
setIfUpdated(entity::getCategoryName, entity::setCategoryName, categoryRequest.getCategoryName()); setIfUpdated(entity::getCategoryName, entity::setCategoryName, categoryRequest.getCategoryName());
setIfUpdated(entity::getDescription, entity::setDescription, categoryRequest.getDescription()); setIfUpdated(entity::getDescription, entity::setDescription, categoryRequest.getDescription());

View File

@@ -39,8 +39,8 @@ public class CompanyDocumentEntity extends BaseEntity {
private UserWithCompanyEntity userWithCompany; private UserWithCompanyEntity userWithCompany;
@ManyToOne @ManyToOne
@JoinColumn(name = "CATEGORY_ID") @JoinColumn(name = "DOCUMENT_CATEGORY_ID")
private CategoryEntity categoryEntity; private DocumentCategoryEntity categoryEntity;
} }

View File

@@ -6,9 +6,9 @@ import jakarta.persistence.Table;
import lombok.Data; import lombok.Data;
@Entity @Entity
@Table(name = "category") @Table(name = "document_category")
@Data @Data
public class CategoryEntity extends BaseEntity { public class DocumentCategoryEntity extends BaseEntity {
@Column(name = "CATEGORY_NAME") @Column(name = "CATEGORY_NAME")
private String categoryName; private String categoryName;

View File

@@ -206,7 +206,8 @@ public enum UserActionContextEnum {
GET_DOCUMENT_CATEGORY("GET_DOCUMENT_CATEGORY"), GET_DOCUMENT_CATEGORY("GET_DOCUMENT_CATEGORY"),
DELETE_DOCUMENT_CATEGORY("DELETE_DOCUMENT_CATEGORY"), DELETE_DOCUMENT_CATEGORY("DELETE_DOCUMENT_CATEGORY"),
UPDATE_DOCUMENT_CATEGORY("UPDATE_DOCUMENT_CATEGORY"), UPDATE_DOCUMENT_CATEGORY("UPDATE_DOCUMENT_CATEGORY"),
COMPANY_DOCUMENT_EXPIRATION_SCHEDULER("COMPANY_DOCUMENT_EXPIRATION_SCHEDULER"); COMPANY_DOCUMENT_EXPIRATION_SCHEDULER("COMPANY_DOCUMENT_EXPIRATION_SCHEDULER"),
GET_ALL_ASSIGNED_APPLICATION_BY_PAGINATION("GET_ALL_ASSIGNED_APPLICATION_BY_PAGINATION"), GET_ALL_ASSIGNED_APPLICATION_BY_PAGINATION("GET_ALL_ASSIGNED_APPLICATION_BY_PAGINATION"),
GET_ALL_APPLICATION_AMENDMENT_BY_PAGINATION("GET_ALL_APPLICATION_AMENDMENT_BY_PAGINATION"), GET_ALL_APPLICATION_AMENDMENT_BY_PAGINATION("GET_ALL_APPLICATION_AMENDMENT_BY_PAGINATION"),
GET_ALL_USER_ACTION_BY_PAGINATION("GET_ALL_USER_ACTION_BY_PAGINATION"), GET_ALL_USER_ACTION_BY_PAGINATION("GET_ALL_USER_ACTION_BY_PAGINATION"),

View File

@@ -3,7 +3,7 @@ package net.gepafin.tendermanagement.model.request;
import lombok.Data; import lombok.Data;
@Data @Data
public class CategoryRequest { public class DocumentCategoryRequest {
private String categoryName; private String categoryName;
private String description; private String description;
} }

View File

@@ -24,6 +24,6 @@ public class CompanyDocumentResponseBean extends BaseBean {
private Long userWithCompanyId; private Long userWithCompanyId;
private CategoryResponse category; private DocumentCategoryResponse category;
} }

View File

@@ -4,7 +4,7 @@ import lombok.Data;
import net.gepafin.tendermanagement.model.BaseBean; import net.gepafin.tendermanagement.model.BaseBean;
@Data @Data
public class CategoryResponse extends BaseBean { public class DocumentCategoryResponse extends BaseBean {
private String categoryName; private String categoryName;
private String description; private String description;

View File

@@ -1,9 +1,9 @@
package net.gepafin.tendermanagement.repositories; package net.gepafin.tendermanagement.repositories;
import net.gepafin.tendermanagement.entities.CategoryEntity; import net.gepafin.tendermanagement.entities.DocumentCategoryEntity;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@Repository @Repository
public interface CategoryRepository extends JpaRepository<CategoryEntity,Long> { public interface DocumentCategoryRepository extends JpaRepository<DocumentCategoryEntity,Long> {
} }

View File

@@ -1,13 +0,0 @@
package net.gepafin.tendermanagement.service;
import jakarta.servlet.http.HttpServletRequest;
import net.gepafin.tendermanagement.model.request.CategoryRequest;
import net.gepafin.tendermanagement.model.response.CategoryResponse;
public interface CategoryService {
CategoryResponse createDocumentCategory(HttpServletRequest request, CategoryRequest categoryRequest);
CategoryResponse getDocumentCategoryById(HttpServletRequest request,Long id);
void deleteCategory(HttpServletRequest request,Long id);
CategoryResponse updateCategory(HttpServletRequest request, Long id, CategoryRequest categoryRequest);
}

View File

@@ -12,7 +12,7 @@ import java.time.LocalDateTime;
import java.util.List; import java.util.List;
public interface CompanyDocumentService { public interface CompanyDocumentService {
List<CompanyDocumentResponseBean> uploadFileForCompany(HttpServletRequest request, List<MultipartFile> files, Long companyId, Long categoryId, CompanyDocumentTypeEnum documentSourceTypeEnum, LocalDateTime expirationDate); List<CompanyDocumentResponseBean> uploadFileForCompany(HttpServletRequest request, List<MultipartFile> files, Long companyId, Long documentCategoryId, CompanyDocumentTypeEnum documentSourceTypeEnum, LocalDateTime expirationDate);
CompanyDocumentResponseBean updateCompanyDocument(HttpServletRequest httpServletRequest, Long companyDocumentId, CompanyDocumentRequest companyDocumentRequest); CompanyDocumentResponseBean updateCompanyDocument(HttpServletRequest httpServletRequest, Long companyDocumentId, CompanyDocumentRequest companyDocumentRequest);

View File

@@ -0,0 +1,13 @@
package net.gepafin.tendermanagement.service;
import jakarta.servlet.http.HttpServletRequest;
import net.gepafin.tendermanagement.model.request.DocumentCategoryRequest;
import net.gepafin.tendermanagement.model.response.DocumentCategoryResponse;
public interface DocumentCategoryService {
DocumentCategoryResponse createDocumentCategory(HttpServletRequest request, DocumentCategoryRequest categoryRequest);
DocumentCategoryResponse getDocumentCategoryById(HttpServletRequest request, Long id);
void deleteDocumentCategory(HttpServletRequest request,Long id);
DocumentCategoryResponse updateDocumentCategory(HttpServletRequest request, Long id, DocumentCategoryRequest categoryRequest);
}

View File

@@ -28,10 +28,10 @@ public class CompanyDocumentServiceImpl implements CompanyDocumentService {
private CompanyDocumentDao companyDocumentDao; private CompanyDocumentDao companyDocumentDao;
@Override @Override
public List<CompanyDocumentResponseBean> uploadFileForCompany(HttpServletRequest request, List<MultipartFile> files, Long companyId, Long categoryId , CompanyDocumentTypeEnum documentSourceTypeEnum, LocalDateTime expirationDate) { public List<CompanyDocumentResponseBean> uploadFileForCompany(HttpServletRequest request, List<MultipartFile> files, Long companyId, Long documentCategoryId , CompanyDocumentTypeEnum documentSourceTypeEnum, LocalDateTime expirationDate) {
Map<String, Object> userInfo = validator.getUserInfoFromToken(request); Map<String, Object> userInfo = validator.getUserInfoFromToken(request);
Long userId = validator.getUserId(userInfo); Long userId = validator.getUserId(userInfo);
return companyDocumentDao.uploadFileForCompany(request,userId,files,companyId,categoryId,documentSourceTypeEnum,expirationDate); return companyDocumentDao.uploadFileForCompany(request,userId,files,companyId,documentCategoryId,documentSourceTypeEnum,expirationDate);
} }
@Override @Override

View File

@@ -1,50 +1,50 @@
package net.gepafin.tendermanagement.service.impl; package net.gepafin.tendermanagement.service.impl;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import net.gepafin.tendermanagement.dao.CategoryDao; import net.gepafin.tendermanagement.dao.DocumentCategoryDao;
import net.gepafin.tendermanagement.model.request.CategoryRequest; import net.gepafin.tendermanagement.model.request.DocumentCategoryRequest;
import net.gepafin.tendermanagement.model.response.CategoryResponse; import net.gepafin.tendermanagement.model.response.DocumentCategoryResponse;
import net.gepafin.tendermanagement.service.CategoryService; import net.gepafin.tendermanagement.service.DocumentCategoryService;
import net.gepafin.tendermanagement.util.Validator; import net.gepafin.tendermanagement.util.Validator;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@Service @Service
public class CategoryServiceImpl implements CategoryService { public class DocumentCategoryServiceImpl implements DocumentCategoryService {
@Autowired @Autowired
CategoryDao categoryDao; DocumentCategoryDao categoryDao;
@Autowired @Autowired
private Validator validator; private Validator validator;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public CategoryResponse createDocumentCategory(HttpServletRequest request, CategoryRequest categoryRequest) { public DocumentCategoryResponse createDocumentCategory(HttpServletRequest request, DocumentCategoryRequest categoryRequest) {
validator.validateUser(request); validator.validateUser(request);
return categoryDao.createDocumentCategory(request,categoryRequest); return categoryDao.createDocumentCategory(request,categoryRequest);
} }
@Override @Override
@Transactional(readOnly = true) @Transactional(readOnly = true)
public CategoryResponse getDocumentCategoryById(HttpServletRequest request, Long id) { public DocumentCategoryResponse getDocumentCategoryById(HttpServletRequest request, Long id) {
validator.validateUser(request); validator.validateUser(request);
return categoryDao.getDocumentCategoryById(request,id); return categoryDao.getDocumentCategoryById(request,id);
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void deleteCategory(HttpServletRequest request, Long id) { public void deleteDocumentCategory(HttpServletRequest request, Long id) {
validator.validateUser(request); validator.validateUser(request);
categoryDao.deleteCategory(request,id); categoryDao.deleteDocumentCategory(request,id);
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public CategoryResponse updateCategory(HttpServletRequest request, Long id, CategoryRequest categoryRequest) { public DocumentCategoryResponse updateDocumentCategory(HttpServletRequest request, Long id, DocumentCategoryRequest categoryRequest) {
validator.validateUser(request); validator.validateUser(request);
return categoryDao.updateCategory(request,id,categoryRequest); return categoryDao.updateDocumentCategory(request,id,categoryRequest);
} }

View File

@@ -40,7 +40,7 @@ public interface CompanyDocumentApi {
@PostMapping(value = "/company/{companyId}/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @PostMapping(value = "/company/{companyId}/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
default ResponseEntity<Response<List<CompanyDocumentResponseBean>>> uploadFileForCompany(HttpServletRequest httpServletRequest, default ResponseEntity<Response<List<CompanyDocumentResponseBean>>> uploadFileForCompany(HttpServletRequest httpServletRequest,
@Parameter(description = "Company Id", required = true) @PathVariable("companyId") Long companyId, @Parameter(description = "Company Id", required = true) @PathVariable("companyId") Long companyId,
@Parameter(description = "The Category id", required = true) @RequestParam(value = "categoryId", required = false) Long categoryId, @Parameter(description = "The Document Category id", required = true) @RequestParam(value = "documentCategoryId", required = false) Long documentCategoryId,
@RequestParam("documentType") CompanyDocumentTypeEnum documentTypeEnum, @RequestParam("documentType") CompanyDocumentTypeEnum documentTypeEnum,
@RequestParam("expirationDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime expirationDate, @RequestParam("expirationDate") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime expirationDate,
@RequestParam("file") List<MultipartFile> files) { @RequestParam("file") List<MultipartFile> files) {

View File

@@ -7,20 +7,17 @@ import io.swagger.v3.oas.annotations.media.ExampleObject;
import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponse;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import net.gepafin.tendermanagement.model.request.CategoryRequest; import net.gepafin.tendermanagement.model.request.DocumentCategoryRequest;
import net.gepafin.tendermanagement.model.request.HubReq; import net.gepafin.tendermanagement.model.response.DocumentCategoryResponse;
import net.gepafin.tendermanagement.model.response.CategoryResponse;
import net.gepafin.tendermanagement.model.response.HubResponseBean;
import net.gepafin.tendermanagement.model.util.Response; import net.gepafin.tendermanagement.model.util.Response;
import net.gepafin.tendermanagement.web.rest.api.errors.ErrorConstants; import net.gepafin.tendermanagement.web.rest.api.errors.ErrorConstants;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@Validated @Validated
public interface CategoryApi { public interface DocumentCategoryApi {
@Operation(summary = "Api to create document category", responses = { @Operation(summary = "Api to create document category", responses = {
@ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "200", description = "OK"),
@@ -32,9 +29,9 @@ public interface CategoryApi {
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) @ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) }))
}) })
@PostMapping(value = "", produces = "application/json") @PostMapping(value = "", produces = "application/json")
ResponseEntity<Response<CategoryResponse>> createDocumentCategory(HttpServletRequest request, ResponseEntity<Response<DocumentCategoryResponse>> createDocumentCategory(HttpServletRequest request,
@Parameter(description = "Company Document Category request object", required = true) @Parameter(description = "Company Document Category request object", required = true)
@Valid @RequestBody CategoryRequest categoryRequest); @Valid @RequestBody DocumentCategoryRequest categoryRequest);
@Operation(summary = "Api to get document category by id", responses = { @Operation(summary = "Api to get document category by id", responses = {
@@ -47,8 +44,8 @@ public interface CategoryApi {
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) @ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) }))
}) })
@GetMapping(value = "/{id}", produces = "application/json") @GetMapping(value = "/{id}", produces = "application/json")
ResponseEntity<Response<CategoryResponse>> getDocumentCategoryById(HttpServletRequest request, ResponseEntity<Response<DocumentCategoryResponse>> getDocumentCategoryById(HttpServletRequest request,
@Parameter(description = "The category id", required = true) @Parameter(description = "The document category id", required = true)
@PathVariable("id") Long id); @PathVariable("id") Long id);
@@ -62,8 +59,8 @@ public interface CategoryApi {
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) @ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) }))
}) })
@DeleteMapping(value = "/{id}") @DeleteMapping(value = "/{id}")
ResponseEntity<Response<Void>> deleteCategory(HttpServletRequest request, ResponseEntity<Response<Void>> deleteDocumentCategory(HttpServletRequest request,
@Parameter(description = "The category id", required = true) @Parameter(description = "The document category id", required = true)
@PathVariable("id") Long id); @PathVariable("id") Long id);
@@ -77,9 +74,9 @@ public interface CategoryApi {
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) @ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) }))
}) })
@PutMapping(value = "/{id}", produces = "application/json") @PutMapping(value = "/{id}", produces = "application/json")
ResponseEntity<Response<CategoryResponse>> updateCategory(HttpServletRequest request, ResponseEntity<Response<DocumentCategoryResponse>> updateDocumentCategory(HttpServletRequest request,
@Parameter(description = "The category id", required = true) @Parameter(description = "The document category id", required = true)
@PathVariable("id") Long id, @PathVariable("id") Long id,
@Parameter(description = "Category request object", required = true) @Parameter(description = "Category request object", required = true)
@Valid @RequestBody CategoryRequest categoryRequest); @Valid @RequestBody DocumentCategoryRequest categoryRequest);
} }

View File

@@ -41,7 +41,7 @@ public class CompanyDocumentApiControlller implements CompanyDocumentApi {
private CompanyDocumentDao companyDocumentDao; private CompanyDocumentDao companyDocumentDao;
@Override @Override
public ResponseEntity<Response<List<CompanyDocumentResponseBean>>> uploadFileForCompany(HttpServletRequest request, Long companyId, Long categoryId, CompanyDocumentTypeEnum companyDocumentSourceTypeEnum, LocalDateTime expirationDate, public ResponseEntity<Response<List<CompanyDocumentResponseBean>>> uploadFileForCompany(HttpServletRequest request, Long companyId, Long documentCategoryId, CompanyDocumentTypeEnum companyDocumentSourceTypeEnum, LocalDateTime expirationDate,
List<MultipartFile> files) { List<MultipartFile> files) {
try { try {
UserActionContextEnum userActionContext = companyDocumentDao.getUserActionContextEnum(companyDocumentSourceTypeEnum); UserActionContextEnum userActionContext = companyDocumentDao.getUserActionContextEnum(companyDocumentSourceTypeEnum);
@@ -49,7 +49,7 @@ public class CompanyDocumentApiControlller implements CompanyDocumentApi {
/** This code is responsible for creating user action logs for the "upload document for company" operation. **/ /** This code is responsible for creating user action logs for the "upload document for company" operation. **/
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPLOAD).actionContext(userActionContext).build()); loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPLOAD).actionContext(userActionContext).build());
List<CompanyDocumentResponseBean> responseBeans = companyDocumentService.uploadFileForCompany(request,files, companyId, categoryId ,companyDocumentSourceTypeEnum,expirationDate); List<CompanyDocumentResponseBean> responseBeans = companyDocumentService.uploadFileForCompany(request,files, companyId, documentCategoryId ,companyDocumentSourceTypeEnum,expirationDate);
return ResponseEntity.status(HttpStatus.CREATED) return ResponseEntity.status(HttpStatus.CREATED)
.body(new Response<List<CompanyDocumentResponseBean>>(responseBeans, Status.SUCCESS, Translator.toLocale(GepafinConstant.FILES_UPLOADED_MSG))); .body(new Response<List<CompanyDocumentResponseBean>>(responseBeans, Status.SUCCESS, Translator.toLocale(GepafinConstant.FILES_UPLOADED_MSG)));
} catch (CustomValidationException ex) { } catch (CustomValidationException ex) {

View File

@@ -6,14 +6,13 @@ import net.gepafin.tendermanagement.config.Translator;
import net.gepafin.tendermanagement.constants.GepafinConstant; import net.gepafin.tendermanagement.constants.GepafinConstant;
import net.gepafin.tendermanagement.enums.UserActionContextEnum; import net.gepafin.tendermanagement.enums.UserActionContextEnum;
import net.gepafin.tendermanagement.enums.UserActionLogsEnum; import net.gepafin.tendermanagement.enums.UserActionLogsEnum;
import net.gepafin.tendermanagement.model.request.CategoryRequest; import net.gepafin.tendermanagement.model.request.DocumentCategoryRequest;
import net.gepafin.tendermanagement.model.request.UserActionRequest; import net.gepafin.tendermanagement.model.request.UserActionRequest;
import net.gepafin.tendermanagement.model.response.CategoryResponse; import net.gepafin.tendermanagement.model.response.DocumentCategoryResponse;
import net.gepafin.tendermanagement.model.response.HubResponseBean;
import net.gepafin.tendermanagement.model.util.Response; import net.gepafin.tendermanagement.model.util.Response;
import net.gepafin.tendermanagement.service.CategoryService; import net.gepafin.tendermanagement.service.DocumentCategoryService;
import net.gepafin.tendermanagement.util.LoggingUtil; import net.gepafin.tendermanagement.util.LoggingUtil;
import net.gepafin.tendermanagement.web.rest.api.CategoryApi; import net.gepafin.tendermanagement.web.rest.api.DocumentCategoryApi;
import net.gepafin.tendermanagement.web.rest.api.errors.Status; import net.gepafin.tendermanagement.web.rest.api.errors.Status;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
@@ -22,22 +21,22 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@RequestMapping("${openapi.gepafin.base-path:/v1/category}") @RequestMapping("${openapi.gepafin.base-path:/v1/documentCategory}")
public class CategoryApiController implements CategoryApi { public class DocumentCategoryApiController implements DocumentCategoryApi {
@Autowired @Autowired
LoggingUtil loggingUtil; LoggingUtil loggingUtil;
@Autowired @Autowired
CategoryService categoryService; DocumentCategoryService categoryService;
public ResponseEntity<Response<CategoryResponse>> createDocumentCategory(HttpServletRequest request, @Valid CategoryRequest categoryRequest){ public ResponseEntity<Response<DocumentCategoryResponse>> createDocumentCategory(HttpServletRequest request, @Valid DocumentCategoryRequest categoryRequest){
/** This code is responsible for creating user action logs for the "Create Document category" operation. **/ /** This code is responsible for creating user action logs for the "Create Document category" operation. **/
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT) loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.INSERT)
.actionContext(UserActionContextEnum.CREATE_DOCUMENT_CATEGORY).build()); .actionContext(UserActionContextEnum.CREATE_DOCUMENT_CATEGORY).build());
CategoryResponse categoryResponse = categoryService.createDocumentCategory(request,categoryRequest); DocumentCategoryResponse categoryResponse = categoryService.createDocumentCategory(request,categoryRequest);
return ResponseEntity.status(HttpStatus.CREATED) return ResponseEntity.status(HttpStatus.CREATED)
.body(new Response<>(categoryResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.DOCUMENT_CATEGORY_CREATE_SUCCESS))); .body(new Response<>(categoryResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.DOCUMENT_CATEGORY_CREATE_SUCCESS)));
@@ -45,37 +44,37 @@ public class CategoryApiController implements CategoryApi {
} }
@Override @Override
public ResponseEntity<Response<CategoryResponse>> getDocumentCategoryById(HttpServletRequest request, Long id) { public ResponseEntity<Response<DocumentCategoryResponse>> getDocumentCategoryById(HttpServletRequest request, Long id) {
/** This code is responsible for creating user action logs for the "get document category by id" operation. **/ /** This code is responsible for creating user action logs for the "get document category by id" operation. **/
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW) loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.VIEW)
.actionContext(UserActionContextEnum.GET_DOCUMENT_CATEGORY).build()); .actionContext(UserActionContextEnum.GET_DOCUMENT_CATEGORY).build());
CategoryResponse categoryResponse = categoryService.getDocumentCategoryById(request,id); DocumentCategoryResponse categoryResponse = categoryService.getDocumentCategoryById(request,id);
return ResponseEntity.status(HttpStatus.OK) return ResponseEntity.status(HttpStatus.OK)
.body(new Response<>(categoryResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.DOCUMENT_CATEGORY_GET_SUCCESS))); .body(new Response<>(categoryResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.DOCUMENT_CATEGORY_GET_SUCCESS)));
} }
@Override @Override
public ResponseEntity<Response<Void>> deleteCategory(HttpServletRequest request, Long id) { public ResponseEntity<Response<Void>> deleteDocumentCategory(HttpServletRequest request, Long id) {
/** This code is responsible for creating user action logs for the "Delete category" operation. **/ /** This code is responsible for creating user action logs for the "Delete category" operation. **/
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DELETE).actionContext(UserActionContextEnum.DELETE_DOCUMENT_CATEGORY).build()); loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DELETE).actionContext(UserActionContextEnum.DELETE_DOCUMENT_CATEGORY).build());
categoryService.deleteCategory(request,id); categoryService.deleteDocumentCategory(request,id);
return ResponseEntity.status(HttpStatus.OK) return ResponseEntity.status(HttpStatus.OK)
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.DOCUMENT_CATEGORY_DELETE_SUCCESS))); .body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.DOCUMENT_CATEGORY_DELETE_SUCCESS)));
} }
@Override @Override
public ResponseEntity<Response<CategoryResponse>> updateCategory(HttpServletRequest request, Long id, CategoryRequest categoryRequest) { public ResponseEntity<Response<DocumentCategoryResponse>> updateDocumentCategory(HttpServletRequest request, Long id, DocumentCategoryRequest categoryRequest) {
/** This code is responsible for "Updating Category details" operation. **/ /** This code is responsible for "Updating Category details" operation. **/
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE) loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE)
.actionContext(UserActionContextEnum.UPDATE_DOCUMENT_CATEGORY).build()); .actionContext(UserActionContextEnum.UPDATE_DOCUMENT_CATEGORY).build());
CategoryResponse categoryResponse = categoryService.updateCategory(request,id, categoryRequest); DocumentCategoryResponse categoryResponse = categoryService.updateDocumentCategory(request,id, categoryRequest);
return ResponseEntity.status(HttpStatus.OK) return ResponseEntity.status(HttpStatus.OK)
.body(new Response<>(categoryResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.DOCUMENT_CATEGORY_UPDATE_SUCCESS))); .body(new Response<>(categoryResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.DOCUMENT_CATEGORY_UPDATE_SUCCESS)));

View File

@@ -2430,9 +2430,9 @@
</changeSet> </changeSet>
<changeSet id="24-02-2025_RK_192024" author="Rajesh Khore"> <changeSet id="24-02-2025_RK_192024" author="Rajesh Khore">
<createTable tableName="category"> <createTable tableName="document_category">
<column name="id" type="INTEGER" autoIncrement="true"> <column name="id" type="INTEGER" autoIncrement="true">
<constraints primaryKey="true" nullable="false"/> <constraints primaryKey="true" primaryKeyName="document_category_pkey" nullable="false"/>
</column> </column>
<column name="CATEGORY_NAME" type="VARCHAR(255)"/> <column name="CATEGORY_NAME" type="VARCHAR(255)"/>
<column name="DESCRIPTION" type="TEXT"/> <column name="DESCRIPTION" type="TEXT"/>
@@ -2472,8 +2472,8 @@
<column name="COMPANY_ID" type="INTEGER"> <column name="COMPANY_ID" type="INTEGER">
<constraints nullable="true" foreignKeyName="fk_COMPANY_COMPANY_DOCUMENT" references="company(id)"/> <constraints nullable="true" foreignKeyName="fk_COMPANY_COMPANY_DOCUMENT" references="company(id)"/>
</column> </column>
<column name="CATEGORY_ID" type="INTEGER"> <column name="DOCUMENT_CATEGORY_ID" type="INTEGER">
<constraints nullable="true" foreignKeyName="fk_CATEGORY_COMPANY_DOCUMENT" references="category(id)"/> <constraints nullable="true" foreignKeyName="fk_DOCUMENT_CATEGORY_COMPANY_DOCUMENT" references="document_category(id)"/>
</column> </column>
</createTable> </createTable>
@@ -2525,6 +2525,7 @@
<changeSet id="24-02-2025_RK_125145" author="Rajesh Khore"> <changeSet id="24-02-2025_RK_125145" author="Rajesh Khore">
<sqlFile dbms="postgresql" <sqlFile dbms="postgresql"
path="db/dump/updated_json_template_for_notification_24_02_2025.sql"/> path="db/dump/updated_json_template_for_notification_24_02_2025.sql"/>
</changeSet>
<changeSet id="17-02-2025_PK_025237" author="Piyush Kag"> <changeSet id="17-02-2025_PK_025237" author="Piyush Kag">
<renameColumn tableName="call" <renameColumn tableName="call"
oldColumnName="product_id" oldColumnName="product_id"