From e12ff4d4e10ce052ca2e2b9ad151672ca60f7dd9 Mon Sep 17 00:00:00 2001 From: Hykilpikonna Date: Fri, 22 Jan 2021 18:42:42 -0500 Subject: [PATCH] [+] Add joinDate field to the User model --- .../java/org/hydev/clock_api/controller/UserController.java | 6 ++++-- src/main/java/org/hydev/clock_api/entity/User.java | 4 ++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/hydev/clock_api/controller/UserController.java b/src/main/java/org/hydev/clock_api/controller/UserController.java index 7fd3eab..fbe634c 100644 --- a/src/main/java/org/hydev/clock_api/controller/UserController.java +++ b/src/main/java/org/hydev/clock_api/controller/UserController.java @@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.validation.constraints.Pattern; +import java.util.Date; import java.util.List; import java.util.function.Function; @@ -32,7 +33,7 @@ public class UserController { * Register a user to the database. * * https://www.baeldung.com/spring-rest-http-headers - * TODO: This method should be synchronized to avoid race condition. + * This method should be synchronized to avoid race condition. * Also, this method should not be private, or else cannot use userRepository. * * TODO: 2021/1/22 Need a better design! @@ -61,6 +62,7 @@ public class UserController { User user = new User(); user.setUsername(username); user.setPasswordMd5(userToSaltedMd5(username, password)); + user.setJoinDate(new Date()); // After save and flush, uuid field will be generated automatically. userRepository.saveAndFlush(user); @@ -110,7 +112,7 @@ public class UserController { }); } - @PostMapping("login") + @PostMapping("/login") public synchronized ResponseEntity login(@RequestHeader String username, @RequestHeader String password) { return checkPasswordAndDo(username, password, user -> userRepository.queryByUsername(username).getUuid()); } diff --git a/src/main/java/org/hydev/clock_api/entity/User.java b/src/main/java/org/hydev/clock_api/entity/User.java index ae62d2b..dcb0b25 100644 --- a/src/main/java/org/hydev/clock_api/entity/User.java +++ b/src/main/java/org/hydev/clock_api/entity/User.java @@ -9,6 +9,7 @@ import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; +import java.util.Date; @Data @Entity(name = "users") @@ -40,4 +41,7 @@ public class User { @NotNull(message = ErrorCode.INNER_PASSWORD_MD5_IS_NULL) @Pattern(regexp = RE_LOWER_MD5, message = ErrorCode.INNER_PASSWORD_MD5_NOT_MATCH_REGEX) private String passwordMd5; + + @NotNull + private Date joinDate; }