diff --git a/src/main/java/org/seattlevoluntech/controllers/UserController.java b/src/main/java/org/seattlevoluntech/controllers/UserController.java index 640c1db4..5b6ca857 100644 --- a/src/main/java/org/seattlevoluntech/controllers/UserController.java +++ b/src/main/java/org/seattlevoluntech/controllers/UserController.java @@ -9,7 +9,9 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.Objects; import java.util.Optional; @CrossOrigin @@ -51,4 +53,33 @@ public String fetchDataByLastName(@RequestParam("last_name") String lastName) { return result.toString(); } + @PutMapping("/profile") + public User updateUser(@RequestBody User user, HttpServletRequest request, HttpServletResponse res) throws Exception { + if(request.getRemoteUser() == null) { + res.sendError(400, "You are not logged in"); + return null; + } + + User dbUser = userRepository.findByTokenId(request.getRemoteUser()); + + if(dbUser == null) { + res.sendError(500, "Failed to find logged in user"); + return null; + } + if(!Objects.equals(user.getId(), dbUser.getId())) { + res.sendError(400, "Invalid user id"); + return null; + } + + dbUser.setEmail(user.getEmail()); + dbUser.setFirstName(user.getFirstName()); + dbUser.setBio(user.getBio()); + dbUser.setLastName(user.getLastName()); + dbUser.setPhoneNumber(user.getPhoneNumber()); + dbUser.setStatus(user.getStatus()); + dbUser.setType(user.getType()); + + return userRepository.save(dbUser); + } + }