From 3d0f0cbfa31cd1ce785c200cf2ef8eabed58aefb Mon Sep 17 00:00:00 2001 From: Richard <41926795+Richard-outreach@users.noreply.github.com> Date: Sat, 2 Feb 2019 13:48:16 -0800 Subject: [PATCH] Add PUT endpoint for user profile (#103) * Add PUT endpoint for user profile * Add type to user object. --- .../controllers/UserController.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) 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); + } + }