From 8b8e5277a8dae6ed1ce96aa2f56a39d2801edece Mon Sep 17 00:00:00 2001 From: Vincent Zwingmann <vincent.zwingmann@gmail.com> Date: Mon, 11 Sep 2023 15:50:50 +0200 Subject: [PATCH 1/9] =?UTF-8?q?suppression=20de=20tag=20derni=C3=A8re=20op?= =?UTF-8?q?=C3=A9ration=20&=20liste=20des=20libell=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operations/api/OperationsResource.java | 29 ----------- .../business/OperationsService.java | 36 ------------- .../operation/LibellesOperationEnum.java | 50 +++++++++++++++++++ .../LibellesOperationsAPIObject.java | 26 ---------- .../model/operation/LigneOperation.java | 9 +--- .../ports/IOperationsAppProvider.java | 7 +-- .../operations/utils/BudgetDataUtils.java | 7 ++- 7 files changed, 58 insertions(+), 106 deletions(-) create mode 100644 operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LibellesOperationEnum.java delete mode 100644 operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LibellesOperationsAPIObject.java diff --git a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/api/OperationsResource.java b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/api/OperationsResource.java index af651ce..1b2c1e6 100644 --- a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/api/OperationsResource.java +++ b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/api/OperationsResource.java @@ -5,10 +5,8 @@ import io.github.vzwingma.finances.budget.services.communs.data.trace.BusinessTraceContext; import io.github.vzwingma.finances.budget.services.communs.data.trace.BusinessTraceContextKeyEnum; import io.github.vzwingma.finances.budget.services.communs.utils.exceptions.BadParametersException; -import io.github.vzwingma.finances.budget.services.communs.utils.exceptions.DataNotFoundException; import io.github.vzwingma.finances.budget.serverless.services.operations.api.enums.OperationsAPIEnum; import io.github.vzwingma.finances.budget.serverless.services.operations.business.model.budget.BudgetMensuel; -import io.github.vzwingma.finances.budget.serverless.services.operations.business.model.operation.LibellesOperationsAPIObject; import io.github.vzwingma.finances.budget.serverless.services.operations.business.model.operation.LigneOperation; import io.github.vzwingma.finances.budget.serverless.services.operations.business.ports.IBudgetAppProvider; import io.github.vzwingma.finances.budget.serverless.services.operations.business.ports.IOperationsAppProvider; @@ -224,33 +222,6 @@ public Uni<BudgetMensuel> setBudgetActif( *********************************************************/ - /** - * Met à jour le flag de l'opération comme dernière opération réalisée - * @param idBudget id du compte - * @return résultat de l'action - */ - @Operation(description="Met à jour le flag de l'opération comme dernière opération réalisée") - @APIResponses(value = { - @APIResponse(responseCode = "200", description = "Budget mis à jour"), - @APIResponse(responseCode = "401", description = "Utilisateur non authentifié"), - @APIResponse(responseCode = "403", description = "Opération non autorisée"), - @APIResponse(responseCode = "404", description = "Données introuvables") - }) - @POST - @RolesAllowed({ OperationsAPIEnum.OPERATIONS_ROLE }) - @Path(value= OperationsAPIEnum.BUDGET_OPERATION_DERNIERE) - @Consumes(MediaType.APPLICATION_JSON) - @Produces(MediaType.APPLICATION_JSON) - public Uni<Boolean> setAsDerniereOperation( - @RestPath("idBudget") String idBudget, - @RestPath("idOperation") String idOperation) { - - BusinessTraceContext.getclear().put(BusinessTraceContextKeyEnum.BUDGET, idBudget).put(BusinessTraceContextKeyEnum.OPERATION, idOperation).put(BusinessTraceContextKeyEnum.USER, super.getAuthenticatedUser()); - LOG.trace("setAsDerniereOperation"); - return operationsService.setLigneAsDerniereOperation(idBudget, idOperation); - } - - /** * Création d'une opération * @param idBudget id du budget diff --git a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsService.java b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsService.java index 486283e..1451cf2 100644 --- a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsService.java +++ b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsService.java @@ -149,42 +149,6 @@ private void calculBudgetTotalSsCategories(Map<String, TotauxCategorie> totauxSs } - - @Override - public Uni<Boolean> setLigneAsDerniereOperation(String idBudget, String ligneId) { - LOGGER.info("Tag de la ligne comme dernière opération {} sur {}", ligneId, idBudget); - final AtomicBoolean operationUpdate = new AtomicBoolean(false); - return this.budgetService.getBudgetMensuel(idBudget) - .onItem() - .invoke(budget -> { - if( budget == null){ - LOGGER.warn("Budget NULL"); - } - else if(budget.getListeOperations() != null && !budget.getListeOperations().isEmpty()) { - budget.getListeOperations() - .forEach(op -> { - op.setTagDerniereOperation(ligneId.equals(op.getId())); - if(ligneId.equals(op.getId())) { - LOGGER.debug("L'opération a été trouvée dans le budget "); - operationUpdate.set(true); - } - }); - // Mise à jour du budget - budget.setDateMiseAJour(LocalDateTime.now()); - }}) - .call(budget -> { - if(operationUpdate.get()) { - return this.dataOperationsProvider.sauvegardeBudgetMensuel(budget); - } - else{ - return Uni.createFrom().failure(new DataNotFoundException("L'opération "+ligneId+" n'a pas été trouvée dans le budget "+idBudget)); - } - }) - .onItem() - .transform(Objects::nonNull); - } - - @Override public void addOrReplaceOperation(List<LigneOperation> operations, LigneOperation ligneOperation, String auteur) { BusinessTraceContext.get().put(BusinessTraceContextKeyEnum.OPERATION, ligneOperation.getId()); diff --git a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LibellesOperationEnum.java b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LibellesOperationEnum.java new file mode 100644 index 0000000..8f2bea2 --- /dev/null +++ b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LibellesOperationEnum.java @@ -0,0 +1,50 @@ +/* + + */ +package io.github.vzwingma.finances.budget.serverless.services.operations.business.model.operation; + +import lombok.Getter; + +/** + * Libellé dans les opérations + * @author vzwingma + * + */ +@Getter +public enum LibellesOperationEnum { + + // Libellé en retard + EN_RETARD("retard", "[En Retard]"); + + + private final String id; + private final String libelle; + + /** + * Constructeur + * @param id : id de l'enum + * @param libelle : libellé de l'enum + */ + LibellesOperationEnum(String id, String libelle){ + this.id = id; + this.libelle = libelle; + } + + + public static LibellesOperationEnum getEnum(String idEnum){ + for (LibellesOperationEnum enums : values()) { + if(enums.getId().equals(idEnum)){ + return enums; + } + } + return null; + } + + /* (non-Javadoc) + * @see java.lang.Enum#toString() + */ + @Override + public String toString(){ + return getLibelle(); + } +} diff --git a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LibellesOperationsAPIObject.java b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LibellesOperationsAPIObject.java deleted file mode 100644 index 554a748..0000000 --- a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LibellesOperationsAPIObject.java +++ /dev/null @@ -1,26 +0,0 @@ -package io.github.vzwingma.finances.budget.serverless.services.operations.business.model.operation; - -import io.github.vzwingma.finances.budget.services.communs.data.abstrait.AbstractAPIObjectModel; -import lombok.Getter; -import lombok.Setter; -import org.eclipse.microprofile.openapi.annotations.media.Schema; - -import java.io.Serial; -import java.util.Set; - -/** - * Object représentant les libellés des opérations pour l'ensemble des budgets de l'année pour un compte - * @author vzwingma - * - */ -@Getter @Setter -public class LibellesOperationsAPIObject extends AbstractAPIObjectModel { - - - @Serial - private static final long serialVersionUID = -1515823001772650589L; - @Schema(description = "Id du compte") - private String idCompte; - @Schema(description = "Libelles des opérations courantes") - private Set<String> libellesOperations; -} diff --git a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LigneOperation.java b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LigneOperation.java index d3a9523..2a7c2cd 100644 --- a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LigneOperation.java +++ b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LigneOperation.java @@ -64,10 +64,6 @@ public class LigneOperation extends AbstractAPIObjectModel implements Comparable @Schema(description = "Opération périodique ?") private Mensualite mensualite; - // tag comme dernière opération - @Schema(description = "Dernier opération ?") - private boolean tagDerniereOperation; - @Schema(description = "Autres infos") private AddInfos autresInfos; @@ -203,7 +199,6 @@ private void buildLigneOperation(Categorie categorie, Categorie ssCategorie, Str putValeurFromSaisie(absValeur); this.etat = etat; - this.tagDerniereOperation = false; setCategorie(categorie); setSsCategorie(ssCategorie); @@ -260,8 +255,8 @@ public LocalDate retrieveDateOperation() { */ @Override public String toString() { - return String.format("LigneOperations [id=%s, categorie=%s, sous-categorie=%s, libelle=%s, typeDepense=%s, etat=%s, valeur=%s, %s, derniereOperation=%s]" - , id, categorie, ssCategorie, libelle, typeOperation, etat, valeur, mensualite != null ? mensualite.toString() : "mensualite=false", tagDerniereOperation); + return String.format("LigneOperations [id=%s, categorie=%s, sous-categorie=%s, libelle=%s, typeDepense=%s, etat=%s, valeur=%s, %s]" + , id, categorie, ssCategorie, libelle, typeOperation, etat, valeur, mensualite != null ? mensualite.toString() : "mensualite=false"); } @Override diff --git a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/ports/IOperationsAppProvider.java b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/ports/IOperationsAppProvider.java index 274ff61..7695740 100644 --- a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/ports/IOperationsAppProvider.java +++ b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/ports/IOperationsAppProvider.java @@ -34,12 +34,7 @@ public interface IOperationsAppProvider { * @return liste des opérations à mettre à jour dans le budget, avec l'intercompte */ void addOperationIntercompte(List<LigneOperation> operations, LigneOperation ligneOperationSource, String libelleOperationCible, String auteur); - /** - * Mise à jour de la ligne comme dernière opération - * - * @param ligneId identifiant de ligne - */ - Uni<Boolean> setLigneAsDerniereOperation(String idBudget, String ligneId); + /** * Suppression d'une opération diff --git a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/utils/BudgetDataUtils.java b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/utils/BudgetDataUtils.java index 6d23e5f..3376de6 100644 --- a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/utils/BudgetDataUtils.java +++ b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/utils/BudgetDataUtils.java @@ -1,5 +1,6 @@ package io.github.vzwingma.finances.budget.serverless.services.operations.utils; +import io.github.vzwingma.finances.budget.serverless.services.operations.business.model.operation.LibellesOperationEnum; import io.github.vzwingma.finances.budget.services.communs.utils.data.BudgetDateTimeUtils; import io.github.vzwingma.finances.budget.services.communs.utils.exceptions.BudgetNotFoundException; import io.github.vzwingma.finances.budget.serverless.services.operations.business.model.budget.BudgetMensuel; @@ -153,7 +154,6 @@ public static LigneOperation cloneOperationToMoisSuivant(LigneOperation ligneOpe ligneOperationClonee.setEtat(OperationEtatEnum.PREVUE); ligneOperationClonee.setTypeOperation(ligneOperation.getTypeOperation()); ligneOperationClonee.putValeurFromSaisie(Math.abs(ligneOperation.getValeur())); - ligneOperationClonee.setTagDerniereOperation(false); return ligneOperationClonee; } @@ -182,7 +182,10 @@ public static List<LigneOperation> cloneOperationPeriodiqueToMoisSuivant(final L LOGGER.warn("L'opération périodique {} est reportée : en retard", ligneOperation.getMensualite().getPeriode().name()); } LigneOperation ligneOperationEcheanceReportee = cloneOperationToMoisSuivant(ligneOperation); - ligneOperationEcheanceReportee.setLibelle("[En Retard] " + ligneOperation.getLibelle()); + if(ligneOperationEcheanceReportee.getLibelle() != null + && !ligneOperationEcheanceReportee.getLibelle().startsWith(LibellesOperationEnum.EN_RETARD.getLibelle())){ + ligneOperationEcheanceReportee.setLibelle(LibellesOperationEnum.EN_RETARD.getLibelle() + ligneOperation.getLibelle()); + } LigneOperation.Mensualite echeanceReportee = new LigneOperation.Mensualite(); echeanceReportee.setPeriode(OperationPeriodiciteEnum.PONCTUELLE); echeanceReportee.setProchaineEcheance(-1); From ec40ea1d0d865aba0b965ff61ad3da9111af6994 Mon Sep 17 00:00:00 2001 From: Vincent Zwingmann <vincent.zwingmann@gmail.com> Date: Mon, 11 Sep 2023 15:57:05 +0200 Subject: [PATCH 2/9] =?UTF-8?q?suppression=20de=20tag=20derni=C3=A8re=20op?= =?UTF-8?q?=C3=A9ration=20&=20liste=20des=20libell=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../services/operations/api/OperationsResource.java | 3 --- .../services/operations/business/OperationsService.java | 3 --- .../business/model/operation/LibellesOperationEnum.java | 9 --------- .../business/model/operation/LigneOperation.java | 1 + .../business/ports/IOperationsAppProvider.java | 3 +-- 5 files changed, 2 insertions(+), 17 deletions(-) diff --git a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/api/OperationsResource.java b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/api/OperationsResource.java index 1b2c1e6..f869ab6 100644 --- a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/api/OperationsResource.java +++ b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/api/OperationsResource.java @@ -50,9 +50,6 @@ public class OperationsResource extends AbstractAPIInterceptors { @Inject IBudgetAppProvider budgetService; - @Inject - IOperationsAppProvider operationsService; - @Context SecurityContext securityContext; diff --git a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsService.java b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsService.java index 1451cf2..58db5d2 100644 --- a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsService.java +++ b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsService.java @@ -16,7 +16,6 @@ import io.github.vzwingma.finances.budget.serverless.services.operations.business.ports.IBudgetAppProvider; import io.github.vzwingma.finances.budget.serverless.services.operations.business.ports.IOperationsAppProvider; import io.github.vzwingma.finances.budget.serverless.services.operations.business.ports.IOperationsRepository; -import io.smallrye.mutiny.Multi; import io.smallrye.mutiny.Uni; import lombok.NoArgsConstructor; import lombok.Setter; @@ -30,8 +29,6 @@ import java.time.LocalDateTime; import java.util.List; import java.util.Map; -import java.util.Objects; -import java.util.concurrent.atomic.AtomicBoolean; /** * Service fournissant les calculs de budget sur les opérations diff --git a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LibellesOperationEnum.java b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LibellesOperationEnum.java index 8f2bea2..79803a5 100644 --- a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LibellesOperationEnum.java +++ b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LibellesOperationEnum.java @@ -31,15 +31,6 @@ public enum LibellesOperationEnum { } - public static LibellesOperationEnum getEnum(String idEnum){ - for (LibellesOperationEnum enums : values()) { - if(enums.getId().equals(idEnum)){ - return enums; - } - } - return null; - } - /* (non-Javadoc) * @see java.lang.Enum#toString() */ diff --git a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LigneOperation.java b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LigneOperation.java index 2a7c2cd..9ed5f52 100644 --- a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LigneOperation.java +++ b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/model/operation/LigneOperation.java @@ -9,6 +9,7 @@ import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import io.github.vzwingma.finances.budget.services.communs.data.abstrait.AbstractAPIObjectModel; import io.github.vzwingma.finances.budget.services.communs.data.model.CategorieOperations; +import io.smallrye.common.constraint.NotNull; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; diff --git a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/ports/IOperationsAppProvider.java b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/ports/IOperationsAppProvider.java index 7695740..f6dea9a 100644 --- a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/ports/IOperationsAppProvider.java +++ b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/ports/IOperationsAppProvider.java @@ -3,7 +3,6 @@ import io.github.vzwingma.finances.budget.serverless.services.operations.business.model.operation.LigneOperation; import io.github.vzwingma.finances.budget.serverless.services.operations.business.model.budget.BudgetMensuel; import io.github.vzwingma.finances.budget.serverless.services.operations.business.model.budget.TotauxCategorie; -import io.smallrye.mutiny.Multi; import io.smallrye.mutiny.Uni; import java.util.List; @@ -31,7 +30,7 @@ public interface IOperationsAppProvider { * @param ligneOperationSource ligne de dépense, source, pour créer une nouvelle opération * @param libelleOperationCible libelle de la nouvelle opération * @param auteur auteur de l'action - * @return liste des opérations à mettre à jour dans le budget, avec l'intercompte + * liste des opérations à mettre à jour dans le budget, avec l'intercompte */ void addOperationIntercompte(List<LigneOperation> operations, LigneOperation ligneOperationSource, String libelleOperationCible, String auteur); From 2d8afdeb425f46f1d06ac020238c5c1855845c4a Mon Sep 17 00:00:00 2001 From: Vincent Zwingmann <vincent.zwingmann@gmail.com> Date: Mon, 11 Sep 2023 16:08:10 +0200 Subject: [PATCH 3/9] =?UTF-8?q?suppression=20de=20tag=20derni=C3=A8re=20op?= =?UTF-8?q?=C3=A9ration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/OperationsServiceTest.java | 24 ------------------- 1 file changed, 24 deletions(-) diff --git a/operations/src/test/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsServiceTest.java b/operations/src/test/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsServiceTest.java index 11bee7a..07b444e 100644 --- a/operations/src/test/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsServiceTest.java +++ b/operations/src/test/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsServiceTest.java @@ -46,30 +46,6 @@ public void setup() { operationsAppProvider.setParametragesService(parametragesServiceProvider); } - @Test - void testSetDerniereOperationKO(){ - // When - Mockito.when(budgetAppProvider.getBudgetMensuel(Mockito.anyString())) - .thenReturn(Uni.createFrom().item(MockDataBudgets.getBudgetActifCompteC1et3operationsRealisees())); - // Test - - CompletionException thrown = assertThrows(CompletionException.class, () -> operationsAppProvider.setLigneAsDerniereOperation("Test", "Test") - .await().indefinitely()); - assertEquals("io.github.vzwingma.finances.budget.services.communs.utils.exceptions.DataNotFoundException", thrown.getMessage()); - Mockito.verify(mockOperationDataProvider, Mockito.never()).sauvegardeBudgetMensuel(Mockito.any()); - } - - - @Test - void testSetDerniereOperation(){ - // When - Mockito.when(budgetAppProvider.getBudgetMensuel(Mockito.anyString())) - .thenReturn(Uni.createFrom().item(MockDataBudgets.getBudgetActifCompteC1et3operationsRealisees())); - Mockito.when(mockOperationDataProvider.sauvegardeBudgetMensuel(any(BudgetMensuel.class))).thenReturn(Uni.createFrom().item(new BudgetMensuel())); - // Test - assertTrue(operationsAppProvider.setLigneAsDerniereOperation("Test", "C1B2_L3").await().indefinitely()); - Mockito.verify(mockOperationDataProvider, Mockito.times(1)).sauvegardeBudgetMensuel(Mockito.any()); - } @Test From 873362aa6ca4fb1390f91aaf32545da96c4bb17e Mon Sep 17 00:00:00 2001 From: Vincent Zwingmann <vincent.zwingmann@gmail.com> Date: Tue, 19 Sep 2023 09:33:59 +0200 Subject: [PATCH 4/9] upgrade Quarkus --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 438adee..68ebdbc 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id> <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id> - <quarkus.platform.version>3.3.1</quarkus.platform.version> + <quarkus.platform.version>3.4.0</quarkus.platform.version> <lombok.version>1.18.28</lombok.version> <surefire-plugin.version>3.1.0</surefire-plugin.version> <jacoco.version>0.8.10</jacoco.version> From 921a7e710a019a364716bf3956b4b7d64d1aeedd Mon Sep 17 00:00:00 2001 From: Vincent Zwingmann <vincent.zwingmann@gmail.com> Date: Tue, 19 Sep 2023 23:33:45 +0200 Subject: [PATCH 5/9] =?UTF-8?q?#22=20:=20Correction=20des=20d=C3=A9clarati?= =?UTF-8?q?ons=20de=20remboursement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../services/operations/business/OperationsService.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsService.java b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsService.java index 58db5d2..3be8bf0 100644 --- a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsService.java +++ b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsService.java @@ -7,7 +7,6 @@ import io.github.vzwingma.finances.budget.services.communs.data.model.CategorieOperations; import io.github.vzwingma.finances.budget.services.communs.data.trace.BusinessTraceContext; import io.github.vzwingma.finances.budget.services.communs.data.trace.BusinessTraceContextKeyEnum; -import io.github.vzwingma.finances.budget.services.communs.utils.exceptions.DataNotFoundException; import io.github.vzwingma.finances.budget.serverless.services.operations.business.model.budget.BudgetMensuel; import io.github.vzwingma.finances.budget.serverless.services.operations.business.model.budget.TotauxCategorie; import io.github.vzwingma.finances.budget.serverless.services.operations.business.model.operation.OperationEtatEnum; @@ -71,7 +70,7 @@ public void calculSoldes(List<LigneOperation> operations, BudgetMensuel.Soldes s // Calcul par catégorie calculBudgetTotalCategories(totauxCategorieMap, operation); - // Calcul par sous catégorie + // Calcul par sous catégories calculBudgetTotalSsCategories(totauxSsCategoriesMap, operation); // Calcul des totaux if(operation.getEtat().equals(OperationEtatEnum.REALISEE)){ @@ -245,9 +244,7 @@ public Uni<LigneOperation> createOperationRemboursement(LigneOperation operation Uni.createFrom().item(operationSource), this.parametragesService.getCategorieParId(IdsCategoriesEnum.REMBOURSEMENT.getId())) .asTuple() - .map(tuple -> createOperationRemboursement(tuple.getItem1(), tuple.getItem2(), auteur)) - .onItem() - .ifNull().failWith(new DataNotFoundException("Impossible de créer le remboursement car la catégorie de remboursement n'a pas été trouvée")); + .map(tuple -> createOperationRemboursement(tuple.getItem1(), tuple.getItem2(), auteur)); } else{ return Uni.createFrom().nullItem(); From 6bdbf3a0e1382b1ff50ff3c85cb44b8b0ca9bc57 Mon Sep 17 00:00:00 2001 From: Vincent Zwingmann <vincent.zwingmann@gmail.com> Date: Tue, 19 Sep 2023 23:57:33 +0200 Subject: [PATCH 6/9] =?UTF-8?q?#22=20:=20Correction=20des=20d=C3=A9clarati?= =?UTF-8?q?ons=20de=20remboursement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../services/operations/business/OperationsService.java | 6 ++++-- .../services/operations/business/OperationsServiceTest.java | 3 +-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsService.java b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsService.java index 3be8bf0..4aa028b 100644 --- a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsService.java +++ b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsService.java @@ -7,6 +7,7 @@ import io.github.vzwingma.finances.budget.services.communs.data.model.CategorieOperations; import io.github.vzwingma.finances.budget.services.communs.data.trace.BusinessTraceContext; import io.github.vzwingma.finances.budget.services.communs.data.trace.BusinessTraceContextKeyEnum; +import io.github.vzwingma.finances.budget.services.communs.utils.exceptions.DataNotFoundException; import io.github.vzwingma.finances.budget.serverless.services.operations.business.model.budget.BudgetMensuel; import io.github.vzwingma.finances.budget.serverless.services.operations.business.model.budget.TotauxCategorie; import io.github.vzwingma.finances.budget.serverless.services.operations.business.model.operation.OperationEtatEnum; @@ -244,7 +245,9 @@ public Uni<LigneOperation> createOperationRemboursement(LigneOperation operation Uni.createFrom().item(operationSource), this.parametragesService.getCategorieParId(IdsCategoriesEnum.REMBOURSEMENT.getId())) .asTuple() - .map(tuple -> createOperationRemboursement(tuple.getItem1(), tuple.getItem2(), auteur)); + .map(tuple -> createOperationRemboursement(tuple.getItem1(), tuple.getItem2(), auteur)) + .onItem() + .ifNull().failWith(new DataNotFoundException("Impossible de créer le remboursement car la catégorie de remboursement n'a pas été trouvée")); } else{ return Uni.createFrom().nullItem(); @@ -257,7 +260,6 @@ public Uni<LigneOperation> createOperationRemboursement(LigneOperation operation * @param ligneOperation ligne d'opération à ajouter * @return ligne de remboursement */ - private LigneOperation createOperationRemboursement(LigneOperation ligneOperation, CategorieOperations ssCategorieRemboursement, String auteur) { if(ssCategorieRemboursement != null) { return completeOperationAttributes(new LigneOperation( diff --git a/operations/src/test/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsServiceTest.java b/operations/src/test/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsServiceTest.java index 07b444e..b452c20 100644 --- a/operations/src/test/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsServiceTest.java +++ b/operations/src/test/java/io/github/vzwingma/finances/budget/serverless/services/operations/business/OperationsServiceTest.java @@ -32,14 +32,13 @@ class OperationsServiceTest { private OperationsService operationsAppProvider; private IParametragesServiceProvider parametragesServiceProvider; - private IBudgetAppProvider budgetAppProvider; private IOperationsRepository mockOperationDataProvider; @BeforeEach public void setup() { mockOperationDataProvider = Mockito.mock(IOperationsRepository.class); operationsAppProvider = Mockito.spy(new OperationsService()); - budgetAppProvider = Mockito.mock(BudgetService.class); + IBudgetAppProvider budgetAppProvider = Mockito.mock(BudgetService.class); operationsAppProvider.setDataOperationsProvider(mockOperationDataProvider); operationsAppProvider.setBudgetService(budgetAppProvider); parametragesServiceProvider = Mockito.mock(IParametragesServiceProvider.class); From 856ec23600babf41bcb7cc9412083a4c037bb8f5 Mon Sep 17 00:00:00 2001 From: Vincent Zwingmann <vincent.zwingmann@gmail.com> Date: Wed, 20 Sep 2023 00:08:11 +0200 Subject: [PATCH 7/9] runtime Java17 --- communs/src/aws-deploy/sam.native.template.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/communs/src/aws-deploy/sam.native.template.yaml b/communs/src/aws-deploy/sam.native.template.yaml index 31ff11a..83a0152 100644 --- a/communs/src/aws-deploy/sam.native.template.yaml +++ b/communs/src/aws-deploy/sam.native.template.yaml @@ -22,7 +22,7 @@ Type: AWS::Serverless::Function Properties: Handler: not.used.in.provided.runtimei - Runtime: provided.al2 + Runtime: java17 CodeUri: parametrages/function.zip Description: µService Paramétrages __ENV__ MemorySize: 128 @@ -38,7 +38,7 @@ Type: AWS::Serverless::Function Properties: Handler: not.used.in.provided.runtimei - Runtime: provided.al2 + Runtime: java17 CodeUri: utilisateurs/function.zip Description: µService Utilisateurs __ENV__ MemorySize: 128 @@ -55,7 +55,7 @@ Type: AWS::Serverless::Function Properties: Handler: not.used.in.provided.runtimei - Runtime: provided.al2 + Runtime: java17 CodeUri: comptes/function.zip Description: µService Comptes __ENV__ MemorySize: 128 @@ -72,7 +72,7 @@ Type: AWS::Serverless::Function Properties: Handler: not.used.in.provided.runtimei - Runtime: provided.al2 + Runtime: java17 CodeUri: operations/function.zip Description: µService Opérations __ENV__ MemorySize: 128 From 2f1dda66021db5aa4615197dc847644f853a3955 Mon Sep 17 00:00:00 2001 From: Vincent Zwingmann <vincent.zwingmann@gmail.com> Date: Wed, 20 Sep 2023 12:04:47 +0200 Subject: [PATCH 8/9] =?UTF-8?q?Ajout=20des=20apikey=20sur=20les=20services?= =?UTF-8?q?=20externes=20appel=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../services/operations/spi/IComptesServiceProvider.java | 2 ++ .../services/operations/spi/IParametragesServiceProvider.java | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/spi/IComptesServiceProvider.java b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/spi/IComptesServiceProvider.java index 879a8d4..f7ea7be 100644 --- a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/spi/IComptesServiceProvider.java +++ b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/spi/IComptesServiceProvider.java @@ -3,6 +3,7 @@ import io.github.vzwingma.finances.budget.serverless.services.operations.api.enums.ComptesApiUrlEnum; import io.github.vzwingma.finances.budget.services.communs.data.model.CompteBancaire; import io.smallrye.mutiny.Uni; +import jakarta.ws.rs.Produces; import org.eclipse.microprofile.rest.client.annotation.RegisterClientHeaders; import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; @@ -12,6 +13,7 @@ /** * Service Provider Interface de {@link } */ +@Produces("application/json") @Path(ComptesApiUrlEnum.COMPTES_BASE) @RegisterRestClient(configKey = "comptes-service") @RegisterClientHeaders(RequestJWTHeaderFactory.class) diff --git a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/spi/IParametragesServiceProvider.java b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/spi/IParametragesServiceProvider.java index 6d6f370..355e049 100644 --- a/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/spi/IParametragesServiceProvider.java +++ b/operations/src/main/java/io/github/vzwingma/finances/budget/serverless/services/operations/spi/IParametragesServiceProvider.java @@ -5,6 +5,8 @@ import io.smallrye.mutiny.Uni; import jakarta.ws.rs.GET; import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import org.eclipse.microprofile.rest.client.annotation.RegisterClientHeaders; import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; import java.util.List; @@ -12,8 +14,10 @@ /** * Service Provider Interface de {@link } */ +@Produces("application/json") @Path(ParametragesApiUrlEnum.PARAMS_BASE) @RegisterRestClient(configKey = "parametrages-service") +@RegisterClientHeaders(RequestJWTHeaderFactory.class) public interface IParametragesServiceProvider { /** From 6814bb7ac84d3edd8a63dd2114fd5c19fccbc14b Mon Sep 17 00:00:00 2001 From: Vincent Zwingmann <vincent.zwingmann@gmail.com> Date: Wed, 20 Sep 2023 12:27:30 +0200 Subject: [PATCH 9/9] retour du runtime provided AL2 --- communs/src/aws-deploy/sam.native.template.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/communs/src/aws-deploy/sam.native.template.yaml b/communs/src/aws-deploy/sam.native.template.yaml index 83a0152..31ff11a 100644 --- a/communs/src/aws-deploy/sam.native.template.yaml +++ b/communs/src/aws-deploy/sam.native.template.yaml @@ -22,7 +22,7 @@ Type: AWS::Serverless::Function Properties: Handler: not.used.in.provided.runtimei - Runtime: java17 + Runtime: provided.al2 CodeUri: parametrages/function.zip Description: µService Paramétrages __ENV__ MemorySize: 128 @@ -38,7 +38,7 @@ Type: AWS::Serverless::Function Properties: Handler: not.used.in.provided.runtimei - Runtime: java17 + Runtime: provided.al2 CodeUri: utilisateurs/function.zip Description: µService Utilisateurs __ENV__ MemorySize: 128 @@ -55,7 +55,7 @@ Type: AWS::Serverless::Function Properties: Handler: not.used.in.provided.runtimei - Runtime: java17 + Runtime: provided.al2 CodeUri: comptes/function.zip Description: µService Comptes __ENV__ MemorySize: 128 @@ -72,7 +72,7 @@ Type: AWS::Serverless::Function Properties: Handler: not.used.in.provided.runtimei - Runtime: java17 + Runtime: provided.al2 CodeUri: operations/function.zip Description: µService Opérations __ENV__ MemorySize: 128