From 23f69643c2910a9ceaca94a6c2c739cd74168028 Mon Sep 17 00:00:00 2001 From: AzraKayn/Axel Date: Mon, 15 Dec 2025 13:55:07 +0100 Subject: [PATCH 1/2] Refactoring all code, use Service, Factory and Utils --- .idea/.gitignore | 10 +++ .idea/checkstyle-idea.xml | 16 ++++ .idea/compiler.xml | 13 +++ .idea/jarRepositories.xml | 20 +++++ .idea/misc.xml | 12 +++ .idea/vcs.xml | 6 ++ .../tp_grasps/ReservationController.java | 79 +++++++++---------- .../tp_grasps/beans/Reservation.java | 4 +- .../diginamic/tp_grasps/daos/IClientDao.java | 8 ++ .../tp_grasps/daos/ITypeReservationDao.java | 8 ++ .../tp_grasps/daos/{ => impl}/ClientDao.java | 5 +- .../daos/{ => impl}/TypeReservationDao.java | 5 +- .../tp_grasps/factory/ReservationFactory.java | 17 ++++ .../services/IReservationService.java | 10 +++ .../services/impl/ReservationService.java | 21 +++++ .../diginamic/tp_grasps/utils/DateUtils.java | 11 +++ 16 files changed, 199 insertions(+), 46 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/checkstyle-idea.xml create mode 100644 .idea/compiler.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml create mode 100644 src/main/java/fr/diginamic/tp_grasps/daos/IClientDao.java create mode 100644 src/main/java/fr/diginamic/tp_grasps/daos/ITypeReservationDao.java rename src/main/java/fr/diginamic/tp_grasps/daos/{ => impl}/ClientDao.java (76%) rename src/main/java/fr/diginamic/tp_grasps/daos/{ => impl}/TypeReservationDao.java (74%) create mode 100644 src/main/java/fr/diginamic/tp_grasps/factory/ReservationFactory.java create mode 100644 src/main/java/fr/diginamic/tp_grasps/services/IReservationService.java create mode 100644 src/main/java/fr/diginamic/tp_grasps/services/impl/ReservationService.java create mode 100644 src/main/java/fr/diginamic/tp_grasps/utils/DateUtils.java diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..7bc07ec --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,10 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Environment-dependent path to Maven home directory +/mavenHomeManager.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/checkstyle-idea.xml b/.idea/checkstyle-idea.xml new file mode 100644 index 0000000..afc61f9 --- /dev/null +++ b/.idea/checkstyle-idea.xml @@ -0,0 +1,16 @@ + + + + 12.1.0 + JavaOnly + true + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..c47557a --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..9dc782b --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/java/fr/diginamic/tp_grasps/ReservationController.java b/src/main/java/fr/diginamic/tp_grasps/ReservationController.java index a6b8bd9..53bea9c 100644 --- a/src/main/java/fr/diginamic/tp_grasps/ReservationController.java +++ b/src/main/java/fr/diginamic/tp_grasps/ReservationController.java @@ -1,77 +1,76 @@ package fr.diginamic.tp_grasps; import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; + import fr.diginamic.tp_grasps.beans.Client; import fr.diginamic.tp_grasps.beans.Reservation; import fr.diginamic.tp_grasps.beans.TypeReservation; -import fr.diginamic.tp_grasps.daos.ClientDao; -import fr.diginamic.tp_grasps.daos.TypeReservationDao; +import fr.diginamic.tp_grasps.daos.IClientDao; +import fr.diginamic.tp_grasps.daos.ITypeReservationDao; +import fr.diginamic.tp_grasps.daos.impl.ClientDao; +import fr.diginamic.tp_grasps.daos.impl.TypeReservationDao; +import fr.diginamic.tp_grasps.factory.ReservationFactory; +import fr.diginamic.tp_grasps.services.IReservationService; +import fr.diginamic.tp_grasps.services.impl.ReservationService; +import fr.diginamic.tp_grasps.utils.DateUtils; /** Controlleur qui prend en charge la gestion des réservations client * @author RichardBONNAMY * */ public class ReservationController { - + /** formatter */ - private DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss"); - - /** DAO permettant d'accéder à la table des clients */ - private ClientDao clientDao = new ClientDao(); - - /** DAO permettant d'accéder à la table des types de réservation */ - private TypeReservationDao typeReservationDao = new TypeReservationDao(); - - /** Méthode qui créée une réservation pour un client à partir des informations transmises + //private DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss"); + + /** + * DAO permettant d'accéder à la table des clients + */ + private IClientDao clientDao = new ClientDao(); + + /** + * DAO permettant d'accéder à la table des types de réservation + */ + private ITypeReservationDao typeReservationDao = new TypeReservationDao(); + + private IReservationService reservationService = new ReservationService(); + + /** + * Méthode qui créée une réservation pour un client à partir des informations transmises + * * @param params contient toutes les infos permettant de créer une réservation * @return Reservation */ public Reservation creerReservation(Params params) { - + // 1) Récupération des infos provenant de la classe appelante String identifiantClient = params.getIdentifiantClient(); String dateReservationStr = params.getDateReservation(); String typeReservation = params.getTypeReservation(); int nbPlaces = params.getNbPlaces(); - + // 2) Conversion de la date de réservation en LocalDateTime - LocalDateTime dateReservation = toDate(dateReservationStr); - + + LocalDateTime dateReservation = DateUtils.formatStringToDateTime(dateReservationStr); + // 3) Extraction de la base de données des informations client Client client = clientDao.extraireClient(identifiantClient); - + // 4) Extraction de la base de données des infos concernant le type de la réservation TypeReservation type = typeReservationDao.extraireTypeReservation(typeReservation); - + // 5) Création de la réservation - Reservation reservation = new Reservation(dateReservation); - reservation.setNbPlaces(nbPlaces); - reservation.setClient(client); - + Reservation reservation = ReservationFactory.getInstance(dateReservation, client, nbPlaces); + // 6) Ajout de la réservation au client client.getReservations().add(reservation); - + // 7) Calcul du montant total de la réservation qui dépend: // - du nombre de places // - de la réduction qui s'applique si le client est premium ou non - double total = type.getMontant() * nbPlaces; - if (client.isPremium()) { - reservation.setTotal(total*(1-type.getReductionPourcent()/100.0)); - } - else { - reservation.setTotal(total); - } - return reservation; - } - /** Transforme une date au format String en {@link LocalDateTime} - * @param dateStr date au format String - * @return LocalDateTime - */ - private LocalDateTime toDate(String dateStr) { - - return LocalDateTime.parse(dateStr, formatter); + double result = reservationService.calculeMontantReservation(client, type, reservation); + return reservation; } } diff --git a/src/main/java/fr/diginamic/tp_grasps/beans/Reservation.java b/src/main/java/fr/diginamic/tp_grasps/beans/Reservation.java index e8a82c2..f29406f 100644 --- a/src/main/java/fr/diginamic/tp_grasps/beans/Reservation.java +++ b/src/main/java/fr/diginamic/tp_grasps/beans/Reservation.java @@ -8,8 +8,8 @@ import javax.persistence.ManyToOne; @Entity -public class Reservation { - +public class Reservation { + @Id private Long id; diff --git a/src/main/java/fr/diginamic/tp_grasps/daos/IClientDao.java b/src/main/java/fr/diginamic/tp_grasps/daos/IClientDao.java new file mode 100644 index 0000000..cf50414 --- /dev/null +++ b/src/main/java/fr/diginamic/tp_grasps/daos/IClientDao.java @@ -0,0 +1,8 @@ +package fr.diginamic.tp_grasps.daos; + +import fr.diginamic.tp_grasps.beans.Client; + +public interface IClientDao { + + public Client extraireClient(String id); +} diff --git a/src/main/java/fr/diginamic/tp_grasps/daos/ITypeReservationDao.java b/src/main/java/fr/diginamic/tp_grasps/daos/ITypeReservationDao.java new file mode 100644 index 0000000..b5cfd44 --- /dev/null +++ b/src/main/java/fr/diginamic/tp_grasps/daos/ITypeReservationDao.java @@ -0,0 +1,8 @@ +package fr.diginamic.tp_grasps.daos; + +import fr.diginamic.tp_grasps.beans.TypeReservation; + +public interface ITypeReservationDao { + + public TypeReservation extraireTypeReservation(String type); +} diff --git a/src/main/java/fr/diginamic/tp_grasps/daos/ClientDao.java b/src/main/java/fr/diginamic/tp_grasps/daos/impl/ClientDao.java similarity index 76% rename from src/main/java/fr/diginamic/tp_grasps/daos/ClientDao.java rename to src/main/java/fr/diginamic/tp_grasps/daos/impl/ClientDao.java index 4e3690e..740ad60 100644 --- a/src/main/java/fr/diginamic/tp_grasps/daos/ClientDao.java +++ b/src/main/java/fr/diginamic/tp_grasps/daos/impl/ClientDao.java @@ -1,11 +1,12 @@ -package fr.diginamic.tp_grasps.daos; +package fr.diginamic.tp_grasps.daos.impl; import java.util.List; import java.util.Optional; import fr.diginamic.tp_grasps.beans.Client; +import fr.diginamic.tp_grasps.daos.IClientDao; -public class ClientDao { +public class ClientDao implements IClientDao { private static Client[] clients = {new Client("1", true), new Client("2", true), new Client("3", false)}; diff --git a/src/main/java/fr/diginamic/tp_grasps/daos/TypeReservationDao.java b/src/main/java/fr/diginamic/tp_grasps/daos/impl/TypeReservationDao.java similarity index 74% rename from src/main/java/fr/diginamic/tp_grasps/daos/TypeReservationDao.java rename to src/main/java/fr/diginamic/tp_grasps/daos/impl/TypeReservationDao.java index 007038d..4012e57 100644 --- a/src/main/java/fr/diginamic/tp_grasps/daos/TypeReservationDao.java +++ b/src/main/java/fr/diginamic/tp_grasps/daos/impl/TypeReservationDao.java @@ -1,11 +1,12 @@ -package fr.diginamic.tp_grasps.daos; +package fr.diginamic.tp_grasps.daos.impl; import java.util.List; import java.util.Optional; import fr.diginamic.tp_grasps.beans.TypeReservation; +import fr.diginamic.tp_grasps.daos.ITypeReservationDao; -public class TypeReservationDao { +public class TypeReservationDao implements ITypeReservationDao { private static TypeReservation[] types = {new TypeReservation("TH", 150.0, 15.0), new TypeReservation("CI", 10.9, 0.0)}; diff --git a/src/main/java/fr/diginamic/tp_grasps/factory/ReservationFactory.java b/src/main/java/fr/diginamic/tp_grasps/factory/ReservationFactory.java new file mode 100644 index 0000000..83e78b1 --- /dev/null +++ b/src/main/java/fr/diginamic/tp_grasps/factory/ReservationFactory.java @@ -0,0 +1,17 @@ +package fr.diginamic.tp_grasps.factory; + +import fr.diginamic.tp_grasps.beans.Client; +import fr.diginamic.tp_grasps.beans.Reservation; + +import java.time.LocalDateTime; + +public class ReservationFactory { + + public static Reservation getInstance(LocalDateTime dateTime, Client client, int nbPlaces) { + Reservation reservation = new Reservation(dateTime); + reservation.setNbPlaces(nbPlaces); + reservation.setClient(client); + + return reservation; + } +} diff --git a/src/main/java/fr/diginamic/tp_grasps/services/IReservationService.java b/src/main/java/fr/diginamic/tp_grasps/services/IReservationService.java new file mode 100644 index 0000000..f317853 --- /dev/null +++ b/src/main/java/fr/diginamic/tp_grasps/services/IReservationService.java @@ -0,0 +1,10 @@ +package fr.diginamic.tp_grasps.services; + +import fr.diginamic.tp_grasps.beans.Client; +import fr.diginamic.tp_grasps.beans.Reservation; +import fr.diginamic.tp_grasps.beans.TypeReservation; + +public interface IReservationService { + + public double calculeMontantReservation (Client client, TypeReservation typeReservation, Reservation reservation); +} diff --git a/src/main/java/fr/diginamic/tp_grasps/services/impl/ReservationService.java b/src/main/java/fr/diginamic/tp_grasps/services/impl/ReservationService.java new file mode 100644 index 0000000..956f340 --- /dev/null +++ b/src/main/java/fr/diginamic/tp_grasps/services/impl/ReservationService.java @@ -0,0 +1,21 @@ +package fr.diginamic.tp_grasps.services.impl; + + +import fr.diginamic.tp_grasps.beans.Client; +import fr.diginamic.tp_grasps.beans.Reservation; +import fr.diginamic.tp_grasps.beans.TypeReservation; +import fr.diginamic.tp_grasps.services.IReservationService; + +public class ReservationService implements IReservationService { + + public double calculeMontantReservation (Client client, TypeReservation typeReservation, Reservation reservation) { + double total = typeReservation.getMontant() * reservation.getNbPlaces(); + if (client.isPremium()) { + reservation.setTotal(total*(1-typeReservation.getReductionPourcent()/100.0)); + } else { + reservation.setTotal(total); + } + + return reservation.getTotal(); + } +} diff --git a/src/main/java/fr/diginamic/tp_grasps/utils/DateUtils.java b/src/main/java/fr/diginamic/tp_grasps/utils/DateUtils.java new file mode 100644 index 0000000..9937c95 --- /dev/null +++ b/src/main/java/fr/diginamic/tp_grasps/utils/DateUtils.java @@ -0,0 +1,11 @@ +package fr.diginamic.tp_grasps.utils; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +public class DateUtils { + + public static LocalDateTime formatStringToDateTime(String dateStr) { + return LocalDateTime.parse(dateStr, DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss")); + } +} From a48ac154d2f86cfa68d0414930ebde4afa3d2547 Mon Sep 17 00:00:00 2001 From: AzraKayn/Axel Date: Mon, 15 Dec 2025 14:20:08 +0100 Subject: [PATCH 2/2] Exemple de correction --- .../tp_grasps/ReservationController.java | 17 +++++++++--- .../diginamic/tp_grasps/daos/IClientDao.java | 8 +++++- .../tp_grasps/daos/ITypeReservationDao.java | 8 +++++- .../tp_grasps/daos/impl/ClientDao.java | 12 +++++++-- .../daos/impl/TypeReservationDao.java | 9 ++++++- .../factory/IReservationFactory.java | 19 ++++++++++++++ .../tp_grasps/factory/ReservationFactory.java | 17 ------------ .../factory/impl/ReservationFactory.java | 26 +++++++++++++++++++ .../services/IReservationService.java | 10 ++++++- .../services/impl/ReservationService.java | 14 +++++++--- .../diginamic/tp_grasps/utils/DateUtils.java | 6 +++++ 11 files changed, 116 insertions(+), 30 deletions(-) create mode 100644 src/main/java/fr/diginamic/tp_grasps/factory/IReservationFactory.java delete mode 100644 src/main/java/fr/diginamic/tp_grasps/factory/ReservationFactory.java create mode 100644 src/main/java/fr/diginamic/tp_grasps/factory/impl/ReservationFactory.java diff --git a/src/main/java/fr/diginamic/tp_grasps/ReservationController.java b/src/main/java/fr/diginamic/tp_grasps/ReservationController.java index 53bea9c..983643a 100644 --- a/src/main/java/fr/diginamic/tp_grasps/ReservationController.java +++ b/src/main/java/fr/diginamic/tp_grasps/ReservationController.java @@ -1,6 +1,7 @@ package fr.diginamic.tp_grasps; import java.time.LocalDateTime; +import java.util.Currency; import fr.diginamic.tp_grasps.beans.Client; @@ -10,7 +11,8 @@ import fr.diginamic.tp_grasps.daos.ITypeReservationDao; import fr.diginamic.tp_grasps.daos.impl.ClientDao; import fr.diginamic.tp_grasps.daos.impl.TypeReservationDao; -import fr.diginamic.tp_grasps.factory.ReservationFactory; +import fr.diginamic.tp_grasps.factory.IReservationFactory; +import fr.diginamic.tp_grasps.factory.impl.ReservationFactory; import fr.diginamic.tp_grasps.services.IReservationService; import fr.diginamic.tp_grasps.services.impl.ReservationService; import fr.diginamic.tp_grasps.utils.DateUtils; @@ -34,8 +36,17 @@ public class ReservationController { */ private ITypeReservationDao typeReservationDao = new TypeReservationDao(); + /** + * DAO permettant d'accéder à la table réservation + */ + private IReservationFactory reservationFactory = new ReservationFactory(); + + /** + * Services métier pour la réservation + */ private IReservationService reservationService = new ReservationService(); + /** * Méthode qui créée une réservation pour un client à partir des informations transmises * @@ -61,7 +72,7 @@ public Reservation creerReservation(Params params) { TypeReservation type = typeReservationDao.extraireTypeReservation(typeReservation); // 5) Création de la réservation - Reservation reservation = ReservationFactory.getInstance(dateReservation, client, nbPlaces); + Reservation reservation = reservationFactory.getInstance(dateReservation, client, nbPlaces); // 6) Ajout de la réservation au client client.getReservations().add(reservation); @@ -69,8 +80,8 @@ public Reservation creerReservation(Params params) { // 7) Calcul du montant total de la réservation qui dépend: // - du nombre de places // - de la réduction qui s'applique si le client est premium ou non + reservation.setTotal(reservationService.calculeMontantReservation(client, type, reservation)); - double result = reservationService.calculeMontantReservation(client, type, reservation); return reservation; } } diff --git a/src/main/java/fr/diginamic/tp_grasps/daos/IClientDao.java b/src/main/java/fr/diginamic/tp_grasps/daos/IClientDao.java index cf50414..712f5b9 100644 --- a/src/main/java/fr/diginamic/tp_grasps/daos/IClientDao.java +++ b/src/main/java/fr/diginamic/tp_grasps/daos/IClientDao.java @@ -4,5 +4,11 @@ public interface IClientDao { - public Client extraireClient(String id); + /** + * @param id + * @return + * + * Méthode interface pour extraire le client + */ + Client extraireClient(String id); } diff --git a/src/main/java/fr/diginamic/tp_grasps/daos/ITypeReservationDao.java b/src/main/java/fr/diginamic/tp_grasps/daos/ITypeReservationDao.java index b5cfd44..eb06d09 100644 --- a/src/main/java/fr/diginamic/tp_grasps/daos/ITypeReservationDao.java +++ b/src/main/java/fr/diginamic/tp_grasps/daos/ITypeReservationDao.java @@ -4,5 +4,11 @@ public interface ITypeReservationDao { - public TypeReservation extraireTypeReservation(String type); + /** + * @param type + * @return + * + * Méthode interface pour extraire le type de réservation + */ + TypeReservation extraireTypeReservation(String type); } diff --git a/src/main/java/fr/diginamic/tp_grasps/daos/impl/ClientDao.java b/src/main/java/fr/diginamic/tp_grasps/daos/impl/ClientDao.java index 740ad60..56a8abe 100644 --- a/src/main/java/fr/diginamic/tp_grasps/daos/impl/ClientDao.java +++ b/src/main/java/fr/diginamic/tp_grasps/daos/impl/ClientDao.java @@ -9,9 +9,17 @@ public class ClientDao implements IClientDao { private static Client[] clients = {new Client("1", true), new Client("2", true), new Client("3", false)}; - + + /** + * @param id + * @return + * + * Méthode de la classe qui vient faire une extraction d'un client + */ + + @Override public Client extraireClient(String id) { - + Optional opt = List.of(clients).stream().filter(c->c.getIdentifiantClient().equals(id)).findAny(); if (opt.isPresent()) { return opt.get(); diff --git a/src/main/java/fr/diginamic/tp_grasps/daos/impl/TypeReservationDao.java b/src/main/java/fr/diginamic/tp_grasps/daos/impl/TypeReservationDao.java index 4012e57..b0a330d 100644 --- a/src/main/java/fr/diginamic/tp_grasps/daos/impl/TypeReservationDao.java +++ b/src/main/java/fr/diginamic/tp_grasps/daos/impl/TypeReservationDao.java @@ -9,7 +9,14 @@ public class TypeReservationDao implements ITypeReservationDao { private static TypeReservation[] types = {new TypeReservation("TH", 150.0, 15.0), new TypeReservation("CI", 10.9, 0.0)}; - + + /** + * @param type + * @return + * + * Méthode de la classe qui vient faire une extraction du type de réservation + */ + @Override public TypeReservation extraireTypeReservation(String type) { Optional opt = List.of(types).stream().filter(t->t.getType().equals(type)).findAny(); diff --git a/src/main/java/fr/diginamic/tp_grasps/factory/IReservationFactory.java b/src/main/java/fr/diginamic/tp_grasps/factory/IReservationFactory.java new file mode 100644 index 0000000..efe5287 --- /dev/null +++ b/src/main/java/fr/diginamic/tp_grasps/factory/IReservationFactory.java @@ -0,0 +1,19 @@ +package fr.diginamic.tp_grasps.factory; + +import fr.diginamic.tp_grasps.beans.Client; +import fr.diginamic.tp_grasps.beans.Reservation; + +import java.time.LocalDateTime; + +public interface IReservationFactory { + + /** + * @param dateTime + * @param client + * @param nbPlaces + * @return + * + * Méthode interface pour créer une instance + */ + Reservation getInstance(LocalDateTime dateTime, Client client, int nbPlaces); +} diff --git a/src/main/java/fr/diginamic/tp_grasps/factory/ReservationFactory.java b/src/main/java/fr/diginamic/tp_grasps/factory/ReservationFactory.java deleted file mode 100644 index 83e78b1..0000000 --- a/src/main/java/fr/diginamic/tp_grasps/factory/ReservationFactory.java +++ /dev/null @@ -1,17 +0,0 @@ -package fr.diginamic.tp_grasps.factory; - -import fr.diginamic.tp_grasps.beans.Client; -import fr.diginamic.tp_grasps.beans.Reservation; - -import java.time.LocalDateTime; - -public class ReservationFactory { - - public static Reservation getInstance(LocalDateTime dateTime, Client client, int nbPlaces) { - Reservation reservation = new Reservation(dateTime); - reservation.setNbPlaces(nbPlaces); - reservation.setClient(client); - - return reservation; - } -} diff --git a/src/main/java/fr/diginamic/tp_grasps/factory/impl/ReservationFactory.java b/src/main/java/fr/diginamic/tp_grasps/factory/impl/ReservationFactory.java new file mode 100644 index 0000000..e08a10c --- /dev/null +++ b/src/main/java/fr/diginamic/tp_grasps/factory/impl/ReservationFactory.java @@ -0,0 +1,26 @@ +package fr.diginamic.tp_grasps.factory.impl; + +import fr.diginamic.tp_grasps.beans.Client; +import fr.diginamic.tp_grasps.beans.Reservation; +import fr.diginamic.tp_grasps.factory.IReservationFactory; + +import java.time.LocalDateTime; + +public class ReservationFactory implements IReservationFactory { + + /** + * @param dateTime + * @param client + * @param nbPlaces + * @return + * + * Vient Créer une instance de la réservation + */ + public Reservation getInstance(LocalDateTime dateTime, Client client, int nbPlaces) { + Reservation reservation = new Reservation(dateTime); + reservation.setNbPlaces(nbPlaces); + reservation.setClient(client); + + return reservation; + } +} diff --git a/src/main/java/fr/diginamic/tp_grasps/services/IReservationService.java b/src/main/java/fr/diginamic/tp_grasps/services/IReservationService.java index f317853..b47211c 100644 --- a/src/main/java/fr/diginamic/tp_grasps/services/IReservationService.java +++ b/src/main/java/fr/diginamic/tp_grasps/services/IReservationService.java @@ -6,5 +6,13 @@ public interface IReservationService { - public double calculeMontantReservation (Client client, TypeReservation typeReservation, Reservation reservation); + /** + * @param client + * @param typeReservation + * @param reservation + * @return + * + * Méthode interface pour calculer le total de la réservation + */ + double calculeMontantReservation (Client client, TypeReservation typeReservation, Reservation reservation); } diff --git a/src/main/java/fr/diginamic/tp_grasps/services/impl/ReservationService.java b/src/main/java/fr/diginamic/tp_grasps/services/impl/ReservationService.java index 956f340..512452c 100644 --- a/src/main/java/fr/diginamic/tp_grasps/services/impl/ReservationService.java +++ b/src/main/java/fr/diginamic/tp_grasps/services/impl/ReservationService.java @@ -8,14 +8,20 @@ public class ReservationService implements IReservationService { + /** + * @param client + * @param typeReservation + * @param reservation + * @return + * + * Montant qui calcule le total de la réservation en fonction du type de Client + */ public double calculeMontantReservation (Client client, TypeReservation typeReservation, Reservation reservation) { double total = typeReservation.getMontant() * reservation.getNbPlaces(); if (client.isPremium()) { - reservation.setTotal(total*(1-typeReservation.getReductionPourcent()/100.0)); + return total*(1-typeReservation.getReductionPourcent()/100.0); } else { - reservation.setTotal(total); + return total; } - - return reservation.getTotal(); } } diff --git a/src/main/java/fr/diginamic/tp_grasps/utils/DateUtils.java b/src/main/java/fr/diginamic/tp_grasps/utils/DateUtils.java index 9937c95..5e42eaf 100644 --- a/src/main/java/fr/diginamic/tp_grasps/utils/DateUtils.java +++ b/src/main/java/fr/diginamic/tp_grasps/utils/DateUtils.java @@ -5,6 +5,12 @@ public class DateUtils { + /** + * @param dateStr + * @return + * + * Permet de formater la date ex: 20/11/2020 19:55:55 + */ public static LocalDateTime formatStringToDateTime(String dateStr) { return LocalDateTime.parse(dateStr, DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss")); }