-
Notifications
You must be signed in to change notification settings - Fork 90
Expand file tree
/
Copy pathUserReadController.java
More file actions
58 lines (50 loc) · 1.97 KB
/
UserReadController.java
File metadata and controls
58 lines (50 loc) · 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package controller.user;
import java.io.IOException;
import java.util.Objects;
import com.fasterxml.jackson.databind.ObjectMapper;
import annotations.Controller;
import annotations.RequestMapping;
import controller.AbstractController;
import domain.HttpHeader;
import domain.HttpMethod;
import domain.HttpRequest;
import domain.HttpResponse;
import domain.HttpStatus;
import service.user.UserService;
import user.User;
@Controller
public class UserReadController extends AbstractController {
private final UserService userService;
private final ObjectMapper objectMapper;
public UserReadController() {
userService = UserService.getInstance();
objectMapper = new ObjectMapper();
}
public UserReadController(UserService userService, ObjectMapper objectMapper) {
this.userService = userService;
this.objectMapper = objectMapper;
}
@RequestMapping(path = "/user/profile", method = HttpMethod.GET)
@Override
public void doGet(HttpRequest httpRequest, HttpResponse httpResponse) throws IOException {
User user = userService.findByUserId(httpRequest.getParameter(User.USER_ID));
if (Objects.isNull(user)) {
validateParameter(httpRequest, httpResponse);
httpResponse.error();
return;
}
byte[] body = objectMapper.writeValueAsBytes(user);
httpResponse.setHttpStatus(HttpStatus.OK);
httpResponse.addHeader(HttpHeader.CONTENT_TYPE, "application/json;charset=UTF-8");
httpResponse.addHeader(HttpHeader.CONTENT_LENGTH, String.valueOf(body.length));
httpResponse.forward(body);
}
private void validateParameter(HttpRequest httpRequest, HttpResponse httpResponse) {
if (!httpRequest.containsParameter(User.USER_ID)) {
httpResponse.setHttpStatus(HttpStatus.BAD_REQUEST);
}
if (httpRequest.containsParameter(User.USER_ID)) {
httpResponse.setHttpStatus(HttpStatus.UNPROCESSABLE_ENTITY);
}
}
}