From 9ad7b4f2d5d0fb09d456a3144d43efc5168f9e47 Mon Sep 17 00:00:00 2001 From: "zihooy139@gmail.com" Date: Fri, 11 Nov 2022 16:38:46 -0500 Subject: [PATCH 1/7] add exception --- .../purdue/project/exception/RabbitException.java | 14 ++++++++++++++ .../purdue/project/exception/UserException.java | 7 +++++++ .../project/exception/UserNotFoundException.java | 8 ++++++++ 3 files changed, 29 insertions(+) create mode 100644 RabbitBack/src/main/java/com/purdue/project/exception/RabbitException.java create mode 100644 RabbitBack/src/main/java/com/purdue/project/exception/UserException.java create mode 100644 RabbitBack/src/main/java/com/purdue/project/exception/UserNotFoundException.java diff --git a/RabbitBack/src/main/java/com/purdue/project/exception/RabbitException.java b/RabbitBack/src/main/java/com/purdue/project/exception/RabbitException.java new file mode 100644 index 0000000..09179e7 --- /dev/null +++ b/RabbitBack/src/main/java/com/purdue/project/exception/RabbitException.java @@ -0,0 +1,14 @@ +package com.purdue.project.exception; + +import org.springframework.http.HttpStatus; + +public class RabbitException extends RuntimeException { + private final HttpStatus httpStatus; + + public RabbitException(String message, HttpStatus httpStatus) { + super(message); + this.httpStatus = httpStatus; + } + + public HttpStatus getHttpStatus() {return httpStatus;} +} \ No newline at end of file diff --git a/RabbitBack/src/main/java/com/purdue/project/exception/UserException.java b/RabbitBack/src/main/java/com/purdue/project/exception/UserException.java new file mode 100644 index 0000000..6f3c804 --- /dev/null +++ b/RabbitBack/src/main/java/com/purdue/project/exception/UserException.java @@ -0,0 +1,7 @@ +package com.purdue.project.exception; + +import org.springframework.http.HttpStatus; + +public class UserException extends RabbitException{ + protected UserException(String message, HttpStatus httpStatus) {super(message, httpStatus);} +} diff --git a/RabbitBack/src/main/java/com/purdue/project/exception/UserNotFoundException.java b/RabbitBack/src/main/java/com/purdue/project/exception/UserNotFoundException.java new file mode 100644 index 0000000..d78943f --- /dev/null +++ b/RabbitBack/src/main/java/com/purdue/project/exception/UserNotFoundException.java @@ -0,0 +1,8 @@ +package com.purdue.project.exception; + +import org.springframework.http.HttpStatus; + +public class UserNotFoundException extends UserException{ + public UserNotFoundException() {super("회원 가입을 진행해주세요.", HttpStatus.BAD_REQUEST);} + +} From 12d7ca619d49f847b9e8d2c793a717750a3408d0 Mon Sep 17 00:00:00 2001 From: "zihooy139@gmail.com" Date: Tue, 15 Nov 2022 13:38:49 -0500 Subject: [PATCH 2/7] =?UTF-8?q?feat:=20=EC=97=90=EB=9F=AC=20=EB=A9=94?= =?UTF-8?q?=EC=8B=9C=EC=A7=80=20=EC=A0=84=EB=8B=AC=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/controller/UserController.java | 21 +++++++++++++++++-- .../java/com/purdue/project/dao/UserDAO.java | 3 +++ .../exception/EmailExistException.java | 8 +++++++ .../exception/PasswordNotMatchException.java | 8 +++++++ 4 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 RabbitBack/src/main/java/com/purdue/project/exception/EmailExistException.java create mode 100644 RabbitBack/src/main/java/com/purdue/project/exception/PasswordNotMatchException.java diff --git a/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java b/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java index 787271e..eac7bdb 100644 --- a/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java +++ b/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java @@ -1,6 +1,9 @@ package com.purdue.project.controller; import com.purdue.project.dao.UserDAO; +import com.purdue.project.exception.EmailExistException; +import com.purdue.project.exception.PasswordNotMatchException; +import com.purdue.project.exception.UserNotFoundException; import com.purdue.project.model.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -14,11 +17,25 @@ public class UserController { @Autowired UserDAO userDAO; - @PostMapping("/user") - public User save(@RequestBody User userObj) { + @PostMapping("/signUp") + public User signUp(@RequestBody User userObj) { + System.out.println(userDAO.findByEmail(userObj.getEmail()).isPresent()); + if (userDAO.findByEmail(userObj.getEmail()).isPresent()) throw new EmailExistException(); + return userDAO.save(userObj); } + @PostMapping("/signIn") + public User signIn(@RequestBody User userObj) { + // check if the user is valid + User user = userDAO.findByEmail(userObj.getEmail()).orElseThrow(UserNotFoundException::new); + + // check if the password is valid + if (!user.getPassword().equals(userObj.getPassword())) throw new PasswordNotMatchException(); + User responseUser = user; + responseUser.setPassword(null); + return responseUser; + } @GetMapping("/user") public List get() { return userDAO.findAll(); diff --git a/RabbitBack/src/main/java/com/purdue/project/dao/UserDAO.java b/RabbitBack/src/main/java/com/purdue/project/dao/UserDAO.java index c6771cc..5b953b2 100644 --- a/RabbitBack/src/main/java/com/purdue/project/dao/UserDAO.java +++ b/RabbitBack/src/main/java/com/purdue/project/dao/UserDAO.java @@ -4,7 +4,10 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.Optional; + @Repository public interface UserDAO extends JpaRepository { + Optional findByEmail(String email); } diff --git a/RabbitBack/src/main/java/com/purdue/project/exception/EmailExistException.java b/RabbitBack/src/main/java/com/purdue/project/exception/EmailExistException.java new file mode 100644 index 0000000..e9463c8 --- /dev/null +++ b/RabbitBack/src/main/java/com/purdue/project/exception/EmailExistException.java @@ -0,0 +1,8 @@ +package com.purdue.project.exception; + +import org.springframework.http.HttpStatus; + +public class EmailExistException extends UserException{ + public EmailExistException() {super("이미 존재하는 이메일입니다.", HttpStatus.BAD_REQUEST);} + +} diff --git a/RabbitBack/src/main/java/com/purdue/project/exception/PasswordNotMatchException.java b/RabbitBack/src/main/java/com/purdue/project/exception/PasswordNotMatchException.java new file mode 100644 index 0000000..4ec4927 --- /dev/null +++ b/RabbitBack/src/main/java/com/purdue/project/exception/PasswordNotMatchException.java @@ -0,0 +1,8 @@ +package com.purdue.project.exception; + +import org.springframework.http.HttpStatus; + +public class PasswordNotMatchException extends UserException{ + public PasswordNotMatchException() {super("비밀번호가 틀렸습니다.", HttpStatus.BAD_REQUEST);} + +} From 76a33fd5b44d71bd8a272b33d6b0dd535331ad58 Mon Sep 17 00:00:00 2001 From: "zihooy139@gmail.com" Date: Wed, 16 Nov 2022 10:28:23 -0500 Subject: [PATCH 3/7] =?UTF-8?q?feat:=20=EC=97=90=EB=9F=AC=20=EB=A9=94?= =?UTF-8?q?=EC=8B=9C=EC=A7=80=20response=20=EB=B0=98=ED=99=98=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EC=88=98=EC=A0=95=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/controller/UserController.java | 31 ++++++---- .../purdue/project/model/SigninResponse.java | 23 ++++++++ .../purdue/project/model/SignupResponse.java | 13 +++++ .../java/com/purdue/project/model/User.java | 57 +++---------------- 4 files changed, 64 insertions(+), 60 deletions(-) create mode 100644 RabbitBack/src/main/java/com/purdue/project/model/SigninResponse.java create mode 100644 RabbitBack/src/main/java/com/purdue/project/model/SignupResponse.java diff --git a/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java b/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java index eac7bdb..a1758d1 100644 --- a/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java +++ b/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java @@ -1,11 +1,11 @@ package com.purdue.project.controller; import com.purdue.project.dao.UserDAO; -import com.purdue.project.exception.EmailExistException; import com.purdue.project.exception.PasswordNotMatchException; import com.purdue.project.exception.UserNotFoundException; -import com.purdue.project.model.User; +import com.purdue.project.model.*; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -18,23 +18,30 @@ public class UserController { UserDAO userDAO; @PostMapping("/signUp") - public User signUp(@RequestBody User userObj) { - System.out.println(userDAO.findByEmail(userObj.getEmail()).isPresent()); - if (userDAO.findByEmail(userObj.getEmail()).isPresent()) throw new EmailExistException(); - - return userDAO.save(userObj); + public ResponseEntity signUp(@RequestBody User userObj) { + // check if the email is valid + if (userDAO.findByEmail(userObj.getEmail()).isPresent()) { + return ResponseEntity.badRequest().body(new SignupResponse("중복된 이메일이 존재합니다.")); + } + userDAO.save(userObj); + return ResponseEntity.ok(new SignupResponse("회원 가입이 완료되었습니다.")); } @PostMapping("/signIn") - public User signIn(@RequestBody User userObj) { + public ResponseEntity signIn(@RequestBody User userObj) { + // check if the user is valid + if (!userDAO.findByEmail(userObj.getEmail()).isPresent()) { + return ResponseEntity.badRequest().body(new SigninResponse("회원 가입을 진행해주세요.")); + } User user = userDAO.findByEmail(userObj.getEmail()).orElseThrow(UserNotFoundException::new); // check if the password is valid - if (!user.getPassword().equals(userObj.getPassword())) throw new PasswordNotMatchException(); + if (!user.getPassword().equals(userObj.getPassword())) { + return ResponseEntity.badRequest().body(new SigninResponse("비밀번호가 틀렸습니다.")); + } - User responseUser = user; - responseUser.setPassword(null); - return responseUser; + SigninResponse response = new SigninResponse("로그인에 성공하였습니다.", user.getId(), user.getEmail(), user.getNickname(), user.getCrime()); + return ResponseEntity.ok(response); } @GetMapping("/user") public List get() { diff --git a/RabbitBack/src/main/java/com/purdue/project/model/SigninResponse.java b/RabbitBack/src/main/java/com/purdue/project/model/SigninResponse.java new file mode 100644 index 0000000..2cd55fd --- /dev/null +++ b/RabbitBack/src/main/java/com/purdue/project/model/SigninResponse.java @@ -0,0 +1,23 @@ +package com.purdue.project.model; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class SigninResponse { + + private String message; + private Integer id; + private String email; + private String nickname; + private String crime; + + public SigninResponse(String message) { + this.message = message; + } +} diff --git a/RabbitBack/src/main/java/com/purdue/project/model/SignupResponse.java b/RabbitBack/src/main/java/com/purdue/project/model/SignupResponse.java new file mode 100644 index 0000000..9b39cd5 --- /dev/null +++ b/RabbitBack/src/main/java/com/purdue/project/model/SignupResponse.java @@ -0,0 +1,13 @@ +package com.purdue.project.model; + +import lombok.*; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class SignupResponse { + + private String message; + +} diff --git a/RabbitBack/src/main/java/com/purdue/project/model/User.java b/RabbitBack/src/main/java/com/purdue/project/model/User.java index 4578d94..5eb71fd 100644 --- a/RabbitBack/src/main/java/com/purdue/project/model/User.java +++ b/RabbitBack/src/main/java/com/purdue/project/model/User.java @@ -1,8 +1,17 @@ package com.purdue.project.model; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + import javax.persistence.*; import java.util.Date; +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor @Entity @Table(name = "user") public class User { @@ -21,54 +30,6 @@ public class User { @Column private Date regdate; - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getNickname() { - return nickname; - } - - public void setNickname(String nickname) { - this.nickname = nickname; - } - - public String getCrime() { - return crime; - } - - public void setCrime(String crime) { - this.crime = crime; - } - - public Date getRegdate() { - return regdate; - } - - public void setRegdate(Date regdate) { - this.regdate = regdate; - } - @Override public String toString() { return "User{" + From 64d5a027f36f9d992a4350c2071342c72026564d Mon Sep 17 00:00:00 2001 From: "zihooy139@gmail.com" Date: Wed, 16 Nov 2022 10:59:19 -0500 Subject: [PATCH 4/7] =?UTF-8?q?feat:=20user=20update=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/controller/UserController.java | 11 ++++---- .../com/purdue/project/model/UserUpdate.java | 26 +++++++++++++++++++ 2 files changed, 32 insertions(+), 5 deletions(-) create mode 100644 RabbitBack/src/main/java/com/purdue/project/model/UserUpdate.java diff --git a/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java b/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java index a1758d1..7809623 100644 --- a/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java +++ b/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java @@ -1,9 +1,8 @@ package com.purdue.project.controller; +import com.purdue.project.model.*; import com.purdue.project.dao.UserDAO; -import com.purdue.project.exception.PasswordNotMatchException; import com.purdue.project.exception.UserNotFoundException; -import com.purdue.project.model.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -21,7 +20,7 @@ public class UserController { public ResponseEntity signUp(@RequestBody User userObj) { // check if the email is valid if (userDAO.findByEmail(userObj.getEmail()).isPresent()) { - return ResponseEntity.badRequest().body(new SignupResponse("중복된 이메일이 존재합니다.")); + return ResponseEntity.badRequest().body(new SignupResponse("이미 존재하는 이메일입니다.")); } userDAO.save(userObj); return ResponseEntity.ok(new SignupResponse("회원 가입이 완료되었습니다.")); @@ -58,9 +57,11 @@ public User get(@PathVariable int id) { } } - @PutMapping("/user") + @PostMapping("/user/update") public User update(@RequestBody User userObj) { - return userDAO.save(userObj); + Optional user = userDAO.findById(userObj.getId()); + User updatedUser = new User(user.get().getId(), user.get().getEmail(), user.get().getPassword(), userObj.getNickname(), userObj.getCrime(), user.get().getRegdate()); + return userDAO.save(updatedUser); } @DeleteMapping("/user/{id}") diff --git a/RabbitBack/src/main/java/com/purdue/project/model/UserUpdate.java b/RabbitBack/src/main/java/com/purdue/project/model/UserUpdate.java new file mode 100644 index 0000000..5180fa5 --- /dev/null +++ b/RabbitBack/src/main/java/com/purdue/project/model/UserUpdate.java @@ -0,0 +1,26 @@ +package com.purdue.project.model; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import javax.persistence.*; +import java.util.Date; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@Entity +@Table(name = "user") +public class UserUpdate { + @Column + @Id + @GeneratedValue(strategy=GenerationType.IDENTITY) + private Integer id; + @Column + private String nickname; + @Column + private String crime; +} From 388cb78257e02c78e5778e0dafd3b08bcd035fa3 Mon Sep 17 00:00:00 2001 From: "zihooy139@gmail.com" Date: Sun, 11 Dec 2022 15:32:22 -0500 Subject: [PATCH 5/7] feat: check if the crime is processing or not --- .../project/controller/UserController.java | 36 +++++++++++++------ .../exception/EmailExistException.java | 8 ----- .../exception/PasswordNotMatchException.java | 8 ----- .../project/exception/RabbitException.java | 14 -------- .../project/exception/UserException.java | 7 ---- .../exception/UserNotFoundException.java | 8 ----- .../purdue/project/model/SignupResponse.java | 10 +++++- .../purdue/project/model/UpdateResponse.java | 26 ++++++++++++++ .../java/com/purdue/project/model/User.java | 2 ++ .../com/purdue/project/model/UserUpdate.java | 5 +++ 10 files changed, 67 insertions(+), 57 deletions(-) delete mode 100644 RabbitBack/src/main/java/com/purdue/project/exception/EmailExistException.java delete mode 100644 RabbitBack/src/main/java/com/purdue/project/exception/PasswordNotMatchException.java delete mode 100644 RabbitBack/src/main/java/com/purdue/project/exception/RabbitException.java delete mode 100644 RabbitBack/src/main/java/com/purdue/project/exception/UserException.java delete mode 100644 RabbitBack/src/main/java/com/purdue/project/exception/UserNotFoundException.java create mode 100644 RabbitBack/src/main/java/com/purdue/project/model/UpdateResponse.java diff --git a/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java b/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java index 7809623..f5b2eb6 100644 --- a/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java +++ b/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java @@ -1,8 +1,8 @@ package com.purdue.project.controller; import com.purdue.project.model.*; -import com.purdue.project.dao.UserDAO; import com.purdue.project.exception.UserNotFoundException; +import com.purdue.project.dao.UserDAO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -20,26 +20,26 @@ public class UserController { public ResponseEntity signUp(@RequestBody User userObj) { // check if the email is valid if (userDAO.findByEmail(userObj.getEmail()).isPresent()) { - return ResponseEntity.badRequest().body(new SignupResponse("이미 존재하는 이메일입니다.")); + return ResponseEntity.badRequest().body(new SignupResponse("Email already exists.")); } - userDAO.save(userObj); - return ResponseEntity.ok(new SignupResponse("회원 가입이 완료되었습니다.")); + Integer userId = userDAO.save(userObj).getId(); + return ResponseEntity.ok(new SignupResponse(userId, "Sign up succeed.")); } @PostMapping("/signIn") public ResponseEntity signIn(@RequestBody User userObj) { // check if the user is valid if (!userDAO.findByEmail(userObj.getEmail()).isPresent()) { - return ResponseEntity.badRequest().body(new SigninResponse("회원 가입을 진행해주세요.")); + return ResponseEntity.badRequest().body(new SigninResponse("Please sign up first.")); } User user = userDAO.findByEmail(userObj.getEmail()).orElseThrow(UserNotFoundException::new); // check if the password is valid if (!user.getPassword().equals(userObj.getPassword())) { - return ResponseEntity.badRequest().body(new SigninResponse("비밀번호가 틀렸습니다.")); + return ResponseEntity.badRequest().body(new SigninResponse("Your password is wrong.")); } - SigninResponse response = new SigninResponse("로그인에 성공하였습니다.", user.getId(), user.getEmail(), user.getNickname(), user.getCrime()); + SigninResponse response = new SigninResponse("Sign in succeed.", user.getId(), user.getEmail(), user.getNickname(), user.getCrime()); return ResponseEntity.ok(response); } @GetMapping("/user") @@ -58,10 +58,24 @@ public User get(@PathVariable int id) { } @PostMapping("/user/update") - public User update(@RequestBody User userObj) { - Optional user = userDAO.findById(userObj.getId()); - User updatedUser = new User(user.get().getId(), user.get().getEmail(), user.get().getPassword(), userObj.getNickname(), userObj.getCrime(), user.get().getRegdate()); - return userDAO.save(updatedUser); + public ResponseEntity update(@RequestBody User userObj) { + User user = userDAO.findById(userObj.getId()).orElseThrow(UserNotFoundException::new); + UpdateResponse returnedUser = new UpdateResponse(user.getId(), userObj.getNickname(), userObj.getCrime(), Boolean.FALSE, "Crime is not processing"); + + //check if the crime is updating + if(user.getProcessing()) { + return ResponseEntity.badRequest().body(new UpdateResponse("Please wait until processing your previous request.")); + } + + //check if the crime has been changed + if(!userObj.getCrime().equals(user.getCrime())) { + returnedUser.setIsCrimeUpdated(Boolean.TRUE); + } + + User updatedUser = new User(user.getId(), user.getEmail(), user.getPassword(), userObj.getNickname(), userObj.getCrime(), user.getProcessing(), user.getRegdate()); + userDAO.save(updatedUser); + + return ResponseEntity.ok(returnedUser); } @DeleteMapping("/user/{id}") diff --git a/RabbitBack/src/main/java/com/purdue/project/exception/EmailExistException.java b/RabbitBack/src/main/java/com/purdue/project/exception/EmailExistException.java deleted file mode 100644 index e9463c8..0000000 --- a/RabbitBack/src/main/java/com/purdue/project/exception/EmailExistException.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.purdue.project.exception; - -import org.springframework.http.HttpStatus; - -public class EmailExistException extends UserException{ - public EmailExistException() {super("이미 존재하는 이메일입니다.", HttpStatus.BAD_REQUEST);} - -} diff --git a/RabbitBack/src/main/java/com/purdue/project/exception/PasswordNotMatchException.java b/RabbitBack/src/main/java/com/purdue/project/exception/PasswordNotMatchException.java deleted file mode 100644 index 4ec4927..0000000 --- a/RabbitBack/src/main/java/com/purdue/project/exception/PasswordNotMatchException.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.purdue.project.exception; - -import org.springframework.http.HttpStatus; - -public class PasswordNotMatchException extends UserException{ - public PasswordNotMatchException() {super("비밀번호가 틀렸습니다.", HttpStatus.BAD_REQUEST);} - -} diff --git a/RabbitBack/src/main/java/com/purdue/project/exception/RabbitException.java b/RabbitBack/src/main/java/com/purdue/project/exception/RabbitException.java deleted file mode 100644 index 09179e7..0000000 --- a/RabbitBack/src/main/java/com/purdue/project/exception/RabbitException.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.purdue.project.exception; - -import org.springframework.http.HttpStatus; - -public class RabbitException extends RuntimeException { - private final HttpStatus httpStatus; - - public RabbitException(String message, HttpStatus httpStatus) { - super(message); - this.httpStatus = httpStatus; - } - - public HttpStatus getHttpStatus() {return httpStatus;} -} \ No newline at end of file diff --git a/RabbitBack/src/main/java/com/purdue/project/exception/UserException.java b/RabbitBack/src/main/java/com/purdue/project/exception/UserException.java deleted file mode 100644 index 6f3c804..0000000 --- a/RabbitBack/src/main/java/com/purdue/project/exception/UserException.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.purdue.project.exception; - -import org.springframework.http.HttpStatus; - -public class UserException extends RabbitException{ - protected UserException(String message, HttpStatus httpStatus) {super(message, httpStatus);} -} diff --git a/RabbitBack/src/main/java/com/purdue/project/exception/UserNotFoundException.java b/RabbitBack/src/main/java/com/purdue/project/exception/UserNotFoundException.java deleted file mode 100644 index d78943f..0000000 --- a/RabbitBack/src/main/java/com/purdue/project/exception/UserNotFoundException.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.purdue.project.exception; - -import org.springframework.http.HttpStatus; - -public class UserNotFoundException extends UserException{ - public UserNotFoundException() {super("회원 가입을 진행해주세요.", HttpStatus.BAD_REQUEST);} - -} diff --git a/RabbitBack/src/main/java/com/purdue/project/model/SignupResponse.java b/RabbitBack/src/main/java/com/purdue/project/model/SignupResponse.java index 9b39cd5..df4cc49 100644 --- a/RabbitBack/src/main/java/com/purdue/project/model/SignupResponse.java +++ b/RabbitBack/src/main/java/com/purdue/project/model/SignupResponse.java @@ -1,6 +1,9 @@ package com.purdue.project.model; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; @Getter @Setter @@ -8,6 +11,11 @@ @AllArgsConstructor public class SignupResponse { + private Integer userId; private String message; + public SignupResponse(String message) { + this.message = message; + } + } diff --git a/RabbitBack/src/main/java/com/purdue/project/model/UpdateResponse.java b/RabbitBack/src/main/java/com/purdue/project/model/UpdateResponse.java new file mode 100644 index 0000000..e40460b --- /dev/null +++ b/RabbitBack/src/main/java/com/purdue/project/model/UpdateResponse.java @@ -0,0 +1,26 @@ +package com.purdue.project.model; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import javax.persistence.*; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class UpdateResponse { + + private Integer id; + private String nickname; + private String crime; + private Boolean isCrimeUpdated; + private String message; + + public UpdateResponse(String message) { + this.message = message; + } + +} diff --git a/RabbitBack/src/main/java/com/purdue/project/model/User.java b/RabbitBack/src/main/java/com/purdue/project/model/User.java index 5eb71fd..7057072 100644 --- a/RabbitBack/src/main/java/com/purdue/project/model/User.java +++ b/RabbitBack/src/main/java/com/purdue/project/model/User.java @@ -28,6 +28,8 @@ public class User { @Column private String crime; @Column + private Boolean processing; + @Column private Date regdate; @Override diff --git a/RabbitBack/src/main/java/com/purdue/project/model/UserUpdate.java b/RabbitBack/src/main/java/com/purdue/project/model/UserUpdate.java index 5180fa5..087fa96 100644 --- a/RabbitBack/src/main/java/com/purdue/project/model/UserUpdate.java +++ b/RabbitBack/src/main/java/com/purdue/project/model/UserUpdate.java @@ -23,4 +23,9 @@ public class UserUpdate { private String nickname; @Column private String crime; + @Column + private Boolean isCrimeUpdated; + @Column + private String message; + } From f7b0d6896086e7ddfcc99e10ae381ff1c76ac41d Mon Sep 17 00:00:00 2001 From: "zihooy139@gmail.com" Date: Sun, 11 Dec 2022 15:32:37 -0500 Subject: [PATCH 6/7] feat: add exception files --- .../purdue/project/exception/RabbitException.java | 14 ++++++++++++++ .../purdue/project/exception/UserException.java | 7 +++++++ .../project/exception/UserNotFoundException.java | 8 ++++++++ 3 files changed, 29 insertions(+) create mode 100644 RabbitBack/src/main/java/com/purdue/project/exception/RabbitException.java create mode 100644 RabbitBack/src/main/java/com/purdue/project/exception/UserException.java create mode 100644 RabbitBack/src/main/java/com/purdue/project/exception/UserNotFoundException.java diff --git a/RabbitBack/src/main/java/com/purdue/project/exception/RabbitException.java b/RabbitBack/src/main/java/com/purdue/project/exception/RabbitException.java new file mode 100644 index 0000000..09179e7 --- /dev/null +++ b/RabbitBack/src/main/java/com/purdue/project/exception/RabbitException.java @@ -0,0 +1,14 @@ +package com.purdue.project.exception; + +import org.springframework.http.HttpStatus; + +public class RabbitException extends RuntimeException { + private final HttpStatus httpStatus; + + public RabbitException(String message, HttpStatus httpStatus) { + super(message); + this.httpStatus = httpStatus; + } + + public HttpStatus getHttpStatus() {return httpStatus;} +} \ No newline at end of file diff --git a/RabbitBack/src/main/java/com/purdue/project/exception/UserException.java b/RabbitBack/src/main/java/com/purdue/project/exception/UserException.java new file mode 100644 index 0000000..6f3c804 --- /dev/null +++ b/RabbitBack/src/main/java/com/purdue/project/exception/UserException.java @@ -0,0 +1,7 @@ +package com.purdue.project.exception; + +import org.springframework.http.HttpStatus; + +public class UserException extends RabbitException{ + protected UserException(String message, HttpStatus httpStatus) {super(message, httpStatus);} +} diff --git a/RabbitBack/src/main/java/com/purdue/project/exception/UserNotFoundException.java b/RabbitBack/src/main/java/com/purdue/project/exception/UserNotFoundException.java new file mode 100644 index 0000000..d78943f --- /dev/null +++ b/RabbitBack/src/main/java/com/purdue/project/exception/UserNotFoundException.java @@ -0,0 +1,8 @@ +package com.purdue.project.exception; + +import org.springframework.http.HttpStatus; + +public class UserNotFoundException extends UserException{ + public UserNotFoundException() {super("회원 가입을 진행해주세요.", HttpStatus.BAD_REQUEST);} + +} From e5fcda30396d0572c40d3a36a00826d3acd6f4e4 Mon Sep 17 00:00:00 2001 From: "zihooy139@gmail.com" Date: Thu, 15 Dec 2022 14:44:18 -0500 Subject: [PATCH 7/7] feat:update --- .../project/controller/UserController.java | 19 ++++++++++++------- .../purdue/project/model/UpdateResponse.java | 1 + .../java/com/purdue/project/model/User.java | 5 ++++- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java b/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java index f5b2eb6..23c4486 100644 --- a/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java +++ b/RabbitBack/src/main/java/com/purdue/project/controller/UserController.java @@ -18,10 +18,13 @@ public class UserController { @PostMapping("/signUp") public ResponseEntity signUp(@RequestBody User userObj) { + // check if the email is valid if (userDAO.findByEmail(userObj.getEmail()).isPresent()) { return ResponseEntity.badRequest().body(new SignupResponse("Email already exists.")); } + userObj.setMaking(1); + Integer userId = userDAO.save(userObj).getId(); return ResponseEntity.ok(new SignupResponse(userId, "Sign up succeed.")); } @@ -59,22 +62,24 @@ public User get(@PathVariable int id) { @PostMapping("/user/update") public ResponseEntity update(@RequestBody User userObj) { - User user = userDAO.findById(userObj.getId()).orElseThrow(UserNotFoundException::new); - UpdateResponse returnedUser = new UpdateResponse(user.getId(), userObj.getNickname(), userObj.getCrime(), Boolean.FALSE, "Crime is not processing"); + Optional user = userDAO.findById(userObj.getId()); + UpdateResponse returnedUser = new UpdateResponse(user.get().getId(), userObj.getNickname(), userObj.getCrime(), Boolean.FALSE, user.get().getProcessing(),"Crime is not processing."); //check if the crime is updating - if(user.getProcessing()) { + if(user.get().getProcessing() == 1) { return ResponseEntity.badRequest().body(new UpdateResponse("Please wait until processing your previous request.")); } //check if the crime has been changed - if(!userObj.getCrime().equals(user.getCrime())) { + if(!userObj.getCrime().equals(user.get().getCrime())) { returnedUser.setIsCrimeUpdated(Boolean.TRUE); + User updatedUser = new User(user.get().getId(), user.get().getEmail(), user.get().getPassword(), userObj.getNickname(), userObj.getCrime(), user.get().getMaking(), 1, user.get().getRegdate()); + userDAO.save(updatedUser); + } else { + User updatedUser = new User(user.get().getId(), user.get().getEmail(), user.get().getPassword(), userObj.getNickname(), userObj.getCrime(), user.get().getMaking(), user.get().getProcessing(), user.get().getRegdate()); + userDAO.save(updatedUser); } - User updatedUser = new User(user.getId(), user.getEmail(), user.getPassword(), userObj.getNickname(), userObj.getCrime(), user.getProcessing(), user.getRegdate()); - userDAO.save(updatedUser); - return ResponseEntity.ok(returnedUser); } diff --git a/RabbitBack/src/main/java/com/purdue/project/model/UpdateResponse.java b/RabbitBack/src/main/java/com/purdue/project/model/UpdateResponse.java index e40460b..eba6d6c 100644 --- a/RabbitBack/src/main/java/com/purdue/project/model/UpdateResponse.java +++ b/RabbitBack/src/main/java/com/purdue/project/model/UpdateResponse.java @@ -17,6 +17,7 @@ public class UpdateResponse { private String nickname; private String crime; private Boolean isCrimeUpdated; + private int processing; private String message; public UpdateResponse(String message) { diff --git a/RabbitBack/src/main/java/com/purdue/project/model/User.java b/RabbitBack/src/main/java/com/purdue/project/model/User.java index 7057072..51ca3b6 100644 --- a/RabbitBack/src/main/java/com/purdue/project/model/User.java +++ b/RabbitBack/src/main/java/com/purdue/project/model/User.java @@ -28,7 +28,9 @@ public class User { @Column private String crime; @Column - private Boolean processing; + private int making; + @Column + private int processing; @Column private Date regdate; @@ -40,6 +42,7 @@ public String toString() { ", password='" + password + '\'' + ", nickname='" + nickname + '\'' + ", crime='" + crime + '\'' + + ", processing=" + processing + ", regdate=" + regdate + '}'; }