From 12e5d98669af402e737fb4fcd62e7601dd0a62dd Mon Sep 17 00:00:00 2001
From: Mamadu Lamarana Bah <mamadulamarana.bah.etu@univ-lille.fr>
Date: Mon, 19 Feb 2024 11:29:20 +0100
Subject: [PATCH] =?UTF-8?q?gestion=20de=20la=20pr=C3=A9sence=20d'un=20seul?=
 =?UTF-8?q?=20comissaire=20priseur?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 encheres/client/src/scripts/auctioneer.js | 19 ++++++++++++++++---
 encheres/client/src/scripts/bidder.js     | 12 +++++++++---
 2 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/encheres/client/src/scripts/auctioneer.js b/encheres/client/src/scripts/auctioneer.js
index 0f9fb0a..b51e796 100644
--- a/encheres/client/src/scripts/auctioneer.js
+++ b/encheres/client/src/scripts/auctioneer.js
@@ -2,6 +2,8 @@ console.log('le bundle-auctioneer a été généré');
 
 const socket = io();
 
+let winnerId;
+
 const inputName = document.getElementById("name");
 const inputValue = document.getElementById("value");
 const buttonStart = document.getElementById("start");
@@ -9,7 +11,16 @@ const buttonStart = document.getElementById("start");
 const buttonSale = document.getElementById("sale");
 buttonSale.addEventListener("click", saleProduct);
 
+const ident = document.getElementById("ident-auc");
+
 socket.emit("auctioneer");
+socket.on("alreadyAuct", () => alreadyAuctioneer());
+
+function alreadyAuctioneer() {
+    const prod = document.getElementById("prod-auc");
+    ident.textContent = "Connexion refusée, il y a déjà un comissaire-priseur";
+    prod.style.display = "none";
+}
 
 const prixActuel = document.getElementById("prixactuel");
 prixActuel.textContent = inputValue.value+"€";
@@ -26,20 +37,22 @@ function emptyInput() {
 inputName.addEventListener("input", emptyInput);
 
 buttonStart.addEventListener("click", startEnchere);
-const ident = document.getElementById("ident-auc");
 
 function startEnchere() {
     prixActuel.textContent = inputValue.value+"€";
     buttonSale.disabled = false;
     ident.textContent = `Debut de l'enchère pour ${inputName.value} à ${inputValue.value}€`;
     socket.emit("infos", inputName.value, inputValue.value);
-    socket.on("changePrix", (nouveauPrix, sock) => updatePrix(nouveauPrix, sock));
+    socket.on("changePrix", (nouveauPrix, sock) => {
+        updatePrix(nouveauPrix, sock);
+        winnerId = sock;
+    });
     waitForNewEnchere(true);
 }
 
 function saleProduct() {
     ident.textContent = `Fin de l'enchère. Un ${inputName.value} à ${prixActuel.textContent}`;
-    socket.emit("adjuge");
+    socket.emit("adjuge", winnerId);
     waitForNewEnchere(false);
 }
 
diff --git a/encheres/client/src/scripts/bidder.js b/encheres/client/src/scripts/bidder.js
index b4f8bc2..097d1e9 100644
--- a/encheres/client/src/scripts/bidder.js
+++ b/encheres/client/src/scripts/bidder.js
@@ -6,6 +6,8 @@ const ident = document.getElementById("ident-bid");
 const description = document.getElementsByClassName("description");
 const prix = document.getElementsByClassName("prix");
 
+let prixActuel = 0;
+
 displayButton("none");
 const buttons = document.querySelectorAll("button");
 for(const button of buttons) {
@@ -17,7 +19,6 @@ function displayButton(display) {
     divButtons.style.display = display;
 }
 
-let prixActuel = 0;
 socket.on("infos", (name, value) => {
     ident.textContent = `Une nouvelle enchère commence`;
     enchereBegin(name, value);
@@ -41,12 +42,17 @@ function selectPrice(event) {
     const selectedPrix = parseInt(event.target.textContent);
     prixActuel += selectedPrix;
     socket.emit("prixActuel", prixActuel);
-    socket.on("winner", () => win());
+    socket.on("adjuge", () => finishEnchere());
     ident.textContent = `Vous avez fait une enchère de +${selectedPrix}€`;
 }
 
+function finishEnchere() {
+    ident.textContent = `Enchères terminé,  l'enchère a été remporté par une autre personne`;
+    displayButton("none");
+}
+
 function win() {
-    console.log("ici win");
+    console.log("ici");
     ident.textContent = `Enchères terminé, vous avez remporté l'enchère`;
     displayButton("none");
 }
-- 
GitLab