From 6778cebdc646d8ca28a6fd5a8d3ab90380e192c3 Mon Sep 17 00:00:00 2001 From: c2038058 <gillj8@cardiff.ac.uk> Date: Fri, 10 Dec 2021 12:27:09 +0000 Subject: [PATCH] StampboardUpdater fully logged --- .../services/StampboardUpdater.java | 80 ++++++++++++++----- .../web/restControllers/updateStampboard.java | 8 +- src/main/resources/database/schema.sql | 2 + 3 files changed, 66 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/example/clientproject/services/StampboardUpdater.java b/src/main/java/com/example/clientproject/services/StampboardUpdater.java index a8d790f..a6bf36a 100644 --- a/src/main/java/com/example/clientproject/services/StampboardUpdater.java +++ b/src/main/java/com/example/clientproject/services/StampboardUpdater.java @@ -1,53 +1,93 @@ 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; import java.util.Map; @Service public class StampboardUpdater { - @Autowired JdbcTemplate jdbc; + LoggingService loggingService; + + public StampboardUpdater(JdbcTemplate jdbc, LoggingService loggingService) { + this.jdbc = jdbc; + this.loggingService = loggingService; + } //When using ensure you have validated authority first - public void updateColour(Integer shopId, String colour){ - String query = "UPDATE stamp_boards SET Stamp_Board_Colour = '"+ colour +"' WHERE Stamp_Board_Id = (" + + public void updateColour(Integer shopId, String colour, HttpSession session){ + String query = "UPDATE mydb.stamp_boards SET Stamp_Board_Colour = '"+ colour +"' WHERE Stamp_Board_Id = (" + "SELECT stamp_boards.Stamp_Board_Id FROM mydb.stamp_boards INNER JOIN " + - "shops on shops.Stamp_Board_Id = stamp_boards.Stamp_Board_Id where shops.Shop_Id = "+ shopId +" limit 1);"; - + "mydb.shops on shops.Stamp_Board_Id = stamp_boards.Stamp_Board_Id where shops.Shop_Id = "+ shopId +" limit 1);"; jdbc.execute(query); + // Log the change + loggingService.logEvent( + "Stamp Board Updated", + session, + "Stamp Board updated for Shop: " + shopId + + " with field: Stamp_Board_Colour with value: " + colour + + " in StampboardUpdater.updateColour()" + ); } - public void updateRewards(Integer shopId, Map<String,Object> rewards){ - String deleteQuery = "delete from rewards where Stamp_Board_Id = (" + - "SELECT Stamp_Board_Id from shops where Shop_Id = "+shopId+");"; - + public void updateRewards(Integer shopId, Map<String,Object> rewards, HttpSession session){ + String deleteQuery = "delete from mydb.rewards where Stamp_Board_Id = (" + + "SELECT Stamp_Board_Id from mydb.shops where Shop_Id = "+shopId+");"; jdbc.execute(deleteQuery); + // Log the change + loggingService.logEvent( + "Reward Deleted", + session, + "Rewards deleted for StampBoard for Shop: " + shopId + + " in StampboardUpdater.updateRewards()" + ); rewards.entrySet().forEach(r -> { - String insertQuery = "INSERT into rewards (Reward_Name, Reward_Stamp_Location,Stamp_Board_Id) values (\""+r.getValue()+"\", " + - r.getKey()+",(SELECT Stamp_Board_Id from shops where Shop_Id = "+ shopId.toString() +"));"; - + String insertQuery = "INSERT into mydb.rewards (Reward_Name, Reward_Stamp_Location,Stamp_Board_Id) values (\""+r.getValue()+"\", " + + r.getKey()+",(SELECT Stamp_Board_Id from mydb.shops where Shop_Id = "+ shopId.toString() +"));"; jdbc.execute(insertQuery); + // Log the change + loggingService.logEvent( + "New Reward", + session, + "Reward inserted for StampBoard for Shop: " + shopId + + " in StampboardUpdater.updateRewards()" + ); }); } - public void updateStampboardSize(Integer shopId, Integer size){ - String query = "UPDATE stamp_boards SET Stamp_Board_Size = "+ size +" WHERE Stamp_Board_Id = (" + + public void updateStampboardSize(Integer shopId, Integer size, HttpSession session){ + String query = "UPDATE mydb.stamp_boards SET Stamp_Board_Size = "+ size +" WHERE Stamp_Board_Id = (" + "SELECT stamp_boards.Stamp_Board_Id FROM mydb.stamp_boards INNER JOIN " + - "shops on shops.Stamp_Board_Id = stamp_boards.Stamp_Board_Id where shops.Shop_Id = "+ shopId +" limit 1);"; - + "mydb.shops on shops.Stamp_Board_Id = stamp_boards.Stamp_Board_Id where shops.Shop_Id = "+ shopId +" limit 1);"; jdbc.execute(query); + // Log the change + loggingService.logEvent( + "StampBoard Updated", + session, + "StampBoard updated for Shop: " + shopId + + " with: field Stamp_BoardSize with value:" + size + + " in StampboardUpdater.updateStampboardSize()" + ); } - public void updateIconURL(Integer shopId, String url){ - String query = "UPDATE stamp_boards SET Stamp_Board_Icon = '"+ url +"' WHERE Stamp_Board_Id = (" + + public void updateIconURL(Integer shopId, String url, HttpSession session){ + String query = "UPDATE mydb.stamp_boards SET Stamp_Board_Icon = '"+ url +"' WHERE Stamp_Board_Id = (" + "SELECT stamp_boards.Stamp_Board_Id FROM mydb.stamp_boards INNER JOIN " + - "shops on shops.Stamp_Board_Id = stamp_boards.Stamp_Board_Id where shops.Shop_Id = "+ shopId +" limit 1);"; - + "mydb.shops on shops.Stamp_Board_Id = stamp_boards.Stamp_Board_Id where shops.Shop_Id = "+ shopId +" limit 1);"; jdbc.execute(query); + // Log the change + loggingService.logEvent( + "StampBoard Updated", + session, + "StampBoard updated for Shop: " + shopId + + " with: field Stamp_Board_Icon with value:" + url + + " in StampboardUpdater.updateIconURL()" + ); } } diff --git a/src/main/java/com/example/clientproject/web/restControllers/updateStampboard.java b/src/main/java/com/example/clientproject/web/restControllers/updateStampboard.java index 8c1bdde..b65577b 100644 --- a/src/main/java/com/example/clientproject/web/restControllers/updateStampboard.java +++ b/src/main/java/com/example/clientproject/web/restControllers/updateStampboard.java @@ -56,11 +56,11 @@ public class updateStampboard { throw new ForbiddenErrorException("Invalid Colour value"); } - stampboardUpdater.updateColour(usf.getShopId(), usf.getColour()); - stampboardUpdater.updateStampboardSize(usf.getShopId(), usf.getStampboardSize()); - stampboardUpdater.updateRewards(usf.getShopId(), rewardsMap); + stampboardUpdater.updateColour(usf.getShopId(), usf.getColour(), session); + stampboardUpdater.updateStampboardSize(usf.getShopId(), usf.getStampboardSize(), session); + stampboardUpdater.updateRewards(usf.getShopId(), rewardsMap, session); if(usf.getIconFilePath().length() > 0){ - stampboardUpdater.updateIconURL(usf.getShopId(), usf.getIconFilePath()); + stampboardUpdater.updateIconURL(usf.getShopId(), usf.getIconFilePath(), session); } return "OK"; } diff --git a/src/main/resources/database/schema.sql b/src/main/resources/database/schema.sql index 8804064..e04c378 100644 --- a/src/main/resources/database/schema.sql +++ b/src/main/resources/database/schema.sql @@ -349,3 +349,5 @@ INSERT INTO Events (Event_Name) VALUES ('New Tag'); INSERT INTO Events (Event_Name) VALUES ('New Shop Tag Link'); INSERT INTO Events (Event_Name) VALUES ('New Social'); INSERT INTO Events (Event_Name) VALUES ('New User Permission'); +INSERT INTO Events (Event_Name) VALUES ('Stamp Board Updated'); +INSERT INTO Events (Event_Name) VALUES ('Reward Deleted'); -- GitLab