From bedbd7bd6f1f6e00204d2b6d8df57e4e7b19ebbf Mon Sep 17 00:00:00 2001 From: Connor <brockcc1@cardiff.ac.uk> Date: Wed, 6 Dec 2023 02:45:09 +0000 Subject: [PATCH] Adding integration into the current Users class to pull dragonstale QR code information out. --- .../java/Team5/SmartTowns/Data/MockUser.java | 17 +++++++++++++++++ .../java/Team5/SmartTowns/Data/QRCodes.java | 4 ++++ .../SmartTowns/trails/TrailsController.java | 17 +++++++++-------- src/main/java/Team5/SmartTowns/users/User.java | 5 +++-- .../Team5/SmartTowns/users/UserRepository.java | 1 + .../SmartTowns/users/UserRepositoryJDBC.java | 13 ++++++++++--- 6 files changed, 44 insertions(+), 13 deletions(-) create mode 100644 src/main/java/Team5/SmartTowns/Data/MockUser.java create mode 100644 src/main/java/Team5/SmartTowns/Data/QRCodes.java diff --git a/src/main/java/Team5/SmartTowns/Data/MockUser.java b/src/main/java/Team5/SmartTowns/Data/MockUser.java new file mode 100644 index 00000000..6a6ec7f6 --- /dev/null +++ b/src/main/java/Team5/SmartTowns/Data/MockUser.java @@ -0,0 +1,17 @@ +package Team5.SmartTowns.Data; + +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowMapper; + +import java.util.List; + +public class MockUser { + + private JdbcTemplate jdbc; + private RowMapper<trail> trailMapper; + + public List<trail> getAllTrails(){ + String sql= "SELECT * FROM trails"; + return jdbc.query(sql, trailMapper); + } +} diff --git a/src/main/java/Team5/SmartTowns/Data/QRCodes.java b/src/main/java/Team5/SmartTowns/Data/QRCodes.java new file mode 100644 index 00000000..ef350eb4 --- /dev/null +++ b/src/main/java/Team5/SmartTowns/Data/QRCodes.java @@ -0,0 +1,4 @@ +package Team5.SmartTowns.Data; + +public class QRCodes { +} diff --git a/src/main/java/Team5/SmartTowns/trails/TrailsController.java b/src/main/java/Team5/SmartTowns/trails/TrailsController.java index 37548995..020eaf18 100644 --- a/src/main/java/Team5/SmartTowns/trails/TrailsController.java +++ b/src/main/java/Team5/SmartTowns/trails/TrailsController.java @@ -45,14 +45,15 @@ public class TrailsController { } -// // -// @GetMapping("dragonstale/{qrCode}/{id}") -// public String qrCodeCheck(@PathVariable Optional<String> qrCode, @PathVariable Optional<Integer> id){ -// if (qrCode.isPresent() && id.isPresent()){ -// //Check if ID is present, if do this, if not dfo that. -// -// } -// } + // + @GetMapping("dragonstale/{qrCode}/{id}") + public String qrCodeCheck(@PathVariable Optional<String> qrCode, @PathVariable Optional<Integer> id){ + if (qrCode.isPresent()){ + + //Check if ID is present, if do this, if not dfo that. + + } + } } diff --git a/src/main/java/Team5/SmartTowns/users/User.java b/src/main/java/Team5/SmartTowns/users/User.java index 84887664..e5214802 100644 --- a/src/main/java/Team5/SmartTowns/users/User.java +++ b/src/main/java/Team5/SmartTowns/users/User.java @@ -16,15 +16,16 @@ public class User { String name; String imgPath; int dragonProgress; - 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) + Map<Integer, Boolean> dragonstaleLandmarkIDs = new HashMap<>(); // Storing the IDs of the landmarks associated with Dragonstale, as well as if the user has visited it before (boolean) - public User(int id, String email, String name, int dragonProgress) { + public User(int id, String email, String name, int dragonProgress, HashMap<Integer, Boolean> dragonstaleLandmarkIDs) { this.id = id; this.email = email; this.name = name; this.dragonProgress = dragonProgress; + this.dragonstaleLandmarkIDs = dragonstaleLandmarkIDs; imgPath = findImagePath(); } diff --git a/src/main/java/Team5/SmartTowns/users/UserRepository.java b/src/main/java/Team5/SmartTowns/users/UserRepository.java index 9f4e828f..bbdb7ece 100644 --- a/src/main/java/Team5/SmartTowns/users/UserRepository.java +++ b/src/main/java/Team5/SmartTowns/users/UserRepository.java @@ -8,5 +8,6 @@ public interface UserRepository { List<User> getAllUsers(); // Map<Long, Integer> getBadgeProgress(int id); Map<Long, Boolean> getStickers(int id); + Map<Integer, Boolean> getTest(int id); User getUser(int id); } diff --git a/src/main/java/Team5/SmartTowns/users/UserRepositoryJDBC.java b/src/main/java/Team5/SmartTowns/users/UserRepositoryJDBC.java index 9b24461d..9bf388db 100644 --- a/src/main/java/Team5/SmartTowns/users/UserRepositoryJDBC.java +++ b/src/main/java/Team5/SmartTowns/users/UserRepositoryJDBC.java @@ -12,22 +12,22 @@ import java.util.Map; @Repository public class UserRepositoryJDBC implements UserRepository{ - private JdbcTemplate jdbc; private RowMapper<User> userMapper; + private public UserRepositoryJDBC(JdbcTemplate aJdbc){ this.jdbc = aJdbc; setUserMapper(); } - private void setUserMapper(){ userMapper = (rs, i) -> new User( rs.getInt("userID"), rs.getString("email"), rs.getString("name"), - rs.getInt("dragonProgress") + rs.getInt("dragonProgress"), + rs.getObject("dragonstaleLandmarkIDs", getTest()) ); } @@ -37,6 +37,7 @@ public class UserRepositoryJDBC implements UserRepository{ return jdbc.query(sql, userMapper); } + @Override public User getUser(int id){ String sql= "SELECT * FROM users WHERE userID="+id; @@ -55,6 +56,12 @@ public class UserRepositoryJDBC implements UserRepository{ return progress; } + @Override + public Map<Integer, Boolean> getDTCompletion(int id){ + //Loop over multiple different key-value pairs to find the one that's needed. + String sql = "SELECT " + } + // @Override // public Map<Long, Integer> getBadgeProgress(int id){ -- GitLab