diff --git a/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java b/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java index b1704c6a..219c5647 100644 --- a/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java +++ b/src/main/java/net/gepafin/tendermanagement/constants/GepafinConstant.java @@ -292,5 +292,6 @@ public class GepafinConstant { public static final String ENCRYPT_KEY = "U2VjdXJlRW5jcnlwdEtleQ=="; public static final String APPLICATION_DOCUMENTS_NOT_FOUND_MSG = "application.documents.not.found"; public static final String DUPLICATE_BENEFICIARY_CALL = "beneficiary.call.duplicate"; + public static final String USER_MUST_BE_ASSOCIATED_WITH_COMPANY="user.must.be.associated.with.company.to.create.application"; } diff --git a/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationServiceImpl.java b/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationServiceImpl.java index 0fec17a7..a8d63f1c 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationServiceImpl.java +++ b/src/main/java/net/gepafin/tendermanagement/service/impl/ApplicationServiceImpl.java @@ -1,6 +1,8 @@ package net.gepafin.tendermanagement.service.impl; import jakarta.servlet.http.HttpServletRequest; +import net.gepafin.tendermanagement.config.Translator; +import net.gepafin.tendermanagement.constants.GepafinConstant; import net.gepafin.tendermanagement.dao.ApplicationDao; import net.gepafin.tendermanagement.dao.FlowFormDao; import net.gepafin.tendermanagement.entities.ApplicationEntity; @@ -17,6 +19,8 @@ import net.gepafin.tendermanagement.model.response.ApplicationSignedDocumentResp import net.gepafin.tendermanagement.model.response.NextOrPreviousFormResponse; import net.gepafin.tendermanagement.service.ApplicationService; import net.gepafin.tendermanagement.util.Validator; +import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException; +import net.gepafin.tendermanagement.web.rest.api.errors.Status; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -64,6 +68,9 @@ public class ApplicationServiceImpl implements ApplicationService { @Transactional(rollbackFor = Exception.class) public ApplicationResponse createApplication(HttpServletRequest request, Long companyId, ApplicationRequest applicationRequest, Long callId) { UserEntity userEntity = validator.validateUser(request); + if(companyId==null){ + throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.USER_MUST_BE_ASSOCIATED_WITH_COMPANY)); + } CompanyEntity companyEntity = validator.validateUserWithCompany(request, companyId); validator.validateUserWithCall(userEntity, callId); return applicationDao.createApplicationByCallId(companyEntity, applicationRequest, callId, userEntity); diff --git a/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationApi.java b/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationApi.java index d37c004e..d72f4daf 100644 --- a/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationApi.java +++ b/src/main/java/net/gepafin/tendermanagement/web/rest/api/ApplicationApi.java @@ -99,7 +99,7 @@ public interface ApplicationApi { @PostMapping(value = "/call/{callId}", produces = { "application/json" }) ResponseEntity> createApplicationByCallId(HttpServletRequest request, - @Parameter(description = "The company ID", required = true) @RequestParam(value = "companyId", required = true) Long companyId, + @Parameter(description = "The company ID") @RequestParam(value = "companyId", required = false) Long companyId, @Parameter(description = " Flow request object", required = true) @Valid @RequestBody ApplicationRequest applicationRequest, @Parameter(description = "The call ID", required = true) @PathVariable("callId") Long callId); diff --git a/src/main/resources/message_en.properties b/src/main/resources/message_en.properties index 69c7410a..41ebe401 100644 --- a/src/main/resources/message_en.properties +++ b/src/main/resources/message_en.properties @@ -308,3 +308,4 @@ invalid.amendment.for.comment = Invalid Amendment Request for the Given Comment. DD_MM_YYYY_HH_MM = dd_MM_yyyy HH:mm application.documents.not.found=No documents found for the application. beneficiary.call.duplicate = A preferred call with this call ID and company ID already exists for this user. +user.must.be.associated.with.company.to.create.application=You must be associated with a company to apply for this application. diff --git a/src/main/resources/message_it.properties b/src/main/resources/message_it.properties index e1cb500d..43a8bbff 100644 --- a/src/main/resources/message_it.properties +++ b/src/main/resources/message_it.properties @@ -303,3 +303,4 @@ beneficiary.email.not.found.msg=L'indirizzo email per il beneficiario non � st reminder.email.sent.success.msg=Email di promemoria inviata con successo! application.documents.not.found=Nessun documento trovato per la domanda. beneficiary.call.duplicate = Una chiamata preferita con questo ID di chiamata e ID azienda esiste gi� per questo utente. +user.must.be.associated.with.company.to.create.application=Devi essere associato a un'azienda per poter presentare domanda per questa applicazione.