From d47979a56830df93835bd36dbe104102ed8b1187 Mon Sep 17 00:00:00 2001
From: Tim Adams <zfac125@live.rhul.ac.uk>
Date: Sat, 2 Mar 2024 22:01:23 +0000
Subject: [PATCH] kids page now fetching products from the DB

---
 public/shopping-basket.js |  9 +++++++++
 server.js                 | 12 ++++++++++++
 views/kids.hbs            |  6 +++---
 views/men.hbs             |  2 +-
 views/women.hbs           |  6 +++---
 5 files changed, 28 insertions(+), 7 deletions(-)

diff --git a/public/shopping-basket.js b/public/shopping-basket.js
index 7d55ca5..71b3964 100644
--- a/public/shopping-basket.js
+++ b/public/shopping-basket.js
@@ -70,6 +70,7 @@ async function populateProducts(endpoint) {
 document.addEventListener('DOMContentLoaded', (event) => {
     const menProductsLink = document.getElementById('men-products');
     const womenProductsLink = document.getElementById('women-products');
+    const kidsProductsLink = document.getElementById('kids-products');
 
     if (menProductsLink) {
         menProductsLink.addEventListener('click', (e) => {
@@ -88,6 +89,14 @@ document.addEventListener('DOMContentLoaded', (event) => {
     } else {
         console.error("Women's products link not found.");
     }
+    if (kidsProductsLink) {
+        kidsProductsLink.addEventListener('click', (e) => {
+            e.preventDefault(); // Prevent the default link behavior
+            populateProducts('/kids-products');
+        });
+    } else {
+        console.error("Kids' products link not found.");
+    }
 });
 
 
diff --git a/server.js b/server.js
index a40f42f..d0a8490 100644
--- a/server.js
+++ b/server.js
@@ -57,6 +57,18 @@ app.get('/women-products', async (req, res) => {
   }
 });
 
+app.get('/kids-products', async (req, res) => {
+  try{
+      const client = await pool.connect();
+      const { rows } = await client.query("SELECT * FROM products WHERE category = 'kids'");
+      res.json(rows);
+      client.release();
+  }catch(err){
+      res.status(500).send('Server error');
+      console.error('Error exucting query', err.stack);
+  }
+});
+
 app.listen(port, () => {
     console.log(`Server is listening on port ${port}`);
 });
diff --git a/views/kids.hbs b/views/kids.hbs
index 7b2051a..8a9b3b8 100644
--- a/views/kids.hbs
+++ b/views/kids.hbs
@@ -37,13 +37,13 @@
                   <div class="collapse navbar-collapse" id="collapsibleNavbar">
                     <ul class="navbar-nav">
                       <li class="nav-item">
-                        <a class="nav-link" href="/men">Men</a>
+                        <a class="nav-link" id="men-products" href="/men">Men</a>
                       </li>
                       <li class="nav-item">
-                        <a class="nav-link" href="/women">Women</a>
+                        <a class="nav-link" id="women-products" href="/women">Women</a>
                       </li>
                       <li class="nav-item">
-                        <a class="nav-link" href="/kids">Kids</a>
+                        <a class="nav-link" id="kids-products" href="/kids">Kids</a>
                       </li>
                       <li class="nav-item dropdown">
                         <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown">Footwear</a>
diff --git a/views/men.hbs b/views/men.hbs
index 683610e..0a3384f 100644
--- a/views/men.hbs
+++ b/views/men.hbs
@@ -44,7 +44,7 @@
                         <a class="nav-link" id="women-products" href="/women">Women</a>
                       </li>
                       <li class="nav-item">
-                        <a class="nav-link" href="/kids">Kids</a>
+                        <a class="nav-link" id="kids-products" href="/kids">Kids</a>
                       </li>
                       <li class="nav-item dropdown">
                         <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown">Footwear</a>
diff --git a/views/women.hbs b/views/women.hbs
index 3b0e6c4..6e99fd9 100644
--- a/views/women.hbs
+++ b/views/women.hbs
@@ -36,13 +36,13 @@
                   <div class="collapse navbar-collapse" id="collapsibleNavbar">
                     <ul class="navbar-nav">
                       <li class="nav-item">
-                        <a class="nav-link" href="/men">Men</a>
+                        <a class="nav-link" id="men-products" href="/men">Men</a>
                       </li>
                       <li class="nav-item">
-                        <a class="nav-link" href="/women">Women</a>
+                        <a class="nav-link" id="women-products" href="/women">Women</a>
                       </li>
                       <li class="nav-item">
-                        <a class="nav-link" href="/kids">Kids</a>
+                        <a class="nav-link" id="kids-products" href="/kids">Kids</a>
                       </li>
                       <li class="nav-item dropdown">
                         <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown">Footwear</a>
-- 
GitLab