From aa97c86cd5f01c7bb94340da69a5c96a9b448493 Mon Sep 17 00:00:00 2001
From: c2038058 <gillj8@cardiff.ac.uk>
Date: Fri, 10 Dec 2021 12:05:06 +0000
Subject: [PATCH] ShopDeleter fully logged, other classes changed to no longer
 use autowiring for attributes

---
 .../clientproject/services/ShopDeleter.java       | 15 +++++++++++++--
 .../web/controllers/AdminController.java          |  2 +-
 .../web/controllers/DeleteShopTests.java          |  2 +-
 3 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/example/clientproject/services/ShopDeleter.java b/src/main/java/com/example/clientproject/services/ShopDeleter.java
index ced2b59..2f7bf25 100644
--- a/src/main/java/com/example/clientproject/services/ShopDeleter.java
+++ b/src/main/java/com/example/clientproject/services/ShopDeleter.java
@@ -1,20 +1,31 @@
 package com.example.clientproject.services;
 
+import com.example.clientproject.service.LoggingService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 
+import javax.servlet.http.HttpSession;
+
 @Service
 public class ShopDeleter {
-    @Autowired
     JdbcTemplate jdbc;
+    LoggingService loggingService;
 
     /**
      * @param shopId - the shopID of the shop that the stored procedure is going to delete
      */
-    public void deleteShop(Integer shopId){
+    public void deleteShop(Integer shopId, HttpSession session){
         String query = "CALL `mydb`.`deleteShop`('" + shopId + "');";
         jdbc.execute(query);
+        // Log the change
+        loggingService.logEvent(
+                "Deleted Shop",
+                session,
+                "Shop deleted with Shop Id: " + shopId +
+                        " in ShopDeleter.deleteShop()"
+        );
+
     }
 
 }
diff --git a/src/main/java/com/example/clientproject/web/controllers/AdminController.java b/src/main/java/com/example/clientproject/web/controllers/AdminController.java
index 21efc8f..b21f430 100644
--- a/src/main/java/com/example/clientproject/web/controllers/AdminController.java
+++ b/src/main/java/com/example/clientproject/web/controllers/AdminController.java
@@ -195,7 +195,7 @@ public class AdminController {
             }
             if (shopPermissionLevel == 2 || shopPermissionLevel == 3) {
                 System.out.println("shop is being deleted");
-                shopDeleter.deleteShop(shopId);
+                shopDeleter.deleteShop(shopId, session);
             }
             return "redirect:/settings";
         }
diff --git a/src/test/java/com/example/clientproject/web/controllers/DeleteShopTests.java b/src/test/java/com/example/clientproject/web/controllers/DeleteShopTests.java
index 265fe5e..8579b7d 100644
--- a/src/test/java/com/example/clientproject/web/controllers/DeleteShopTests.java
+++ b/src/test/java/com/example/clientproject/web/controllers/DeleteShopTests.java
@@ -31,7 +31,7 @@ public class DeleteShopTests {
     //in future make a jdbc service that will do the exact same thing as the stored procedure
     @Test
     public void shouldDeleteAllShopData() throws Exception{
-        shopDeleter.deleteShop(12);
+        shopDeleter.deleteShop(12, null);
         List<Shops> shopsList = shopsRepo.findAll();
         assertEquals(11, shopsList.size());
     }
-- 
GitLab