You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
2.5 KiB

  1. package de.fd.fh.server.user.web;
  2. import com.fasterxml.jackson.core.JsonProcessingException;
  3. import com.fasterxml.jackson.databind.ObjectMapper;
  4. import de.fd.fh.server.access.AccessToken;
  5. import de.fd.fh.server.user.User;
  6. import de.fd.fh.server.user.UserId;
  7. import de.fd.fh.server.user.UserService;
  8. import de.fd.fh.shared.network.messages.ChangeUserRequest;
  9. import de.fd.fh.shared.network.messages.UserRequest;
  10. import lombok.RequiredArgsConstructor;
  11. import spark.Request;
  12. import spark.Response;
  13. @RequiredArgsConstructor
  14. public class UserController
  15. {
  16. private ObjectMapper objectMapper = new ObjectMapper();
  17. private final UserService service;
  18. public Response getUser(Request request, Response response) throws JsonProcessingException
  19. {
  20. final UserId userId = UserId.of(request.params(":user_id"));
  21. final UserRequest user = service.getSmallPlayer(userId);
  22. if (user == null)
  23. {
  24. response.status(404);
  25. return response;
  26. }
  27. response.body(objectMapper.writeValueAsString(user));
  28. return response;
  29. }
  30. public Response getCompleteUser(Request request, Response response) throws JsonProcessingException
  31. {
  32. final UserId userId =
  33. ((AccessToken) request.session()
  34. .attribute("userId"))
  35. .getUserId();
  36. final User user = service.getPlayer(userId);
  37. if (user == null)
  38. {
  39. response.status(404);
  40. }
  41. else
  42. {
  43. response.status(200);
  44. response.type("application/json");
  45. response.body(objectMapper.writeValueAsString(user));
  46. return response;
  47. }
  48. return response;
  49. }
  50. public Response updateUser(Request request, Response response) throws java.io.IOException
  51. {
  52. final UserId userId =
  53. ((AccessToken) request.session()
  54. .attribute("userId"))
  55. .getUserId();
  56. final ChangeUserRequest message = objectMapper.readValue(request.body(),
  57. ChangeUserRequest.class);
  58. final User user = service.changePlayer(
  59. userId,
  60. message);
  61. if (user == null)
  62. {
  63. response.status(400);
  64. }
  65. else
  66. {
  67. response.status(200);
  68. response.type("application/json");
  69. response.body(objectMapper.writeValueAsString(user));
  70. return response;
  71. }
  72. return response;
  73. }
  74. }