From b0250707f1c82e3bc78a7296c3ce1db7e60a7548 Mon Sep 17 00:00:00 2001
From: Gabriel Copat <copatg@cardiff.ac.uk>
Date: Thu, 30 Nov 2023 21:53:49 +0000
Subject: [PATCH] New Controller for Users and Rewards Added UserProfile HTML
 skeleton Added Constructor for User Class

---
 .../SmartTowns/rewards/RewardsController.java |  7 +++++
 .../java/Team5/SmartTowns/users/User.java     | 11 ++++++--
 .../SmartTowns/users/UserController.java      | 26 +++++++++++++++++++
 .../templates/rewards/userProfile.html        | 10 +++++++
 4 files changed, 52 insertions(+), 2 deletions(-)
 create mode 100644 src/main/java/Team5/SmartTowns/rewards/RewardsController.java
 create mode 100644 src/main/java/Team5/SmartTowns/users/UserController.java
 create mode 100644 src/main/resources/templates/rewards/userProfile.html

diff --git a/src/main/java/Team5/SmartTowns/rewards/RewardsController.java b/src/main/java/Team5/SmartTowns/rewards/RewardsController.java
new file mode 100644
index 00000000..af9d33cb
--- /dev/null
+++ b/src/main/java/Team5/SmartTowns/rewards/RewardsController.java
@@ -0,0 +1,7 @@
+package Team5.SmartTowns.rewards;
+
+import org.springframework.stereotype.Controller;
+
+@Controller
+public class RewardsController {
+}
diff --git a/src/main/java/Team5/SmartTowns/users/User.java b/src/main/java/Team5/SmartTowns/users/User.java
index d93b4f8e..02611fe0 100644
--- a/src/main/java/Team5/SmartTowns/users/User.java
+++ b/src/main/java/Team5/SmartTowns/users/User.java
@@ -2,17 +2,24 @@ package Team5.SmartTowns.users;
 
 import Team5.SmartTowns.rewards.Badge;
 import Team5.SmartTowns.rewards.Sticker;
+import lombok.Data;
 
 import java.util.HashMap;
 import java.util.Map;
 
+@Data
 public class User {
 
+    int id;
     String email; //Validation would be done by email, since they will have that
-
+    String name;
 
     Map<Badge, Integer> badgeProgress = new HashMap<>(); // Demonstrates the progress towards a specific badge (0-100)
     Map<Sticker, Boolean> hasStickers = new HashMap<>(); // True if User has sticker (key)
 
-
+    public User(int id, String email, String name) {
+        this.id = id;
+        this.email = email;
+        this.name = name;
+    }
 }
diff --git a/src/main/java/Team5/SmartTowns/users/UserController.java b/src/main/java/Team5/SmartTowns/users/UserController.java
new file mode 100644
index 00000000..602fe65d
--- /dev/null
+++ b/src/main/java/Team5/SmartTowns/users/UserController.java
@@ -0,0 +1,26 @@
+package Team5.SmartTowns.users;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.servlet.ModelAndView;
+
+import java.util.List;
+
+@Controller
+public class UserController {
+
+    /* TEMPORARY USER LIST --- TODO REPLACE IT WITH DATABASE LIST*/
+    List<User> users = List.of(
+            new User(1, "johndoe@gmail.com", "Chris Redfield"),
+            new User(2, "johndoe@gmail.com", "Claire Redfield"),
+            new User(3, "johndoe@gmail.com", "Leon Kennedy"),
+            new User(4, "johndoe@gmail.com", "Jill Valentine")
+    );
+
+    @GetMapping("/allTrails")
+    public ModelAndView getUserPage(){
+        ModelAndView mav = new ModelAndView("rewards/userProfile");
+        mav.addObject("trails", users); //Mock data for trails
+        return mav;
+    }
+}
diff --git a/src/main/resources/templates/rewards/userProfile.html b/src/main/resources/templates/rewards/userProfile.html
new file mode 100644
index 00000000..c1eb176b
--- /dev/null
+++ b/src/main/resources/templates/rewards/userProfile.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title th:text="${user.getName()}"></title>
+</head>
+<body>
+
+</body>
+</html>
\ No newline at end of file
-- 
GitLab