diff --git a/src/main/java/com/example/clientproject/services/BusinessRegisterSaver.java b/src/main/java/com/example/clientproject/services/BusinessRegisterSaver.java index e2c5606b441a2d7b62132fd991873cdd6f07599f..0cb597991df9ceee9164597dc317859516e2fd28 100644 --- a/src/main/java/com/example/clientproject/services/BusinessRegisterSaver.java +++ b/src/main/java/com/example/clientproject/services/BusinessRegisterSaver.java @@ -14,10 +14,12 @@ import com.example.clientproject.data.tags.Tags; import com.example.clientproject.data.tags.TagsRepo; import com.example.clientproject.data.userStampBoards.UserStampBoards; import com.example.clientproject.data.userStampBoards.UserStampBoardsRepo; +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.sql.ResultSet; import java.util.ArrayList; import java.util.List; @@ -26,40 +28,62 @@ import java.util.Locale; @Service public class BusinessRegisterSaver { - @Autowired - ShopsRepo shopsRepo; - - @Autowired - StampBoardsRepo stampBoards; - - @Autowired - CategoriesRepo categoriesRepo; - - @Autowired - SocialsRepo socialsRepo; - - @Autowired - TagsRepo tagsRepo; - - @Autowired - JdbcTemplate jdbc; - - @Autowired - LinkUserShop linkShop; - - @Autowired - RewardsRepo rewardsRepo; + private ShopsRepo shopsRepo; + private StampBoardsRepo stampBoards; + private CategoriesRepo categoriesRepo; + private SocialsRepo socialsRepo; + private TagsRepo tagsRepo; + private JdbcTemplate jdbc; + private LinkUserShop linkShop; + private LoggingService loggingService; + + /** + * Constructor + * @param shopsRepo - shopsRepo + * @param stampBoards - stampBoards + * @param categoriesRepo - categoriesRepo + * @param socialsRepo - socialsRepo + * @param tagsRepo - tagsRepo + * @param jdbc - jdbc + * @param linkShop - linkShop + * @param rewardsRepo - rewardsRepo + * @param loggingService - loggingService + */ + public BusinessRegisterSaver(ShopsRepo shopsRepo, StampBoardsRepo stampBoards, CategoriesRepo categoriesRepo, SocialsRepo socialsRepo, TagsRepo tagsRepo, JdbcTemplate jdbc, LinkUserShop linkShop, RewardsRepo rewardsRepo, LoggingService loggingService) { + this.shopsRepo = shopsRepo; + this.stampBoards = stampBoards; + this.categoriesRepo = categoriesRepo; + this.socialsRepo = socialsRepo; + this.tagsRepo = tagsRepo; + this.jdbc = jdbc; + this.linkShop = linkShop; + this.loggingService = loggingService; + } - public void save(BusinessRegisterDTO business, long userId){ + public void save(BusinessRegisterDTO business, long userId, HttpSession session){ - String query = "INSERT INTO Stamp_Boards (Stamp_Board_Size, Stamp_Board_Colour, Stamp_Board_Icon) VALUES (8, '#ff0000', 'stamp.jpg')"; + String query = "INSERT INTO mydb.Stamp_Boards (Stamp_Board_Size, Stamp_Board_Colour, Stamp_Board_Icon) VALUES (8, '#ff0000', 'stamp.jpg')"; jdbc.execute(query); + // Log the change + loggingService.logEvent( + "New Stamp Board", + session, + "New StampBoard created for Shop: " + business.getBusiness_register_name() + + " in BusinessRegisterSaver.save()" + ); long currentStampId = stampBoards.findAll().get(stampBoards.findAll().size()-1).getStampBoardId(); - String rewardsQuery = "INSERT INTO Rewards (Reward_Name, Reward_Stamp_Location, Stamp_Board_Id) VALUES (\"10% off\", 4," + + String rewardsQuery = "INSERT INTO mydb.Rewards (Reward_Name, Reward_Stamp_Location, Stamp_Board_Id) VALUES (\"10% off\", 4," + currentStampId + ")"; //System.out.println(rewardsQuery); jdbc.execute(rewardsQuery); + // Log the change + loggingService.logEvent( + "New Reward", + session, + "New Reward created for StampBoard: " + currentStampId + + " in BusinessRegisterSaver.save()" + ); StampBoards stampBoard = stampBoards.findAll().get(stampBoards.findAll().size()-1); @@ -83,6 +107,14 @@ public class BusinessRegisterSaver { //System.out.println(shop.getStampBoard()); shopsRepo.save(shop); + // Log the change + loggingService.logEvent( + "New Shop", + session, + "New Shop created for User: " + userId + + " in BusinessRegisterSaver.save()" + ); + List<String> tagsList = new ArrayList<>(); List<String> tagsLowerList = new ArrayList<>(); tagsRepo.findAll().forEach(x -> tagsList.add(x.getTagName())); @@ -100,20 +132,63 @@ public class BusinessRegisterSaver { }else{ tag = new Tags(t.toLowerCase()); tagsRepo.save(tag); + // Log the change + loggingService.logEvent( + "New Tag", + session, + "New Tag created with name: " + tag.getTagName() + + " in BusinessRegisterSaver.save()" + ); } - - query = "INSERT INTO Shop_Tag_Links (Shop_Id, Tag_Id) VALUES ("+ shop.getShopId() + + query = "INSERT INTO mydb.Shop_Tag_Links (Shop_Id, Tag_Id) VALUES ("+ shop.getShopId() + ","+tag.getTagId() + ")"; - jdbc.execute(query); - + // Log the change + loggingService.logEvent( + "New Shop Tag Link", + session, + "New Shop Tag Link created for shop: " + shop.getShopId() + + " and tag: " + tag.getTagId() + + " in BusinessRegisterSaver.save()" + ); } socialsRepo.save(new Socials(shop, "Facebook", business.getFacebook())); + // Log the change + loggingService.logEvent( + "New Social", + session, + "New Social created for shop: " + shop.getShopId() + + " in BusinessRegisterSaver.save()" + ); + socialsRepo.save(new Socials(shop, "Twitter", business.getTwitter())); + // Log the change + loggingService.logEvent( + "New Social", + session, + "New Social created for shop: " + shop.getShopId() + + " in BusinessRegisterSaver.save()" + ); + socialsRepo.save(new Socials(shop, "Instagram", business.getInstagram())); + // Log the change + loggingService.logEvent( + "New Social", + session, + "New Social created for shop: " + shop.getShopId() + + " in BusinessRegisterSaver.save()" + ); + socialsRepo.save(new Socials(shop, "TikTok", business.getTiktok())); + // Log the change + loggingService.logEvent( + "New Social", + session, + "New Social created for shop: " + shop.getShopId() + + " in BusinessRegisterSaver.save()" + ); //System.out.println(shop.getShopId()); diff --git a/src/main/resources/database/schema.sql b/src/main/resources/database/schema.sql index 3d7f0735aed3f3845ab1764376e4d115af7d8b35..cca3a74e1f44297b34fcf796f3e8a3432946d6c9 100644 --- a/src/main/resources/database/schema.sql +++ b/src/main/resources/database/schema.sql @@ -342,4 +342,9 @@ INSERT INTO Events (Event_Name) VALUES ('New Favourite Business'); INSERT INTO Events (Event_Name) VALUES ('New Shop User'); INSERT INTO Events (Event_Name) VALUES ('Shop Details Changed'); INSERT INTO Events (Event_Name) VALUES ('Shop Activity Toggled'); -INSERT INTO Events (Event_Name) VALUES ('Image Inserted'); \ No newline at end of file +INSERT INTO Events (Event_Name) VALUES ('Image Inserted'); +INSERT INTO Events (Event_Name) VALUES ('New Stamp Board'); +INSERT INTO Events (Event_Name) VALUES ('New Reward'); +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');