diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java index 3e53021e..7f5e3a56 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java @@ -1805,6 +1805,7 @@ public class ApplicationEvaluationDao { .orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.APPLICATION_EVALUATION_NOT_FOUND))); } + public ApplicationEvaluationResponse updateApplicationEvaluation( Long assignedApplicationId, List docRequest) { diff --git a/src/main/java/net/gepafin/tendermanagement/service/impl/AmazonS3ServiceImpl.java b/src/main/java/net/gepafin/tendermanagement/service/impl/AmazonS3ServiceImpl.java index 3af50f6c..8221117a 100644 --- a/src/main/java/net/gepafin/tendermanagement/service/impl/AmazonS3ServiceImpl.java +++ b/src/main/java/net/gepafin/tendermanagement/service/impl/AmazonS3ServiceImpl.java @@ -30,6 +30,8 @@ import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.io.InputStream; import java.net.URL; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -118,12 +120,15 @@ public class AmazonS3ServiceImpl implements AmazonS3Service { public InputStream getFile(String s3Folder, String filePath) { try { String fileName = Utils.extractFileName(filePath); - String path = s3Folder + "/" + fileName; + // Decode the file name to handle special characters like '+' correctly + String decodedFileName = URLDecoder.decode(fileName, StandardCharsets.UTF_8.toString()); + + String path = s3Folder + "/" + decodedFileName; GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, path); S3Object s3Object = amazonS3.getObject(getObjectRequest); log.info("File fetched successfully from Amazon S3: {}", fileName); return s3Object.getObjectContent(); - } catch (AmazonS3Exception e) { + } catch (Exception e) { log.error("Error occurred while getting file from Amazon S3: {}", e); throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.GET_ERROR_S3)); diff --git a/src/main/resources/application-production.properties b/src/main/resources/application-production.properties index 2007e166..31a7e7b4 100644 --- a/src/main/resources/application-production.properties +++ b/src/main/resources/application-production.properties @@ -29,4 +29,4 @@ appointment.portal.user=UtenzaAPIPortal@621 appointment.portal.password=u13nzaAP1P0rtal appointment.portal.source=GEPAFINPORTAL appointment.portal.context=GEPAFINPORTAL -flagDaFirmare=true \ No newline at end of file +flagDaFirmare=false \ No newline at end of file diff --git a/src/main/resources/message_en.properties b/src/main/resources/message_en.properties index 974162f9..a644c61c 100644 --- a/src/main/resources/message_en.properties +++ b/src/main/resources/message_en.properties @@ -335,4 +335,4 @@ upload.document.is.only.for.gepafin = Document cant be uploaded, this is only av appointment.created.successfully = Appointment created successfully. error.try.again = Service call error while performing the operation. Please try again. document.uploading.is.in.progress = Document uploading is in progress. -all.document.checked.and.one.checklist.checked=All document should be checked and at least one checklist should be checked. \ No newline at end of file +all.document.checked.and.one.checklist.checked=All document should be checked and at least one checklist should be checked. diff --git a/src/main/resources/message_it.properties b/src/main/resources/message_it.properties index 97390d1d..e350546e 100644 --- a/src/main/resources/message_it.properties +++ b/src/main/resources/message_it.properties @@ -304,7 +304,7 @@ beneficiary.call.duplicate = Una chiamata preferita con questo ID di chiamata e user.must.be.associated.with.company.to.create.application=Devi essere associato a un'azienda per poter presentare domanda per questa applicazione. company.id.required.for.preferred.call=ID azienda obbligatorio quando si richiedono solo chiamate preferite. response.days.not.null=I giorni di risposta non devono essere nulli e maggiori di zero. -application.cannot.approved.or.rejected=La domanda non può essere approvata o rifiutata perché l'emendamento è attivo. +application.cannot.approved.or.rejected=La domanda non pu� essere approvata o rifiutata perch� l'emendamento � attivo. atleast.one.id.required=Almeno uno tra companyId o applicationId deve essere fornito. #Appointment flow messages @@ -324,5 +324,5 @@ appointment.creation.is.only.for.gepafin = La creazione degli appuntamenti ? con upload.document.is.only.for.gepafin = Il documento non pu? essere caricato, questa operazione ? disponibile solo per il Hub GEPAFIN. appointment.created.successfully = Appuntamento creato con successo. error.try.again = Errore di chiamata di servizio durante l'esecuzione dell'operazione. Riprovare. -document.uploading.is.in.progress = Il documento è in fase di caricamento. -all.document.checked.and.one.checklist.checked=Tutti i documenti devono essere controllati e almeno una checklist deve essere controllata. \ No newline at end of file +document.uploading.is.in.progress = Il documento � in fase di caricamento. +all.document.checked.and.one.checklist.checked=Tutti i documenti devono essere controllati e almeno una checklist deve essere controllata.