-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUserController.java
More file actions
54 lines (46 loc) · 2.2 KB
/
UserController.java
File metadata and controls
54 lines (46 loc) · 2.2 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
package com.rabbitmqprac.application.controller;
import com.rabbitmqprac.application.dto.auth.res.UserDetailRes;
import com.rabbitmqprac.application.dto.user.req.NicknameCheckReq;
import com.rabbitmqprac.application.dto.user.req.NicknameUpdateReq;
import com.rabbitmqprac.domain.context.user.service.UserService;
import com.rabbitmqprac.infra.security.authentication.SecurityUserDetails;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@Slf4j
@RestController
@RequiredArgsConstructor
public class UserController {
private final UserService userService;
@GetMapping("/users/me")
public UserDetailRes getMember(@AuthenticationPrincipal SecurityUserDetails user) {
return userService.getUserDetail(user.getUserId());
}
@GetMapping("/users")
public List<UserDetailRes> getMembers() {
return userService.getUserDetails();
}
@GetMapping("/users/username")
public Map<String, Boolean> isDuplicatedUsername(@RequestParam @Validated String username) {
return Map.of("isDuplicated", userService.isDuplicatedUsername(username));
}
@PatchMapping("/users/nickname")
public ResponseEntity<Void> patchNickname(@AuthenticationPrincipal SecurityUserDetails user,
@RequestBody NicknameUpdateReq nicknameUpdateReq) {
userService.updateNickname(user.getUserId(), nicknameUpdateReq);
return ResponseEntity.noContent().build();
}
@GetMapping("/users/nickname")
public Map<String, Boolean> checkNicknameDuplication(@Validated NicknameCheckReq nicknameCheckReq) {
return Map.of("isDuplicated", userService.isDuplicatedNickname(nicknameCheckReq));
}
}