created call api in 2 steps
This commit is contained in:
@@ -42,6 +42,7 @@ public class GepafinConstant {
|
|||||||
public static final String PASSWORD_MIN_LEN ="pass.min.len.msg";
|
public static final String PASSWORD_MIN_LEN ="pass.min.len.msg";
|
||||||
public static final String EMAIL_ALREADY_EXISTS = "email.already.exists";
|
public static final String EMAIL_ALREADY_EXISTS = "email.already.exists";
|
||||||
public static final String DOCUMENT_ID_NOT_FOUND="document.id.not.found";
|
public static final String DOCUMENT_ID_NOT_FOUND="document.id.not.found";
|
||||||
|
public static final String INVALID_DATE_MSG = "call.invalid.date";
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,28 +1,52 @@
|
|||||||
package net.gepafin.tendermanagement.dao;
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
import net.gepafin.tendermanagement.config.Translator;
|
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
|
||||||
import net.gepafin.tendermanagement.entities.*;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.entities.CallEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.CallTargetAudienceChecklistEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.DocumentEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.EvaluationCriteriaEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.FaqEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.LookUpDataEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
|
||||||
|
import net.gepafin.tendermanagement.entities.RegionEntity;
|
||||||
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||||
import net.gepafin.tendermanagement.enums.CallTypeEnum;
|
import net.gepafin.tendermanagement.enums.CallTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.*;
|
import net.gepafin.tendermanagement.model.request.CreateCallRequestStep1;
|
||||||
import net.gepafin.tendermanagement.model.response.*;
|
import net.gepafin.tendermanagement.model.request.CreateCallRequestStep2;
|
||||||
import net.gepafin.tendermanagement.repositories.*;
|
import net.gepafin.tendermanagement.model.request.DocumentReq;
|
||||||
|
import net.gepafin.tendermanagement.model.request.EvaluationCriteriaReq;
|
||||||
|
import net.gepafin.tendermanagement.model.request.FaqReq;
|
||||||
|
import net.gepafin.tendermanagement.model.request.LookUpDataReq;
|
||||||
|
import net.gepafin.tendermanagement.model.response.CreateCallResponseBean;
|
||||||
|
import net.gepafin.tendermanagement.model.response.DocumentResponseBean;
|
||||||
|
import net.gepafin.tendermanagement.model.response.EvaluationCriteriaResponseBean;
|
||||||
|
import net.gepafin.tendermanagement.model.response.FaqResponseBean;
|
||||||
|
import net.gepafin.tendermanagement.model.response.LookUpDataResponse;
|
||||||
|
import net.gepafin.tendermanagement.repositories.CallRepository;
|
||||||
|
import net.gepafin.tendermanagement.repositories.CallTargetAudienceChecklistRepository;
|
||||||
|
import net.gepafin.tendermanagement.repositories.DocumentRepository;
|
||||||
|
import net.gepafin.tendermanagement.repositories.EvaluationCriteriaRepository;
|
||||||
|
import net.gepafin.tendermanagement.repositories.FaqRepository;
|
||||||
|
import net.gepafin.tendermanagement.repositories.LookUpDataRepository;
|
||||||
|
import net.gepafin.tendermanagement.repositories.RegionRepository;
|
||||||
|
import net.gepafin.tendermanagement.repositories.UserRepository;
|
||||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
|
||||||
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.security.access.prepost.PreAuthorize;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
import net.gepafin.tendermanagement.entities.LookUpDataEntity.LookUpDataTypeEnum;
|
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class CallDao {
|
public class CallDao {
|
||||||
@@ -51,30 +75,23 @@ public class CallDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private UserRepository userRepository;
|
private UserRepository userRepository;
|
||||||
|
|
||||||
public CreateCallResponseBean createCall(CreateCallRequest createCallRequest, Long userId) {
|
public CreateCallResponseBean createCallStep1(CreateCallRequestStep1 createCallRequest, Long userId) {
|
||||||
CreateCallResponseBean createCallResponseBean = null;
|
CreateCallResponseBean createCallResponseBean = null;
|
||||||
CallEntity callEntity = convertToCallEntity(createCallRequest);
|
CallEntity callEntity = convertToCallEntity(createCallRequest);
|
||||||
List<EvaluationCriteriaEntity> evaluationCriteriaEntities = convertToEvaluationCriteriaEntities(
|
|
||||||
createCallRequest.getCriteria(), callEntity);
|
|
||||||
List<DocumentEntity> documentEntities = convertToDocumentEntities(createCallRequest.getDocs(), callEntity);
|
|
||||||
List<DocumentEntity> imageEntities = convertToDocumentEntities(createCallRequest.getImages(), callEntity);
|
|
||||||
List<FaqEntity> faqEntities = convertToFaqEntities(createCallRequest.getFaq(), callEntity, userId);
|
List<FaqEntity> faqEntities = convertToFaqEntities(createCallRequest.getFaq(), callEntity, userId);
|
||||||
List<LookUpDataResponse> amiedTo = convertLookUpDataEntities(createCallRequest.getAimedTo(), callEntity,
|
List<LookUpDataResponse> amiedTo = convertLookUpDataEntities(createCallRequest.getAimedTo(), callEntity,
|
||||||
LookUpDataTypeEnum.AIMED_TO);
|
LookUpDataTypeEnum.AIMED_TO);
|
||||||
List<LookUpDataResponse> checkList = convertLookUpDataEntities(createCallRequest.getAimedTo(), callEntity,
|
createCallResponseBean = assembleCreateCallResponseBean(callEntity, Collections.emptyList(),
|
||||||
LookUpDataTypeEnum.CHECKLIST);
|
Collections.emptyList(), faqEntities, Collections.emptyList());
|
||||||
createCallResponseBean = assembleCreateCallResponseBean(callEntity, evaluationCriteriaEntities,
|
|
||||||
documentEntities, faqEntities, imageEntities);
|
|
||||||
createCallResponseBean.setAimedTo(amiedTo);
|
createCallResponseBean.setAimedTo(amiedTo);
|
||||||
createCallResponseBean.setCheckList(checkList);
|
|
||||||
return createCallResponseBean;
|
return createCallResponseBean;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public CallEntity convertToCallEntity(CreateCallRequest createCallRequest) {
|
public CallEntity convertToCallEntity(CreateCallRequestStep1 createCallRequest) {
|
||||||
CallEntity callEntity = new CallEntity();
|
CallEntity callEntity = new CallEntity();
|
||||||
validateCallEntity(createCallRequest.getRegionId(), createCallRequest.getAmount());
|
validateCallEntity(createCallRequest);
|
||||||
RegionEntity region = regionRepository.findById(createCallRequest.getRegionId())
|
RegionEntity region = regionRepository.findById(createCallRequest.getRegionId())
|
||||||
.orElseThrow(() -> new ResourceNotFoundException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.REGION_NOT_FOUND)));
|
.orElseThrow(() -> new ResourceNotFoundException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.REGION_NOT_FOUND)));
|
||||||
callEntity.setRegion(region);
|
callEntity.setRegion(region);
|
||||||
@@ -86,12 +103,11 @@ public class CallDao {
|
|||||||
callEntity.setStatus(String.valueOf(createCallRequest.getStatus()));
|
callEntity.setStatus(String.valueOf(createCallRequest.getStatus()));
|
||||||
callEntity.setAmountMax(createCallRequest.getAmountMax());
|
callEntity.setAmountMax(createCallRequest.getAmountMax());
|
||||||
callEntity.setAmount(createCallRequest.getAmountMax());
|
callEntity.setAmount(createCallRequest.getAmountMax());
|
||||||
callEntity.setThreshold(createCallRequest.getThreshold());
|
|
||||||
callEntity.setConfidi(false);
|
callEntity.setConfidi(false);
|
||||||
if(createCallRequest.getConfidi()!=null){
|
if(createCallRequest.getConfidi()!=null){
|
||||||
callEntity.setConfidi(createCallRequest.getConfidi());
|
callEntity.setConfidi(createCallRequest.getConfidi());
|
||||||
}
|
}
|
||||||
callEntity.setDocumentation_requested(createCallRequest.getDocumentationRequested());
|
callEntity.setDocumentationRequested(createCallRequest.getDocumentationRequested());
|
||||||
callEntity = callRepository.save(callEntity);
|
callEntity = callRepository.save(callEntity);
|
||||||
return callEntity;
|
return callEntity;
|
||||||
}
|
}
|
||||||
@@ -121,13 +137,15 @@ public class CallDao {
|
|||||||
|
|
||||||
private DocumentEntity convertToDocumentEntity(DocumentReq documentReq, CallEntity callEntity) {
|
private DocumentEntity convertToDocumentEntity(DocumentReq documentReq, CallEntity callEntity) {
|
||||||
validateDocumentEntity(documentReq.getId(),documentReq.getFileName());
|
validateDocumentEntity(documentReq.getId(),documentReq.getFileName());
|
||||||
DocumentEntity documentEntity = documentRepository.findById(documentReq.getId());
|
DocumentEntity documentEntity = documentRepository.findById(documentReq.getId())
|
||||||
if(documentEntity==null){
|
.orElseThrow(() -> new ResourceNotFoundException(Status.VALIDATION_ERROR,
|
||||||
throw new ResourceNotFoundException(Status.VALIDATION_ERROR,Translator.toLocale(GepafinConstant.DOCUMENT_NOT_FOUND));
|
Translator.toLocale(GepafinConstant.DOCUMENT_NOT_FOUND)));
|
||||||
}
|
// if(documentEntity==null){
|
||||||
documentEntity.setFileName(documentReq.getFileName());
|
// throw ;
|
||||||
documentEntity.setFilePath(documentReq.getUrl());
|
// }
|
||||||
documentEntity.setCall(callEntity);
|
// documentEntity.setFileName(documentReq.getFileName());
|
||||||
|
// documentEntity.setFilePath(documentReq.getUrl());
|
||||||
|
// documentEntity.setCall(callEntity);
|
||||||
return documentEntity;
|
return documentEntity;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,9 +188,9 @@ public class CallDao {
|
|||||||
throw new CustomValidationException(Status.VALIDATION_ERROR,Translator.toLocale(GepafinConstant.DOCUMENT_ID_NOT_FOUND));
|
throw new CustomValidationException(Status.VALIDATION_ERROR,Translator.toLocale(GepafinConstant.DOCUMENT_ID_NOT_FOUND));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StringUtils.hasText(name)) {
|
// if (!StringUtils.hasText(name)) {
|
||||||
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.NAME_NOT_EMPTY_MSG));
|
// throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.NAME_NOT_EMPTY_MSG));
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void validateEvolutionCrieteriaEntity(String name) {
|
public void validateEvolutionCrieteriaEntity(String name) {
|
||||||
@@ -181,14 +199,17 @@ public class CallDao {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void validateCallEntity(Long regionId, BigDecimal fundingAmount) {
|
public void validateCallEntity(CreateCallRequestStep1 createCallRequest) {
|
||||||
if (regionId == null) {
|
if (createCallRequest.getRegionId() == null) {
|
||||||
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.REGION_NOT_FOUND_MSG));
|
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.REGION_NOT_FOUND_MSG));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fundingAmount == null || fundingAmount.compareTo(BigDecimal.ZERO) <= 0) {
|
if (createCallRequest.getAmount().compareTo(BigDecimal.ZERO) <= 0||createCallRequest.getAmountMax().compareTo(BigDecimal.ZERO) <= 0) {
|
||||||
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.AMOUNT_GREATER_THAN_ZERO_MSG));
|
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.AMOUNT_GREATER_THAN_ZERO_MSG));
|
||||||
}
|
}
|
||||||
|
if (createCallRequest.getStartDate().toLocalDate().isBefore(LocalDate.now()) || createCallRequest.getEndDate().toLocalDate().isBefore(LocalDate.now())) {
|
||||||
|
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.INVALID_DATE_MSG));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
public CreateCallResponseBean convertToCallResponseBean(CallEntity callEntity) {
|
public CreateCallResponseBean convertToCallResponseBean(CallEntity callEntity) {
|
||||||
CreateCallResponseBean createCallResponseBean = new CreateCallResponseBean();
|
CreateCallResponseBean createCallResponseBean = new CreateCallResponseBean();
|
||||||
@@ -204,7 +225,7 @@ public class CallDao {
|
|||||||
createCallResponseBean.setContactInfo(callEntity.getContactInfo());
|
createCallResponseBean.setContactInfo(callEntity.getContactInfo());
|
||||||
createCallResponseBean.setSubmissionMethod(callEntity.getSubmissionMethod());
|
createCallResponseBean.setSubmissionMethod(callEntity.getSubmissionMethod());
|
||||||
createCallResponseBean.setThreshold(callEntity.getThreshold());
|
createCallResponseBean.setThreshold(callEntity.getThreshold());
|
||||||
createCallResponseBean.setDocumentationReqested(callEntity.getDocumentation_requested());
|
createCallResponseBean.setDocumentationReqested(callEntity.getDocumentationRequested());
|
||||||
createCallResponseBean.setPriorityArea(callEntity.getPriorityArea());
|
createCallResponseBean.setPriorityArea(callEntity.getPriorityArea());
|
||||||
createCallResponseBean.setCreatedDate(callEntity.getCreatedDate());
|
createCallResponseBean.setCreatedDate(callEntity.getCreatedDate());
|
||||||
createCallResponseBean.setUpdatedDate(callEntity.getUpdatedDate());
|
createCallResponseBean.setUpdatedDate(callEntity.getUpdatedDate());
|
||||||
@@ -291,13 +312,13 @@ public class CallDao {
|
|||||||
callTargetAudienceChecklistEntity.setLookupData(lookUpDataEntity);
|
callTargetAudienceChecklistEntity.setLookupData(lookUpDataEntity);
|
||||||
callTargetAudienceChecklistEntity.setCall(callEntity);
|
callTargetAudienceChecklistEntity.setCall(callEntity);
|
||||||
callTargetAudienceChecklistEntity= callTargetAudienceChecklistRepository.save(callTargetAudienceChecklistEntity);
|
callTargetAudienceChecklistEntity= callTargetAudienceChecklistRepository.save(callTargetAudienceChecklistEntity);
|
||||||
lookUpDataResponses.add(convertToLookUpDataResponseBean(lookUpDataEntity,callTargetAudienceChecklistEntity));
|
lookUpDataResponses.add(convertToLookUpDataResponseBean(callTargetAudienceChecklistEntity));
|
||||||
}
|
}
|
||||||
return lookUpDataResponses;
|
return lookUpDataResponses;
|
||||||
}
|
}
|
||||||
|
|
||||||
private LookUpDataEntity convertLookUpDataRequestIntoLookUpDataEntity(LookUpDataReq req, LookUpDataEntity.LookUpDataTypeEnum type) {
|
private LookUpDataEntity convertLookUpDataRequestIntoLookUpDataEntity(LookUpDataReq req, LookUpDataEntity.LookUpDataTypeEnum type) {
|
||||||
if (req.getLookUpDataId() == null || req.getLookUpDataId().equals(BigDecimal.ZERO)) {
|
if (req.getLookUpDataId() == null || req.getLookUpDataId().equals(0l)) {
|
||||||
LookUpDataEntity newEntity = new LookUpDataEntity();
|
LookUpDataEntity newEntity = new LookUpDataEntity();
|
||||||
newEntity.setValue(req.getValue());
|
newEntity.setValue(req.getValue());
|
||||||
newEntity.setType(type.getValue());
|
newEntity.setType(type.getValue());
|
||||||
@@ -308,8 +329,9 @@ public class CallDao {
|
|||||||
.orElseThrow(() -> new ResourceNotFoundException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.LOOK_UP_DATA_NOT_VALID_MSG)));
|
.orElseThrow(() -> new ResourceNotFoundException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.LOOK_UP_DATA_NOT_VALID_MSG)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public LookUpDataResponse convertToLookUpDataResponseBean(LookUpDataEntity lookUpDataEntity,CallTargetAudienceChecklistEntity callTargetAudienceChecklistEntity) {
|
public LookUpDataResponse convertToLookUpDataResponseBean(CallTargetAudienceChecklistEntity callTargetAudienceChecklistEntity) {
|
||||||
LookUpDataResponse lookUpDataResponse = new LookUpDataResponse();
|
LookUpDataResponse lookUpDataResponse = new LookUpDataResponse();
|
||||||
|
LookUpDataEntity lookUpDataEntity = callTargetAudienceChecklistEntity.getLookupData();
|
||||||
lookUpDataResponse.setId(callTargetAudienceChecklistEntity.getId());
|
lookUpDataResponse.setId(callTargetAudienceChecklistEntity.getId());
|
||||||
lookUpDataResponse.setLookUpDataId(lookUpDataEntity.getId());
|
lookUpDataResponse.setLookUpDataId(lookUpDataEntity.getId());
|
||||||
lookUpDataResponse.setValue(lookUpDataEntity.getValue());
|
lookUpDataResponse.setValue(lookUpDataEntity.getValue());
|
||||||
@@ -318,6 +340,32 @@ public class CallDao {
|
|||||||
lookUpDataResponse.setUpdatedDate(lookUpDataEntity.getUpdatedDate());
|
lookUpDataResponse.setUpdatedDate(lookUpDataEntity.getUpdatedDate());
|
||||||
return lookUpDataResponse;
|
return lookUpDataResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public CreateCallResponseBean createCallStep2(CreateCallRequestStep2 createCallRequest, Long userId) {
|
||||||
|
CreateCallResponseBean createCallResponseBean = null;
|
||||||
|
CallEntity callEntity = callRepository.findById(createCallRequest.getCallId())
|
||||||
|
.orElseThrow(() -> new CustomValidationException(Status.VALIDATION_ERROR,
|
||||||
|
Translator.toLocale(GepafinConstant.NAME_NOT_EMPTY_MSG)));
|
||||||
|
|
||||||
|
callEntity.setThreshold(createCallRequest.getThreshold());
|
||||||
|
List<EvaluationCriteriaEntity> evaluationCriteriaEntities = convertToEvaluationCriteriaEntities(
|
||||||
|
createCallRequest.getCriteria(), callEntity);
|
||||||
|
List<DocumentEntity> documentEntities = convertToDocumentEntities(createCallRequest.getDocs(), callEntity);
|
||||||
|
List<DocumentEntity> imageEntities = convertToDocumentEntities(createCallRequest.getImages(), callEntity);
|
||||||
|
List<LookUpDataResponse> checkList = convertLookUpDataEntities(createCallRequest.getCheckList(), callEntity,
|
||||||
|
LookUpDataTypeEnum.CHECKLIST);
|
||||||
|
List<FaqEntity> faqEntities = faqRepository.findByCallId(callEntity.getId());
|
||||||
|
List<LookUpDataResponse> amiedTo = callTargetAudienceChecklistRepository
|
||||||
|
.findByCallIdAndLookupDataType(callEntity.getId(), LookUpDataTypeEnum.AIMED_TO.getValue()).stream()
|
||||||
|
.map(this::convertToLookUpDataResponseBean).toList();
|
||||||
|
createCallResponseBean = assembleCreateCallResponseBean(callEntity, evaluationCriteriaEntities,
|
||||||
|
documentEntities, faqEntities, imageEntities);
|
||||||
|
createCallResponseBean.setAimedTo(amiedTo);
|
||||||
|
createCallResponseBean.setCheckList(checkList);
|
||||||
|
return createCallResponseBean;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,16 @@
|
|||||||
package net.gepafin.tendermanagement.dao;
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import org.apache.commons.io.FilenameUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.util.StringUtils;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
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.DocumentEntity;
|
import net.gepafin.tendermanagement.entities.DocumentEntity;
|
||||||
@@ -10,17 +21,6 @@ import net.gepafin.tendermanagement.service.AmazonS3Service;
|
|||||||
import net.gepafin.tendermanagement.util.Utils;
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.apache.commons.io.FilenameUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
import org.springframework.util.StringUtils;
|
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class DocumentDao {
|
public class DocumentDao {
|
||||||
@@ -34,15 +34,6 @@ public class DocumentDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private CallDao callDao;
|
private CallDao callDao;
|
||||||
|
|
||||||
@Value("${aws.s3.bucket.name}")
|
|
||||||
private String bucketName;
|
|
||||||
|
|
||||||
@Value("${aws.s3.url.folder}")
|
|
||||||
private String s3Folder;
|
|
||||||
|
|
||||||
@Value("${aws.s3.url}")
|
|
||||||
private String s3Url;
|
|
||||||
|
|
||||||
public List<DocumentResponseBean> uploadFiles(List<MultipartFile> files, DocumentTypeEnum fileType) {
|
public List<DocumentResponseBean> uploadFiles(List<MultipartFile> files, DocumentTypeEnum fileType) {
|
||||||
List<DocumentEntity> documentEntities = new ArrayList<>();
|
List<DocumentEntity> documentEntities = new ArrayList<>();
|
||||||
|
|
||||||
@@ -65,16 +56,15 @@ public class DocumentDao {
|
|||||||
.map(callDao::convertToDocumentResponseBean)
|
.map(callDao::convertToDocumentResponseBean)
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
public Void deleteFile(Long documentId){
|
|
||||||
DocumentEntity documentEntity= documentRepository.findById(documentId);
|
public void deleteFile(Long documentId) {
|
||||||
if(documentEntity==null){
|
DocumentEntity documentEntity = documentRepository.findById(documentId)
|
||||||
new ResourceNotFoundException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.DOCUMENT_NOT_FOUND));
|
.orElseThrow(() -> new ResourceNotFoundException(Status.VALIDATION_ERROR,
|
||||||
}
|
Translator.toLocale(GepafinConstant.DOCUMENT_NOT_FOUND)));
|
||||||
|
|
||||||
String fileName = Utils.extractFileName(documentEntity.getFilePath());
|
String fileName = Utils.extractFileName(documentEntity.getFilePath());
|
||||||
try {
|
amazonS3Service.delete(fileName);
|
||||||
amazonS3Service.delete(bucketName, fileName);
|
|
||||||
documentRepository.delete(documentEntity);
|
documentRepository.delete(documentEntity);
|
||||||
}catch (Exception e){}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,10 +52,10 @@ public class CallEntity extends BaseEntity {
|
|||||||
private String submissionMethod;
|
private String submissionMethod;
|
||||||
|
|
||||||
@Column(name = "THRESHOLD", nullable = false)
|
@Column(name = "THRESHOLD", nullable = false)
|
||||||
private Integer threshold;
|
private Long threshold;
|
||||||
|
|
||||||
@Column(name="DOCUMENTATION_REQUESTED",columnDefinition = "TEXT")
|
@Column(name="DOCUMENTATION_REQUESTED",columnDefinition = "TEXT")
|
||||||
private String documentation_requested;
|
private String documentationRequested;
|
||||||
|
|
||||||
@Column(name = "PRIORITY_AREA", columnDefinition = "TEXT")
|
@Column(name = "PRIORITY_AREA", columnDefinition = "TEXT")
|
||||||
private String priorityArea;
|
private String priorityArea;
|
||||||
|
|||||||
@@ -7,43 +7,47 @@ import java.math.BigDecimal;
|
|||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
public class CreateCallRequest {
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CreateCallRequestStep1 {
|
||||||
|
|
||||||
|
@NotEmpty
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
@NotEmpty
|
||||||
private String descriptionShort;
|
private String descriptionShort;
|
||||||
|
|
||||||
|
@NotEmpty
|
||||||
private String descriptionLong;
|
private String descriptionLong;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
private LocalDateTime startDate;
|
private LocalDateTime startDate;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
private LocalDateTime endDate;
|
private LocalDateTime endDate;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
private Long regionId;
|
private Long regionId;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
private BigDecimal amount;
|
private BigDecimal amount;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
private BigDecimal amountMax;
|
private BigDecimal amountMax;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
private List<LookUpDataReq> aimedTo;
|
private List<LookUpDataReq> aimedTo;
|
||||||
|
|
||||||
|
@NotEmpty
|
||||||
private String documentationRequested;
|
private String documentationRequested;
|
||||||
|
|
||||||
private Integer threshold;
|
|
||||||
|
|
||||||
private Boolean Confidi;
|
private Boolean Confidi;
|
||||||
|
|
||||||
List<EvaluationCriteriaReq> criteria;
|
|
||||||
|
|
||||||
private List<FaqReq> faq;
|
private List<FaqReq> faq;
|
||||||
|
|
||||||
private List<LookUpDataReq> checkList;
|
@NotNull
|
||||||
|
|
||||||
private List<DocumentReq> docs;
|
|
||||||
|
|
||||||
private List<DocumentReq> images;
|
|
||||||
|
|
||||||
private CallTypeEnum status;
|
private CallTypeEnum status;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package net.gepafin.tendermanagement.model.request;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.Data;
|
||||||
|
import net.gepafin.tendermanagement.enums.CallTypeEnum;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CreateCallRequestStep2 {
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private Long callId;
|
||||||
|
|
||||||
|
private Long threshold;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private List<EvaluationCriteriaReq> criteria;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private List<LookUpDataReq> checkList;
|
||||||
|
|
||||||
|
private List<DocumentReq> docs;
|
||||||
|
|
||||||
|
private List<DocumentReq> images;
|
||||||
|
|
||||||
|
private CallTypeEnum status;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,10 +1,12 @@
|
|||||||
package net.gepafin.tendermanagement.model.request;
|
package net.gepafin.tendermanagement.model.request;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class LookUpDataReq {
|
public class LookUpDataReq {
|
||||||
|
|
||||||
|
@NotNull
|
||||||
private Long lookUpDataId;
|
private Long lookUpDataId;
|
||||||
|
|
||||||
private String value;
|
private String value;
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ public class CreateCallResponseBean {
|
|||||||
|
|
||||||
private String submissionMethod;
|
private String submissionMethod;
|
||||||
|
|
||||||
private Integer threshold;
|
private Long threshold;
|
||||||
|
|
||||||
private String priorityArea;
|
private String priorityArea;
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
package net.gepafin.tendermanagement.repositories;
|
package net.gepafin.tendermanagement.repositories;
|
||||||
import net.gepafin.tendermanagement.entities.CallEntity;
|
import net.gepafin.tendermanagement.entities.CallEntity;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
public interface CallRepository extends JpaRepository<CallEntity, Integer> {
|
@Repository
|
||||||
|
public interface CallRepository extends JpaRepository<CallEntity, Long> {
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,14 @@
|
|||||||
package net.gepafin.tendermanagement.repositories;
|
package net.gepafin.tendermanagement.repositories;
|
||||||
|
|
||||||
import net.gepafin.tendermanagement.entities.CallTargetAudienceChecklistEntity;
|
import java.util.List;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
|
||||||
|
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import net.gepafin.tendermanagement.entities.CallTargetAudienceChecklistEntity;
|
||||||
|
|
||||||
|
@Repository
|
||||||
public interface CallTargetAudienceChecklistRepository extends JpaRepository<CallTargetAudienceChecklistEntity,Long> {
|
public interface CallTargetAudienceChecklistRepository extends JpaRepository<CallTargetAudienceChecklistEntity,Long> {
|
||||||
|
|
||||||
|
List<CallTargetAudienceChecklistEntity> findByCallIdAndLookupDataType(Long id, String value);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
package net.gepafin.tendermanagement.repositories;
|
package net.gepafin.tendermanagement.repositories;
|
||||||
import net.gepafin.tendermanagement.entities.DocumentEntity;
|
import net.gepafin.tendermanagement.entities.DocumentEntity;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
public interface DocumentRepository extends JpaRepository<DocumentEntity, Integer> {
|
@Repository
|
||||||
|
public interface DocumentRepository extends JpaRepository<DocumentEntity, Long> {
|
||||||
|
|
||||||
DocumentEntity findById(Long id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,14 @@
|
|||||||
package net.gepafin.tendermanagement.repositories;
|
package net.gepafin.tendermanagement.repositories;
|
||||||
|
|
||||||
import net.gepafin.tendermanagement.entities.FaqEntity;
|
import net.gepafin.tendermanagement.entities.FaqEntity;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
@Repository
|
||||||
public interface FaqRepository extends JpaRepository<FaqEntity, Integer> {
|
public interface FaqRepository extends JpaRepository<FaqEntity, Integer> {
|
||||||
|
|
||||||
|
List<FaqEntity> findByCallId(Long callId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package net.gepafin.tendermanagement.service;
|
package net.gepafin.tendermanagement.service;
|
||||||
|
|
||||||
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
@@ -10,11 +9,9 @@ import java.io.InputStream;
|
|||||||
@Component
|
@Component
|
||||||
public interface AmazonS3Service {
|
public interface AmazonS3Service {
|
||||||
|
|
||||||
|
public String upload(String fileName, MultipartFile file) throws IOException;
|
||||||
|
|
||||||
public String upload(String fileName,
|
public Boolean delete(String fileName);
|
||||||
MultipartFile file) throws IOException;
|
|
||||||
|
|
||||||
public Boolean delete(String bucketName ,String fileName);
|
|
||||||
|
|
||||||
InputStream getFile(String filePath) throws IOException;
|
InputStream getFile(String filePath) throws IOException;
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,14 @@
|
|||||||
package net.gepafin.tendermanagement.service;
|
package net.gepafin.tendermanagement.service;
|
||||||
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.model.request.CreateCallRequest;
|
import net.gepafin.tendermanagement.model.request.CreateCallRequestStep1;
|
||||||
|
import net.gepafin.tendermanagement.model.request.CreateCallRequestStep2;
|
||||||
import net.gepafin.tendermanagement.model.response.CreateCallResponseBean;
|
import net.gepafin.tendermanagement.model.response.CreateCallResponseBean;
|
||||||
|
|
||||||
public interface CallService {
|
public interface CallService {
|
||||||
|
|
||||||
CreateCallResponseBean createCall(HttpServletRequest request, CreateCallRequest createCallRequest);
|
CreateCallResponseBean createCallStep1(HttpServletRequest request, CreateCallRequestStep1 createCallRequest);
|
||||||
|
|
||||||
|
CreateCallResponseBean createCallStep2(HttpServletRequest request, CreateCallRequestStep2 createCallRequest);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,5 +10,5 @@ public interface DocumentService {
|
|||||||
|
|
||||||
public List<DocumentResponseBean> uploadFile(List<MultipartFile> files, DocumentTypeEnum fileType);
|
public List<DocumentResponseBean> uploadFile(List<MultipartFile> files, DocumentTypeEnum fileType);
|
||||||
|
|
||||||
public Void deleteFile(Long documentId);
|
public void deleteFile(Long documentId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ public class AmazonS3ServiceImpl implements AmazonS3Service {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean delete(String bucketName,String fileName) {
|
public Boolean delete(String fileName) {
|
||||||
|
|
||||||
final DeleteObjectRequest deleteObjectRequest = new DeleteObjectRequest(bucketName, fileName);
|
final DeleteObjectRequest deleteObjectRequest = new DeleteObjectRequest(bucketName, fileName);
|
||||||
if(Boolean.FALSE.equals(isTestProfileActivated())) {
|
if(Boolean.FALSE.equals(isTestProfileActivated())) {
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ package net.gepafin.tendermanagement.service.impl;
|
|||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.config.jwt.TokenProvider;
|
import net.gepafin.tendermanagement.config.jwt.TokenProvider;
|
||||||
import net.gepafin.tendermanagement.dao.CallDao;
|
import net.gepafin.tendermanagement.dao.CallDao;
|
||||||
import net.gepafin.tendermanagement.model.request.CreateCallRequest;
|
import net.gepafin.tendermanagement.model.request.CreateCallRequestStep1;
|
||||||
|
import net.gepafin.tendermanagement.model.request.CreateCallRequestStep2;
|
||||||
import net.gepafin.tendermanagement.model.response.CreateCallResponseBean;
|
import net.gepafin.tendermanagement.model.response.CreateCallResponseBean;
|
||||||
import net.gepafin.tendermanagement.service.CallService;
|
import net.gepafin.tendermanagement.service.CallService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -22,8 +23,14 @@ public class CallServiceImpl implements CallService {
|
|||||||
private TokenProvider tokenProvider;
|
private TokenProvider tokenProvider;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CreateCallResponseBean createCall(HttpServletRequest request, CreateCallRequest createCallRequest) {
|
public CreateCallResponseBean createCallStep1(HttpServletRequest request, CreateCallRequestStep1 createCallRequest) {
|
||||||
Map<String, Object> userInfo= tokenProvider.getUserInfoAndUserIdFromToken(request);
|
Map<String, Object> userInfo= tokenProvider.getUserInfoAndUserIdFromToken(request);
|
||||||
return callDao.createCall(createCallRequest, Long.parseLong(userInfo.get("userId").toString()));
|
return callDao.createCallStep1(createCallRequest, Long.parseLong(userInfo.get("userId").toString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CreateCallResponseBean createCallStep2(HttpServletRequest request, CreateCallRequestStep2 createCallRequest) {
|
||||||
|
Map<String, Object> userInfo= tokenProvider.getUserInfoAndUserIdFromToken(request);
|
||||||
|
return callDao.createCallStep2(createCallRequest, Long.parseLong(userInfo.get("userId").toString()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
package net.gepafin.tendermanagement.service.impl;
|
package net.gepafin.tendermanagement.service.impl;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import net.gepafin.tendermanagement.dao.DocumentDao;
|
import net.gepafin.tendermanagement.dao.DocumentDao;
|
||||||
import net.gepafin.tendermanagement.enums.DocumentTypeEnum;
|
import net.gepafin.tendermanagement.enums.DocumentTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.response.DocumentResponseBean;
|
import net.gepafin.tendermanagement.model.response.DocumentResponseBean;
|
||||||
import net.gepafin.tendermanagement.service.DocumentService;
|
import net.gepafin.tendermanagement.service.DocumentService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class DocumentServiceImpl implements DocumentService {
|
public class DocumentServiceImpl implements DocumentService {
|
||||||
@@ -22,7 +23,7 @@ public class DocumentServiceImpl implements DocumentService {
|
|||||||
return fileDao.uploadFiles(files,fileType);
|
return fileDao.uploadFiles(files,fileType);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public Void deleteFile(Long documentId){
|
public void deleteFile(Long documentId){
|
||||||
return fileDao.deleteFile(documentId);
|
fileDao.deleteFile(documentId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,20 +7,22 @@ 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.CreateCallRequest;
|
import net.gepafin.tendermanagement.model.request.CreateCallRequestStep1;
|
||||||
|
import net.gepafin.tendermanagement.model.request.CreateCallRequestStep2;
|
||||||
import net.gepafin.tendermanagement.model.response.CreateCallResponseBean;
|
import net.gepafin.tendermanagement.model.response.CreateCallResponseBean;
|
||||||
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.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
|
@Validated
|
||||||
public interface CallApi {
|
public interface CallApi {
|
||||||
|
|
||||||
@Operation(summary = "Api to create call",
|
@Operation(summary = "Api to create call step 1",
|
||||||
responses = {
|
responses = {
|
||||||
@ApiResponse(responseCode = "200", description = "OK"),
|
@ApiResponse(responseCode = "200", description = "OK"),
|
||||||
@ApiResponse(responseCode = "404", description = "Not Found", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
@ApiResponse(responseCode = "404", description = "Not Found", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||||
@@ -30,10 +32,26 @@ public interface CallApi {
|
|||||||
@ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
@ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||||
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) }))
|
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) }))
|
||||||
})
|
})
|
||||||
@PostMapping(value = "", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
@PostMapping(value = "/step1", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
@PreAuthorize("hasRole('ROLE_SUPER_ADMIN')")
|
@PreAuthorize("hasRole('ROLE_SUPER_ADMIN')")
|
||||||
public ResponseEntity<Response<CreateCallResponseBean>> createCall(HttpServletRequest request,
|
public ResponseEntity<Response<CreateCallResponseBean>> createCallStep1(HttpServletRequest request,
|
||||||
@Parameter(description = "Call request object", required = true)
|
@Parameter(description = "Call request object", required = true)
|
||||||
@Valid @RequestBody CreateCallRequest createCallRequest);
|
@Valid @RequestBody CreateCallRequestStep1 createCallRequest);
|
||||||
|
|
||||||
|
@Operation(summary = "Api to create call step 2",
|
||||||
|
responses = {
|
||||||
|
@ApiResponse(responseCode = "200", description = "OK"),
|
||||||
|
@ApiResponse(responseCode = "404", description = "Not Found", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||||
|
@ExampleObject(value = ErrorConstants.NOTFOUND_ERROR_EXAMPLE) })),
|
||||||
|
@ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||||
|
@ExampleObject(value = ErrorConstants.UNAUTHORIZED_ERROR_EXAMPLE) })),
|
||||||
|
@ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||||
|
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) }))
|
||||||
|
})
|
||||||
|
@PostMapping(value = "/step2", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
|
@PreAuthorize("hasRole('ROLE_SUPER_ADMIN')")
|
||||||
|
public ResponseEntity<Response<CreateCallResponseBean>> createCallStep2(HttpServletRequest request,
|
||||||
|
@Parameter(description = "Call request object", required = true)
|
||||||
|
@Valid @RequestBody CreateCallRequestStep2 createCallRequest);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ package net.gepafin.tendermanagement.web.rest.api.impl;
|
|||||||
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.model.request.CreateCallRequest;
|
import net.gepafin.tendermanagement.model.request.CreateCallRequestStep1;
|
||||||
|
import net.gepafin.tendermanagement.model.request.CreateCallRequestStep2;
|
||||||
import net.gepafin.tendermanagement.model.response.CreateCallResponseBean;
|
import net.gepafin.tendermanagement.model.response.CreateCallResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.util.Response;
|
import net.gepafin.tendermanagement.model.util.Response;
|
||||||
import net.gepafin.tendermanagement.service.CallService;
|
import net.gepafin.tendermanagement.service.CallService;
|
||||||
@@ -27,8 +28,16 @@ public class CallApiController implements CallApi {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor=Exception.class)
|
@Transactional(rollbackFor=Exception.class)
|
||||||
public ResponseEntity<Response<CreateCallResponseBean>> createCall(HttpServletRequest request, CreateCallRequest createCallRequest) {
|
public ResponseEntity<Response<CreateCallResponseBean>> createCallStep1(HttpServletRequest request, CreateCallRequestStep1 createCallRequest) {
|
||||||
CreateCallResponseBean createCallResponseBean = callService.createCall(request, createCallRequest);
|
CreateCallResponseBean createCallResponseBean = callService.createCallStep1(request, createCallRequest);
|
||||||
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
|
.body(new Response<>(createCallResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.CALL_CREATED_SUCCESSFULLY_MSG)));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor=Exception.class)
|
||||||
|
public ResponseEntity<Response<CreateCallResponseBean>> createCallStep2(HttpServletRequest request, CreateCallRequestStep2 createCallRequest) {
|
||||||
|
CreateCallResponseBean createCallResponseBean = callService.createCallStep2(request, createCallRequest);
|
||||||
return ResponseEntity.status(HttpStatus.CREATED)
|
return ResponseEntity.status(HttpStatus.CREATED)
|
||||||
.body(new Response<>(createCallResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.CALL_CREATED_SUCCESSFULLY_MSG)));
|
.body(new Response<>(createCallResponseBean, Status.SUCCESS, Translator.toLocale(GepafinConstant.CALL_CREATED_SUCCESSFULLY_MSG)));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -171,7 +171,6 @@
|
|||||||
<column name="submission_method" type="TEXT">
|
<column name="submission_method" type="TEXT">
|
||||||
</column>
|
</column>
|
||||||
<column name="threshold" type="INTEGER">
|
<column name="threshold" type="INTEGER">
|
||||||
<constraints nullable="false"/>
|
|
||||||
</column>
|
</column>
|
||||||
<column name="priority_area" type="TEXT"/>
|
<column name="priority_area" type="TEXT"/>
|
||||||
<column name="confidi" type="BOOLEAN"/>
|
<column name="confidi" type="BOOLEAN"/>
|
||||||
|
|||||||
@@ -43,6 +43,8 @@ call.created.successfully=Call created successfully.
|
|||||||
file.deleted.successfully=File deleted successfully.
|
file.deleted.successfully=File deleted successfully.
|
||||||
document.not.found=Document not found.
|
document.not.found=Document not found.
|
||||||
document.id.not.found=Document ID not found.
|
document.id.not.found=Document ID not found.
|
||||||
|
call.created.successfully=Call created successfully.
|
||||||
|
call.invalid.date=Invalid start or end date.
|
||||||
|
|
||||||
# Login-related messages
|
# Login-related messages
|
||||||
login.successfully=Login successfully.
|
login.successfully=Login successfully.
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ call.created.successfully=Chiamata creata correttamente.
|
|||||||
file.deleted.successfully=File eliminato con successo.
|
file.deleted.successfully=File eliminato con successo.
|
||||||
document.not.found=Documento non trovato.
|
document.not.found=Documento non trovato.
|
||||||
document.id.not.found=ID documento non trovato.
|
document.id.not.found=ID documento non trovato.
|
||||||
|
call.invalid.date=Data di inizio o fine non valida.
|
||||||
|
|
||||||
# Login-related messages
|
# Login-related messages
|
||||||
login.successfully=Accesso effettuato con successo.
|
login.successfully=Accesso effettuato con successo.
|
||||||
|
|||||||
Reference in New Issue
Block a user