From e0ca2c700c937c8233a1f43df88dc8e09d5e6455 Mon Sep 17 00:00:00 2001 From: Alix JEUDI--LEMOINE Date: Mon, 25 Mar 2024 18:25:40 +0100 Subject: [PATCH] =?UTF-8?q?Modification=20schema=20base=20pour=20ajouter?= =?UTF-8?q?=20un=20status=20et=20une=20date=20de=20cr=C3=A9ation=20sur=20l?= =?UTF-8?q?es=20parties=20+=20ajout=20fonction=20cr=C3=A9ation=20uid=20pou?= =?UTF-8?q?r=20codeInvitation=20+=20cr=C3=A9ation=20controller=20Invite=20?= =?UTF-8?q?+=20Jeu=20+=20cr=C3=A9ation=20nouveau=20DTO=20+=203=20exception?= =?UTF-8?q?s=20+=20InviteService?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sae/controllers/InviteController.java | 2 ++ .../sae/controllers/JeuController.java | 2 ++ .../controllers/request/PartieRequest.java | 2 ++ .../sae/dto/partie/PartieNewDTO.java | 2 ++ .../PartyAlreadyStartedException.java | 2 ++ .../notFound/InviteNotFoundException.java | 2 ++ .../notFound/JeuNotFoundException.java | 7 +++++++ .../sae/services/InviteService.java | 2 ++ .../src/main/resources/schema.sql | 21 ++++++++++++++++++- 9 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/InviteController.java create mode 100644 SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/JeuController.java create mode 100644 SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/request/PartieRequest.java create mode 100644 SpringBootProject/src/main/java/fr/iut/sciencequest/sae/dto/partie/PartieNewDTO.java create mode 100644 SpringBootProject/src/main/java/fr/iut/sciencequest/sae/exceptions/PartyAlreadyStartedException.java create mode 100644 SpringBootProject/src/main/java/fr/iut/sciencequest/sae/exceptions/notFound/InviteNotFoundException.java create mode 100644 SpringBootProject/src/main/java/fr/iut/sciencequest/sae/exceptions/notFound/JeuNotFoundException.java create mode 100644 SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/InviteService.java diff --git a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/InviteController.java b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/InviteController.java new file mode 100644 index 0000000..5d1e69b --- /dev/null +++ b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/InviteController.java @@ -0,0 +1,2 @@ +package fr.iut.sciencequest.sae.controllers;public class InviteController { +} diff --git a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/JeuController.java b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/JeuController.java new file mode 100644 index 0000000..201caef --- /dev/null +++ b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/JeuController.java @@ -0,0 +1,2 @@ +package fr.iut.sciencequest.sae.controllers;public class JeuController { +} diff --git a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/request/PartieRequest.java b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/request/PartieRequest.java new file mode 100644 index 0000000..d7a351a --- /dev/null +++ b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/controllers/request/PartieRequest.java @@ -0,0 +1,2 @@ +package fr.iut.sciencequest.sae.controllers.request;public class PartieRequest { +} diff --git a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/dto/partie/PartieNewDTO.java b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/dto/partie/PartieNewDTO.java new file mode 100644 index 0000000..e3d2146 --- /dev/null +++ b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/dto/partie/PartieNewDTO.java @@ -0,0 +1,2 @@ +package fr.iut.sciencequest.sae.dto.partie;public class PartieNewDTO { +} diff --git a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/exceptions/PartyAlreadyStartedException.java b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/exceptions/PartyAlreadyStartedException.java new file mode 100644 index 0000000..cc987ea --- /dev/null +++ b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/exceptions/PartyAlreadyStartedException.java @@ -0,0 +1,2 @@ +package fr.iut.sciencequest.sae.exceptions;public class PartyAlreadyStartedException { +} diff --git a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/exceptions/notFound/InviteNotFoundException.java b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/exceptions/notFound/InviteNotFoundException.java new file mode 100644 index 0000000..f2587e1 --- /dev/null +++ b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/exceptions/notFound/InviteNotFoundException.java @@ -0,0 +1,2 @@ +package fr.iut.sciencequest.sae.exceptions.notFound;public class InviteNotFoundException { +} diff --git a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/exceptions/notFound/JeuNotFoundException.java b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/exceptions/notFound/JeuNotFoundException.java new file mode 100644 index 0000000..b3d1995 --- /dev/null +++ b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/exceptions/notFound/JeuNotFoundException.java @@ -0,0 +1,7 @@ +package fr.iut.sciencequest.sae.exceptions.notFound; + +public class DifficulteNotFoundException extends EntityNotFoundException{ + public DifficulteNotFoundException(int id) { + super("Difficulté", id); + } +} diff --git a/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/InviteService.java b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/InviteService.java new file mode 100644 index 0000000..ae31836 --- /dev/null +++ b/SpringBootProject/src/main/java/fr/iut/sciencequest/sae/services/InviteService.java @@ -0,0 +1,2 @@ +package fr.iut.sciencequest.sae.services;public class InviteService { +} diff --git a/SpringBootProject/src/main/resources/schema.sql b/SpringBootProject/src/main/resources/schema.sql index 815185d..8b219b0 100644 --- a/SpringBootProject/src/main/resources/schema.sql +++ b/SpringBootProject/src/main/resources/schema.sql @@ -92,10 +92,29 @@ CREATE TABLE Jeu( -- Partie +CREATE OR REPLACE FUNCTION make_uid() RETURNS text AS +' + DECLARE + new_uid text; + done bool; + BEGIN + done := false; + WHILE NOT done LOOP + new_uid := UPPER(SUBSTRING(md5(''''||now()::text||random()::text) FOR 5)); + done := NOT exists(SELECT 1 FROM partie WHERE codeinvitation=new_uid); + END LOOP; + + RETURN new_uid; + END; +' LANGUAGE PLPGSQL VOLATILE; + + CREATE TABLE Partie( id SERIAL PRIMARY KEY, codeInvitation varchar(5) NOT NULL UNIQUE, - idJeu integer REFERENCES Jeu(id) + idJeu integer REFERENCES Jeu(id), + status varchar(128) NOT NULL DEFAULT 'pending', + dateCreation timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ); -- JOUEUR