Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.purdue.project.controller;

import com.purdue.project.model.*;
import com.purdue.project.exception.UserNotFoundException;
import com.purdue.project.dao.UserDAO;
import com.purdue.project.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;
Expand All @@ -14,11 +16,35 @@ public class UserController {
@Autowired
UserDAO userDAO;

@PostMapping("/user")
public User save(@RequestBody User userObj) {
return userDAO.save(userObj);
@PostMapping("/signUp")
public ResponseEntity<SignupResponse> 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."));
}
@PostMapping("/signIn")
public ResponseEntity<SigninResponse> signIn(@RequestBody User userObj) {

// check if the user is valid
if (!userDAO.findByEmail(userObj.getEmail()).isPresent()) {
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("Your password is wrong."));
}

SigninResponse response = new SigninResponse("Sign in succeed.", user.getId(), user.getEmail(), user.getNickname(), user.getCrime());
return ResponseEntity.ok(response);
}
@GetMapping("/user")
public List<User> get() {
return userDAO.findAll();
Expand All @@ -34,9 +60,27 @@ public User get(@PathVariable int id) {
}
}

@PutMapping("/user")
public User update(@RequestBody User userObj) {
return userDAO.save(userObj);
@PostMapping("/user/update")
public ResponseEntity<UpdateResponse> update(@RequestBody User userObj) {
Optional<User> 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.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.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);
}

return ResponseEntity.ok(returnedUser);
}

@DeleteMapping("/user/{id}")
Expand Down
3 changes: 3 additions & 0 deletions RabbitBack/src/main/java/com/purdue/project/dao/UserDAO.java
Original file line number Diff line number Diff line change
Expand Up @@ -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<User, Integer> {
Optional<User> findByEmail(String email);

}
Original file line number Diff line number Diff line change
@@ -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;}
}
Original file line number Diff line number Diff line change
@@ -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);}
}
Original file line number Diff line number Diff line change
@@ -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);}

}
Original file line number Diff line number Diff line change
@@ -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;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package com.purdue.project.model;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class SignupResponse {

private Integer userId;
private String message;

public SignupResponse(String message) {
this.message = message;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
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 int processing;
private String message;

public UpdateResponse(String message) {
this.message = message;
}

}
62 changes: 14 additions & 48 deletions RabbitBack/src/main/java/com/purdue/project/model/User.java
Original file line number Diff line number Diff line change
@@ -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 {
Expand All @@ -19,56 +28,12 @@ public class User {
@Column
private String crime;
@Column
private int making;
@Column
private int processing;
@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{" +
Expand All @@ -77,6 +42,7 @@ public String toString() {
", password='" + password + '\'' +
", nickname='" + nickname + '\'' +
", crime='" + crime + '\'' +
", processing=" + processing +
", regdate=" + regdate +
'}';
}
Expand Down
31 changes: 31 additions & 0 deletions RabbitBack/src/main/java/com/purdue/project/model/UserUpdate.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
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;
@Column
private Boolean isCrimeUpdated;
@Column
private String message;

}