diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java index 3bf81c6f..4a83b837 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationDao.java @@ -32,6 +32,7 @@ import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationExceptio import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException; import net.gepafin.tendermanagement.web.rest.api.errors.Status; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -114,6 +115,9 @@ public class ApplicationDao { @Value("${carlo_email}") private String carloEmail; + @Value("${call.id}") + private String callId; + @Autowired private AmazonS3Service amazonS3Service; @@ -795,7 +799,7 @@ public class ApplicationDao { MultipartFile file) { ApplicationEntity applicationEntity = validateApplication(applicationId); validator.validateUserWithCompany(request, applicationEntity.getCompany().getId()); - validateFileType(file); + validateFileTypeForCall(file, applicationEntity); ApplicationSignedDocumentEntity applicationSignedDocument = applicationSignedDocumentRepository .findByApplicationIdAndStatus(applicationId, ApplicationSignedDocumentStatusEnum.ACTIVE.getValue()); if (applicationSignedDocument != null) { @@ -815,6 +819,16 @@ public class ApplicationDao { applicationRepository.save(applicationEntity); return convertApplicationSignedDocumentToApplicationSignedDocumentResponse(applicationSignedDocument); } + + private void validateFileTypeForCall(MultipartFile file, ApplicationEntity applicationEntity) { + List validCallIds = Arrays.asList(callId.split(",")); + if (applicationEntity != null && validCallIds.contains(applicationEntity.getCall().getId().toString())) { + return; + } + validateFileType(file); + } + + private UploadFileOnAmazonS3Response uploadFileOnAmazonS3ForUserSignedDocument(MultipartFile file, Long callId, Long applicationId) { try { String s3Path = generateS3PathForDelegation(callId, applicationId); diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 13e7addb..f19adfb0 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -23,6 +23,8 @@ spring.liquibase.enabled=true springdoc.api-docs.path=/v1/api-docs springdoc.swagger-ui.tagsSorter=alpha +#signed_document_callIds for more file type upload feature. +call.id=10 #aws configuration aws.access.key.id=AKIAVWDQWCUEOSUN4LUW