From ec7cd3012ca3b6c1570c477fa02f0b9f3692d60b Mon Sep 17 00:00:00 2001 From: qlido Date: Wed, 24 Apr 2024 20:26:55 +0900 Subject: [PATCH 1/9] =?UTF-8?q?refactor(user):=20user=EB=8F=84=EB=A9=94?= =?UTF-8?q?=EC=9D=B8=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bumawiki/domain/user/domain/User.java | 26 ++------------ .../repository/UserRepositoryMapper.java | 29 ---------------- .../user/exception/UserNotFoundException.java | 13 ------- .../user/implementation/UserUpdater.java | 5 +++ .../presentation/UserAuthorityController.java | 27 --------------- .../user/presentation/UserInfoController.java | 34 +++++++++++++------ .../user/presentation/dto/SimpleUserDto.java | 27 +++++++-------- .../presentation/dto/UserAuthorityDto.java | 18 ---------- .../dto/UserAuthorityRequestDto.java | 11 ++++++ .../user/service/CommandUserService.java | 23 +++++++++++++ .../domain/user/service/QueryUserService.java | 19 +++++++++++ .../user/service/UserAuthorityService.java | 25 -------------- .../domain/user/service/UserInfoService.java | 18 ---------- 13 files changed, 97 insertions(+), 178 deletions(-) delete mode 100644 src/main/java/com/project/bumawiki/domain/user/domain/repository/UserRepositoryMapper.java delete mode 100644 src/main/java/com/project/bumawiki/domain/user/exception/UserNotFoundException.java delete mode 100644 src/main/java/com/project/bumawiki/domain/user/presentation/UserAuthorityController.java delete mode 100644 src/main/java/com/project/bumawiki/domain/user/presentation/dto/UserAuthorityDto.java create mode 100644 src/main/java/com/project/bumawiki/domain/user/presentation/dto/UserAuthorityRequestDto.java create mode 100644 src/main/java/com/project/bumawiki/domain/user/service/CommandUserService.java create mode 100644 src/main/java/com/project/bumawiki/domain/user/service/QueryUserService.java delete mode 100644 src/main/java/com/project/bumawiki/domain/user/service/UserAuthorityService.java delete mode 100644 src/main/java/com/project/bumawiki/domain/user/service/UserInfoService.java diff --git a/src/main/java/com/project/bumawiki/domain/user/domain/User.java b/src/main/java/com/project/bumawiki/domain/user/domain/User.java index 7d1e1bfb..ba780566 100644 --- a/src/main/java/com/project/bumawiki/domain/user/domain/User.java +++ b/src/main/java/com/project/bumawiki/domain/user/domain/User.java @@ -1,22 +1,14 @@ package com.project.bumawiki.domain.user.domain; -import java.util.ArrayList; -import java.util.List; - -import com.project.bumawiki.domain.thumbsup.domain.ThumbsUp; -import com.project.bumawiki.domain.thumbsup.presentation.dto.ThumbsUpResponseDto; import com.project.bumawiki.domain.user.domain.authority.Authority; -import jakarta.persistence.CascadeType; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.EnumType; import jakarta.persistence.Enumerated; -import jakarta.persistence.FetchType; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; -import jakarta.persistence.OneToMany; import jakarta.validation.constraints.Email; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; @@ -37,13 +29,6 @@ public class User { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - @OneToMany( - mappedBy = "user", - fetch = FetchType.LAZY, - cascade = CascadeType.ALL, - orphanRemoval = true) - @Builder.Default - private final List thumbsUps = new ArrayList<>(); @Email @Size(max = 32) @Column(unique = true, length = 32) @@ -59,18 +44,12 @@ public class User { @Column(length = 16) @Enumerated(EnumType.STRING) private Authority authority; + @NotNull @Size(max = 16) @Column(length = 16) private String name; - public List getList() { - return this.thumbsUps - .stream() - .map(ThumbsUp::getDto) - .toList(); - } - public void update(User user) { this.email = user.getEmail(); this.name = user.getName(); @@ -78,7 +57,8 @@ public void update(User user) { this.nickName = user.getNickName(); } - public void changeUserAuthority(Authority authority) { + public void updateAuthority(Authority authority) { this.authority = authority; } + } diff --git a/src/main/java/com/project/bumawiki/domain/user/domain/repository/UserRepositoryMapper.java b/src/main/java/com/project/bumawiki/domain/user/domain/repository/UserRepositoryMapper.java deleted file mode 100644 index 5d3eff0f..00000000 --- a/src/main/java/com/project/bumawiki/domain/user/domain/repository/UserRepositoryMapper.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.project.bumawiki.domain.user.domain.repository; - -import org.springframework.stereotype.Repository; - -import com.project.bumawiki.domain.user.domain.User; -import com.project.bumawiki.domain.user.exception.UserNotFoundException; - -import lombok.RequiredArgsConstructor; - -@Repository -@RequiredArgsConstructor -public class UserRepositoryMapper { - - private final UserRepository userRepository; - - public User getByEmail(final String email) { - User user = userRepository.findByEmail(email); - if (user == null) { - throw UserNotFoundException.EXCEPTION; - } - return user; - } - - public User getById(final Long userId) { - return userRepository.findById(userId) - .orElseThrow(() -> UserNotFoundException.EXCEPTION); - } - -} diff --git a/src/main/java/com/project/bumawiki/domain/user/exception/UserNotFoundException.java b/src/main/java/com/project/bumawiki/domain/user/exception/UserNotFoundException.java deleted file mode 100644 index 3a42e2a1..00000000 --- a/src/main/java/com/project/bumawiki/domain/user/exception/UserNotFoundException.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.project.bumawiki.domain.user.exception; - -import com.project.bumawiki.global.error.exception.BumawikiException; -import com.project.bumawiki.global.error.exception.ErrorCode; - -public class UserNotFoundException extends BumawikiException { - - public static final UserNotFoundException EXCEPTION = new UserNotFoundException(ErrorCode.USER_NOT_FOUND); - - public UserNotFoundException(ErrorCode errorCode) { - super(errorCode); - } -} diff --git a/src/main/java/com/project/bumawiki/domain/user/implementation/UserUpdater.java b/src/main/java/com/project/bumawiki/domain/user/implementation/UserUpdater.java index 6bd81384..b6e84ac1 100644 --- a/src/main/java/com/project/bumawiki/domain/user/implementation/UserUpdater.java +++ b/src/main/java/com/project/bumawiki/domain/user/implementation/UserUpdater.java @@ -1,6 +1,7 @@ package com.project.bumawiki.domain.user.implementation; import com.project.bumawiki.domain.user.domain.User; +import com.project.bumawiki.domain.user.domain.authority.Authority; import com.project.bumawiki.global.annotation.Implementation; @Implementation @@ -8,4 +9,8 @@ public class UserUpdater { public void update(User user, User newUserInfo) { user.update(newUserInfo); } + + public void updateAuthority(User user, Authority authority) { + user.updateAuthority(authority); + } } diff --git a/src/main/java/com/project/bumawiki/domain/user/presentation/UserAuthorityController.java b/src/main/java/com/project/bumawiki/domain/user/presentation/UserAuthorityController.java deleted file mode 100644 index 3bdef9dd..00000000 --- a/src/main/java/com/project/bumawiki/domain/user/presentation/UserAuthorityController.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.project.bumawiki.domain.user.presentation; - -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.project.bumawiki.domain.user.domain.authority.Authority; -import com.project.bumawiki.domain.user.presentation.dto.UserAuthorityDto; -import com.project.bumawiki.domain.user.service.UserAuthorityService; - -import lombok.RequiredArgsConstructor; - -@RestController -@RequestMapping("/api") -@RequiredArgsConstructor -public class UserAuthorityController { - private final UserAuthorityService userAuthorityService; - - @PutMapping("/set/authority") - public ResponseEntity setUserAuthority(@RequestBody final UserAuthorityDto userAuthorityDto) { - Authority authority = userAuthorityService.execute(userAuthorityDto); - return ResponseEntity.ok().body(authority); - } - -} diff --git a/src/main/java/com/project/bumawiki/domain/user/presentation/UserInfoController.java b/src/main/java/com/project/bumawiki/domain/user/presentation/UserInfoController.java index dbbea70b..3af9e40b 100644 --- a/src/main/java/com/project/bumawiki/domain/user/presentation/UserInfoController.java +++ b/src/main/java/com/project/bumawiki/domain/user/presentation/UserInfoController.java @@ -1,18 +1,23 @@ package com.project.bumawiki.domain.user.presentation; import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PatchMapping; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestController; +import com.project.bumawiki.domain.auth.annotation.AdminOnly; +import com.project.bumawiki.domain.auth.annotation.LoginRequired; import com.project.bumawiki.domain.auth.service.QueryAuthService; import com.project.bumawiki.domain.docs.service.QueryDocsService; import com.project.bumawiki.domain.user.domain.User; +import com.project.bumawiki.domain.user.presentation.dto.UserAuthorityRequestDto; import com.project.bumawiki.domain.user.presentation.dto.UserResponseDto; -import com.project.bumawiki.domain.user.service.UserInfoService; +import com.project.bumawiki.domain.user.service.CommandUserService; +import com.project.bumawiki.domain.user.service.QueryUserService; import lombok.RequiredArgsConstructor; @@ -21,23 +26,32 @@ @RequestMapping("/api/user") public class UserInfoController { - private final UserInfoService userInfoService; + private final QueryUserService userInfoService; private final QueryDocsService queryDocsService; private final QueryAuthService queryAuthService; + private final CommandUserService commandUserService; @GetMapping - @ResponseStatus(HttpStatus.OK) - public UserResponseDto findUserInfo() { + @LoginRequired + public UserResponseDto findMyInfo() { User user = queryAuthService.getCurrentUser(); return new UserResponseDto(user, queryDocsService.findAllVersionDocsByUser(user)); } @GetMapping("/{id}") - public ResponseEntity findAnotherUserInFo(@PathVariable Long id) { - User foundUser = userInfoService.findAnotherInfo(id); - UserResponseDto response = new UserResponseDto(foundUser, - queryDocsService.findAllVersionDocsByUser(foundUser)); - return ResponseEntity.ok().body(response); + public UserResponseDto findAnotherUserInFo(@PathVariable Long id) { + User foundUser = userInfoService.findUserInfo(id); + return new UserResponseDto( + foundUser, + queryDocsService.findAllVersionDocsByUser(foundUser) + ); + } + + @AdminOnly + @PatchMapping("/authority") + @ResponseStatus(HttpStatus.NO_CONTENT) + public void setUserAuthority(@RequestBody UserAuthorityRequestDto userAuthorityRequestDto) { + commandUserService.updateUserAuthority(userAuthorityRequestDto.id(), userAuthorityRequestDto.authority()); } } diff --git a/src/main/java/com/project/bumawiki/domain/user/presentation/dto/SimpleUserDto.java b/src/main/java/com/project/bumawiki/domain/user/presentation/dto/SimpleUserDto.java index be052bd6..9ba81bb6 100644 --- a/src/main/java/com/project/bumawiki/domain/user/presentation/dto/SimpleUserDto.java +++ b/src/main/java/com/project/bumawiki/domain/user/presentation/dto/SimpleUserDto.java @@ -2,22 +2,19 @@ import com.project.bumawiki.domain.user.domain.User; -import lombok.Getter; - -@Getter -public class SimpleUserDto { - private final Long id; - - private final String email; - - private final String nickName; - - private final String name; +public record SimpleUserDto( + Long id, + String email, + String nickName, + String name +) { public SimpleUserDto(User user) { - this.id = user.getId(); - this.email = user.getEmail(); - this.nickName = user.getNickName(); - this.name = user.getName(); + this( + user.getId(), + user.getEmail(), + user.getNickName(), + user.getName() + ); } } diff --git a/src/main/java/com/project/bumawiki/domain/user/presentation/dto/UserAuthorityDto.java b/src/main/java/com/project/bumawiki/domain/user/presentation/dto/UserAuthorityDto.java deleted file mode 100644 index e79d23bd..00000000 --- a/src/main/java/com/project/bumawiki/domain/user/presentation/dto/UserAuthorityDto.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.project.bumawiki.domain.user.presentation.dto; - -import com.project.bumawiki.domain.user.domain.authority.Authority; - -import jakarta.validation.constraints.NotNull; -import lombok.AllArgsConstructor; -import lombok.Getter; - -@Getter -@AllArgsConstructor -public class UserAuthorityDto { - - @NotNull - private String email; - @NotNull - private Authority authority; - -} diff --git a/src/main/java/com/project/bumawiki/domain/user/presentation/dto/UserAuthorityRequestDto.java b/src/main/java/com/project/bumawiki/domain/user/presentation/dto/UserAuthorityRequestDto.java new file mode 100644 index 00000000..0c875542 --- /dev/null +++ b/src/main/java/com/project/bumawiki/domain/user/presentation/dto/UserAuthorityRequestDto.java @@ -0,0 +1,11 @@ +package com.project.bumawiki.domain.user.presentation.dto; + +import com.project.bumawiki.domain.user.domain.authority.Authority; + +import jakarta.validation.constraints.NotNull; + +public record UserAuthorityRequestDto( + @NotNull Long id, + @NotNull Authority authority +) { +} diff --git a/src/main/java/com/project/bumawiki/domain/user/service/CommandUserService.java b/src/main/java/com/project/bumawiki/domain/user/service/CommandUserService.java new file mode 100644 index 00000000..19e819df --- /dev/null +++ b/src/main/java/com/project/bumawiki/domain/user/service/CommandUserService.java @@ -0,0 +1,23 @@ +package com.project.bumawiki.domain.user.service; + +import org.springframework.stereotype.Service; + +import com.project.bumawiki.domain.user.domain.User; +import com.project.bumawiki.domain.user.domain.authority.Authority; +import com.project.bumawiki.domain.user.implementation.UserReader; +import com.project.bumawiki.domain.user.implementation.UserUpdater; + +import lombok.RequiredArgsConstructor; + +@Service +@RequiredArgsConstructor +public class CommandUserService { + private final UserReader userReader; + private final UserUpdater userUpdater; + + public void updateUserAuthority(Long id, Authority authority) { + User user = userReader.getById(id); + userUpdater.updateAuthority(user, authority); + } + +} diff --git a/src/main/java/com/project/bumawiki/domain/user/service/QueryUserService.java b/src/main/java/com/project/bumawiki/domain/user/service/QueryUserService.java new file mode 100644 index 00000000..9ccfc268 --- /dev/null +++ b/src/main/java/com/project/bumawiki/domain/user/service/QueryUserService.java @@ -0,0 +1,19 @@ +package com.project.bumawiki.domain.user.service; + +import org.springframework.stereotype.Service; + +import com.project.bumawiki.domain.user.domain.User; +import com.project.bumawiki.domain.user.implementation.UserReader; + +import lombok.RequiredArgsConstructor; + +@Service +@RequiredArgsConstructor +public class QueryUserService { + + private final UserReader userReader; + + public User findUserInfo(Long userId) { + return userReader.getById(userId); + } +} diff --git a/src/main/java/com/project/bumawiki/domain/user/service/UserAuthorityService.java b/src/main/java/com/project/bumawiki/domain/user/service/UserAuthorityService.java deleted file mode 100644 index c6a0e8db..00000000 --- a/src/main/java/com/project/bumawiki/domain/user/service/UserAuthorityService.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.project.bumawiki.domain.user.service; - -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.project.bumawiki.domain.user.domain.User; -import com.project.bumawiki.domain.user.domain.authority.Authority; -import com.project.bumawiki.domain.user.domain.repository.UserRepositoryMapper; -import com.project.bumawiki.domain.user.presentation.dto.UserAuthorityDto; - -import lombok.RequiredArgsConstructor; - -@Service -@RequiredArgsConstructor -@Transactional -public class UserAuthorityService { - private final UserRepositoryMapper userRepositoryMapper; - - public Authority execute(final UserAuthorityDto userAuthorityDto) { - User user = userRepositoryMapper.getByEmail(userAuthorityDto.getEmail()); - user.changeUserAuthority(userAuthorityDto.getAuthority()); - return user.getAuthority(); - } - -} diff --git a/src/main/java/com/project/bumawiki/domain/user/service/UserInfoService.java b/src/main/java/com/project/bumawiki/domain/user/service/UserInfoService.java deleted file mode 100644 index b9a7a974..00000000 --- a/src/main/java/com/project/bumawiki/domain/user/service/UserInfoService.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.project.bumawiki.domain.user.service; - -import com.project.bumawiki.domain.user.domain.User; -import com.project.bumawiki.domain.user.domain.repository.UserRepositoryMapper; -import com.project.bumawiki.global.annotation.ServiceWithTransactionalReadOnly; - -import lombok.RequiredArgsConstructor; - -@ServiceWithTransactionalReadOnly -@RequiredArgsConstructor -public class UserInfoService { - - private final UserRepositoryMapper userRepositoryMapper; - - public User findAnotherInfo(Long userId) { - return userRepositoryMapper.getById(userId); - } -} From 1557a6a0187328e66ef38288f84b7f775aaec1c6 Mon Sep 17 00:00:00 2001 From: qlido Date: Wed, 24 Apr 2024 20:27:15 +0900 Subject: [PATCH 2/9] =?UTF-8?q?test(user):=20user=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/service/CommandUserServiceTest.java | 59 +++++++++++++++++++ .../user/service/QueryUserServiceTest.java | 53 +++++++++++++++++ .../global/service/FixtureGenerator.java | 3 +- 3 files changed, 113 insertions(+), 2 deletions(-) create mode 100644 src/test/java/com/project/bumawiki/domain/user/service/CommandUserServiceTest.java create mode 100644 src/test/java/com/project/bumawiki/domain/user/service/QueryUserServiceTest.java diff --git a/src/test/java/com/project/bumawiki/domain/user/service/CommandUserServiceTest.java b/src/test/java/com/project/bumawiki/domain/user/service/CommandUserServiceTest.java new file mode 100644 index 00000000..d5d815c8 --- /dev/null +++ b/src/test/java/com/project/bumawiki/domain/user/service/CommandUserServiceTest.java @@ -0,0 +1,59 @@ +package com.project.bumawiki.domain.user.service; + +import static com.navercorp.fixturemonkey.api.experimental.JavaGetterMethodPropertySelector.*; +import static org.assertj.core.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.RepeatedTest; +import org.springframework.beans.factory.annotation.Autowired; + +import net.jqwik.api.Arbitraries; + +import com.project.bumawiki.domain.user.domain.User; +import com.project.bumawiki.domain.user.domain.authority.Authority; +import com.project.bumawiki.domain.user.domain.repository.UserRepository; +import com.project.bumawiki.global.error.exception.BumawikiException; +import com.project.bumawiki.global.error.exception.ErrorCode; +import com.project.bumawiki.global.service.FixtureGenerator; +import com.project.bumawiki.global.service.ServiceTest; + +class CommandUserServiceTest extends ServiceTest { + + @Autowired + private CommandUserService commandUserService; + @Autowired + private UserRepository userRepository; + + @RepeatedTest(REPEAT_COUNT) + void 유저_권한_업데이트() { + // given + Authority authority = Arbitraries.of(Authority.class).sample(); + Authority otherAuthority = Arbitraries.of(Authority.class).filter(it -> it != authority).sample(); + User user = FixtureGenerator.getDefaultUserBuilder() + .set(javaGetter(User::getAuthority), authority) + .sample(); + + userRepository.save(user); + // when + commandUserService.updateUserAuthority(user.getId(), otherAuthority); + + // then + assertThat(userRepository.findById(user.getId()).get().getAuthority()).isEqualTo(otherAuthority); + } + + @RepeatedTest(REPEAT_COUNT) + void 없는_유저_권한_업데이트() { + // given + Authority authority = Arbitraries.of(Authority.class).sample(); + + Long id = Arbitraries.longs().greaterOrEqual(1).sample(); + // when + BumawikiException exception = assertThrows(BumawikiException.class, + () -> commandUserService.updateUserAuthority(id, authority) + ); + + // then + assertThat(exception.getErrorCode()).isEqualTo(ErrorCode.USER_NOT_FOUND); + } + +} diff --git a/src/test/java/com/project/bumawiki/domain/user/service/QueryUserServiceTest.java b/src/test/java/com/project/bumawiki/domain/user/service/QueryUserServiceTest.java new file mode 100644 index 00000000..2b137284 --- /dev/null +++ b/src/test/java/com/project/bumawiki/domain/user/service/QueryUserServiceTest.java @@ -0,0 +1,53 @@ +package com.project.bumawiki.domain.user.service; + +import static org.assertj.core.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.RepeatedTest; +import org.springframework.beans.factory.annotation.Autowired; + +import net.jqwik.api.Arbitraries; + +import com.project.bumawiki.domain.user.domain.User; +import com.project.bumawiki.domain.user.domain.repository.UserRepository; +import com.project.bumawiki.global.error.exception.BumawikiException; +import com.project.bumawiki.global.error.exception.ErrorCode; +import com.project.bumawiki.global.service.FixtureGenerator; +import com.project.bumawiki.global.service.ServiceTest; + +class QueryUserServiceTest extends ServiceTest { + + @Autowired + private QueryUserService queryUserService; + @Autowired + private UserRepository userRepository; + + @RepeatedTest(REPEAT_COUNT) + void 다른유저_ID로_조회() { + // given + User user = FixtureGenerator.getDefaultUserBuilder() + .sample(); + + userRepository.save(user); + // when + User foundUser = queryUserService.findUserInfo(user.getId()); + + // then + assertThat(user.getId()).isEqualTo(foundUser.getId()); + } + + @RepeatedTest(REPEAT_COUNT) + void 없는_유저_조회() { + // given + Long id = Arbitraries.longs().greaterOrEqual(1).sample(); + + // when + BumawikiException exception = assertThrows(BumawikiException.class, + () -> queryUserService.findUserInfo(id) + ); + + // then + assertThat(exception.getErrorCode()).isEqualTo(ErrorCode.USER_NOT_FOUND); + } + +} diff --git a/src/test/java/com/project/bumawiki/global/service/FixtureGenerator.java b/src/test/java/com/project/bumawiki/global/service/FixtureGenerator.java index 1ea5e7bd..ae3bb943 100644 --- a/src/test/java/com/project/bumawiki/global/service/FixtureGenerator.java +++ b/src/test/java/com/project/bumawiki/global/service/FixtureGenerator.java @@ -40,8 +40,7 @@ public static ArbitraryBuilder getDefaultVersionDocsBuilder(Docs do public static ArbitraryBuilder getDefaultUserBuilder() { return fixtureGenerator.giveMeBuilder(User.class) .setNull(javaGetter(User::getId)) - .set(javaGetter(User::getAuthority), Authority.USER) - .setNull(javaGetter(User::getThumbsUps)); + .set(javaGetter(User::getAuthority), Authority.USER); } public static ArbitraryBuilder getDefaultThumbsUpBuilder(Docs docs, User user) { From 266b5d4ff42bd6658060685bee1eda55f5bdb63a Mon Sep 17 00:00:00 2001 From: qlido Date: Wed, 24 Apr 2024 21:26:01 +0900 Subject: [PATCH 3/9] =?UTF-8?q?refactor(user):=20user=20=EB=A6=AC=ED=8C=A9?= =?UTF-8?q?=ED=86=A0=EB=A7=81=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{UserInfoController.java => UserController.java} | 4 ++-- .../bumawiki/domain/user/service/CommandUserService.java | 5 +++++ .../bumawiki/domain/user/service/QueryUserService.java | 2 ++ 3 files changed, 9 insertions(+), 2 deletions(-) rename src/main/java/com/project/bumawiki/domain/user/presentation/{UserInfoController.java => UserController.java} (94%) diff --git a/src/main/java/com/project/bumawiki/domain/user/presentation/UserInfoController.java b/src/main/java/com/project/bumawiki/domain/user/presentation/UserController.java similarity index 94% rename from src/main/java/com/project/bumawiki/domain/user/presentation/UserInfoController.java rename to src/main/java/com/project/bumawiki/domain/user/presentation/UserController.java index 3af9e40b..86b3f163 100644 --- a/src/main/java/com/project/bumawiki/domain/user/presentation/UserInfoController.java +++ b/src/main/java/com/project/bumawiki/domain/user/presentation/UserController.java @@ -24,7 +24,7 @@ @RequiredArgsConstructor @RestController @RequestMapping("/api/user") -public class UserInfoController { +public class UserController { private final QueryUserService userInfoService; private final QueryDocsService queryDocsService; @@ -50,7 +50,7 @@ public UserResponseDto findAnotherUserInFo(@PathVariable Long id) { @AdminOnly @PatchMapping("/authority") @ResponseStatus(HttpStatus.NO_CONTENT) - public void setUserAuthority(@RequestBody UserAuthorityRequestDto userAuthorityRequestDto) { + public void updateUserAuthority(@RequestBody UserAuthorityRequestDto userAuthorityRequestDto) { commandUserService.updateUserAuthority(userAuthorityRequestDto.id(), userAuthorityRequestDto.authority()); } diff --git a/src/main/java/com/project/bumawiki/domain/user/service/CommandUserService.java b/src/main/java/com/project/bumawiki/domain/user/service/CommandUserService.java index 19e819df..558a6cd7 100644 --- a/src/main/java/com/project/bumawiki/domain/user/service/CommandUserService.java +++ b/src/main/java/com/project/bumawiki/domain/user/service/CommandUserService.java @@ -1,6 +1,7 @@ package com.project.bumawiki.domain.user.service; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import com.project.bumawiki.domain.user.domain.User; import com.project.bumawiki.domain.user.domain.authority.Authority; @@ -10,14 +11,18 @@ import lombok.RequiredArgsConstructor; @Service +@Transactional @RequiredArgsConstructor public class CommandUserService { private final UserReader userReader; private final UserUpdater userUpdater; public void updateUserAuthority(Long id, Authority authority) { + System.out.println("updateUserAuthority"); User user = userReader.getById(id); + System.out.println("updateUserAuthority2"); userUpdater.updateAuthority(user, authority); + System.out.println("updateUserAuthority3"); } } diff --git a/src/main/java/com/project/bumawiki/domain/user/service/QueryUserService.java b/src/main/java/com/project/bumawiki/domain/user/service/QueryUserService.java index 9ccfc268..32f10af1 100644 --- a/src/main/java/com/project/bumawiki/domain/user/service/QueryUserService.java +++ b/src/main/java/com/project/bumawiki/domain/user/service/QueryUserService.java @@ -1,6 +1,7 @@ package com.project.bumawiki.domain.user.service; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import com.project.bumawiki.domain.user.domain.User; import com.project.bumawiki.domain.user.implementation.UserReader; @@ -8,6 +9,7 @@ import lombok.RequiredArgsConstructor; @Service +@Transactional(readOnly = true) @RequiredArgsConstructor public class QueryUserService { From 190de4c0430495e10fa17068ac6d8dc0d5fa730c Mon Sep 17 00:00:00 2001 From: qlido Date: Wed, 24 Apr 2024 21:26:24 +0900 Subject: [PATCH 4/9] =?UTF-8?q?refactor(auth):=20Dto=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bumawiki/domain/auth/presentation/AuthController.java | 6 +++--- .../dto/{LoginReqestDto.java => LoginRequestDto.java} | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) rename src/main/java/com/project/bumawiki/domain/auth/presentation/dto/{LoginReqestDto.java => LoginRequestDto.java} (56%) diff --git a/src/main/java/com/project/bumawiki/domain/auth/presentation/AuthController.java b/src/main/java/com/project/bumawiki/domain/auth/presentation/AuthController.java index 77bff943..4ac297ca 100644 --- a/src/main/java/com/project/bumawiki/domain/auth/presentation/AuthController.java +++ b/src/main/java/com/project/bumawiki/domain/auth/presentation/AuthController.java @@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.project.bumawiki.domain.auth.presentation.dto.LoginReqestDto; +import com.project.bumawiki.domain.auth.presentation.dto.LoginRequestDto; import com.project.bumawiki.domain.auth.presentation.dto.RefreshTokenRequestDto; import com.project.bumawiki.domain.auth.presentation.dto.TokenResponseDto; import com.project.bumawiki.domain.auth.service.CommandAuthService; @@ -24,8 +24,8 @@ public class AuthController { private final CommandAuthService commandAuthService; @PostMapping("/oauth/bsm") - public TokenResponseDto userSignup(@RequestBody LoginReqestDto loginReqestDto) throws IOException { - return TokenResponseDto.from(commandAuthService.login(loginReqestDto.accessToken())); + public TokenResponseDto userSignup(@RequestBody LoginRequestDto loginRequestDto) throws IOException { + return TokenResponseDto.from(commandAuthService.login(loginRequestDto.authId())); } @PutMapping("/refresh/access") diff --git a/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/LoginReqestDto.java b/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/LoginRequestDto.java similarity index 56% rename from src/main/java/com/project/bumawiki/domain/auth/presentation/dto/LoginReqestDto.java rename to src/main/java/com/project/bumawiki/domain/auth/presentation/dto/LoginRequestDto.java index 6b6079e7..e2a275b4 100644 --- a/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/LoginReqestDto.java +++ b/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/LoginRequestDto.java @@ -1,6 +1,6 @@ package com.project.bumawiki.domain.auth.presentation.dto; -public record LoginReqestDto( - String accessToken +public record LoginRequestDto( + String authId ) { } From afd437b1a35b17eba0f4f9d2341f8f9b01a8b11f Mon Sep 17 00:00:00 2001 From: qlido Date: Wed, 24 Apr 2024 21:38:27 +0900 Subject: [PATCH 5/9] =?UTF-8?q?refactor(user):=20record=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/dto/UserResponseDto.java | 43 ++++++++----------- 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/project/bumawiki/domain/user/presentation/dto/UserResponseDto.java b/src/main/java/com/project/bumawiki/domain/user/presentation/dto/UserResponseDto.java index 05de6a9c..6e7c7b36 100644 --- a/src/main/java/com/project/bumawiki/domain/user/presentation/dto/UserResponseDto.java +++ b/src/main/java/com/project/bumawiki/domain/user/presentation/dto/UserResponseDto.java @@ -7,31 +7,24 @@ import com.project.bumawiki.domain.user.domain.User; import com.project.bumawiki.domain.user.domain.authority.Authority; -import lombok.Getter; - -@Getter -public class UserResponseDto { - private final Long id; - - private final String email; - - private final String nickName; - - private final String name; - - private final Authority authority; - - private final List contributeDocs; - +public record UserResponseDto( + Long id, + String email, + String nickName, + String name, + Authority authority, + List contributeDocs +) { public UserResponseDto(User user, List versionDocs) { - this.id = user.getId(); - this.email = user.getEmail(); - this.nickName = user.getNickName(); - this.authority = user.getAuthority(); - this.name = user.getName(); - this.contributeDocs = versionDocs - .stream() - .map(ContributeDocsResponseDto::new) - .toList(); + this( + user.getId(), + user.getEmail(), + user.getNickName(), + user.getName(), + user.getAuthority(), + versionDocs.stream() + .map(ContributeDocsResponseDto::new) + .toList() + ); } } From 544287611bb1b8b32c5c3bb02cdfd197790cebfe Mon Sep 17 00:00:00 2001 From: qlido Date: Wed, 24 Apr 2024 22:23:55 +0900 Subject: [PATCH 6/9] =?UTF-8?q?refactor(user):=20sout=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bumawiki/domain/user/presentation/UserController.java | 4 +++- .../bumawiki/domain/user/service/CommandUserService.java | 3 --- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/project/bumawiki/domain/user/presentation/UserController.java b/src/main/java/com/project/bumawiki/domain/user/presentation/UserController.java index 86b3f163..43242909 100644 --- a/src/main/java/com/project/bumawiki/domain/user/presentation/UserController.java +++ b/src/main/java/com/project/bumawiki/domain/user/presentation/UserController.java @@ -1,6 +1,7 @@ package com.project.bumawiki.domain.user.presentation; import org.springframework.http.HttpStatus; +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.PathVariable; @@ -21,8 +22,9 @@ import lombok.RequiredArgsConstructor; -@RequiredArgsConstructor +@Validated @RestController +@RequiredArgsConstructor @RequestMapping("/api/user") public class UserController { diff --git a/src/main/java/com/project/bumawiki/domain/user/service/CommandUserService.java b/src/main/java/com/project/bumawiki/domain/user/service/CommandUserService.java index 558a6cd7..68593fc3 100644 --- a/src/main/java/com/project/bumawiki/domain/user/service/CommandUserService.java +++ b/src/main/java/com/project/bumawiki/domain/user/service/CommandUserService.java @@ -18,11 +18,8 @@ public class CommandUserService { private final UserUpdater userUpdater; public void updateUserAuthority(Long id, Authority authority) { - System.out.println("updateUserAuthority"); User user = userReader.getById(id); - System.out.println("updateUserAuthority2"); userUpdater.updateAuthority(user, authority); - System.out.println("updateUserAuthority3"); } } From 7586bba24d736b2154d2f600931ccc81029e72be Mon Sep 17 00:00:00 2001 From: qlido Date: Tue, 30 Apr 2024 17:53:04 +0900 Subject: [PATCH 7/9] =?UTF-8?q?refactor(auth):=20authId=20->=20authCode,?= =?UTF-8?q?=20dto=20validation=20=EC=B6=94=EA=B0=80,=20=ED=8C=A8=ED=82=A4?= =?UTF-8?q?=EC=A7=80=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bumawiki/domain/auth/infra/BsmLoginHandler.java | 4 ++-- .../domain/auth/presentation/AuthController.java | 8 ++++---- .../domain/auth/presentation/dto/LoginRequestDto.java | 6 ------ .../auth/presentation/dto/RefreshTokenRequestDto.java | 6 ------ .../auth/presentation/dto/request/LoginRequestDto.java | 9 +++++++++ .../presentation/dto/request/RefreshTokenRequestDto.java | 9 +++++++++ .../dto/{ => response}/TokenResponseDto.java | 2 +- .../bumawiki/domain/auth/service/CommandAuthService.java | 4 ++-- 8 files changed, 27 insertions(+), 21 deletions(-) delete mode 100644 src/main/java/com/project/bumawiki/domain/auth/presentation/dto/LoginRequestDto.java delete mode 100644 src/main/java/com/project/bumawiki/domain/auth/presentation/dto/RefreshTokenRequestDto.java create mode 100644 src/main/java/com/project/bumawiki/domain/auth/presentation/dto/request/LoginRequestDto.java create mode 100644 src/main/java/com/project/bumawiki/domain/auth/presentation/dto/request/RefreshTokenRequestDto.java rename src/main/java/com/project/bumawiki/domain/auth/presentation/dto/{ => response}/TokenResponseDto.java (80%) diff --git a/src/main/java/com/project/bumawiki/domain/auth/infra/BsmLoginHandler.java b/src/main/java/com/project/bumawiki/domain/auth/infra/BsmLoginHandler.java index b583da06..22c0fc7d 100644 --- a/src/main/java/com/project/bumawiki/domain/auth/infra/BsmLoginHandler.java +++ b/src/main/java/com/project/bumawiki/domain/auth/infra/BsmLoginHandler.java @@ -20,9 +20,9 @@ public class BsmLoginHandler { private final BsmOauth bsmOauth; - public User getUserByAuthId(String authId) { + public User getUserByAuthCode(String authCode) { try { - String token = bsmOauth.getToken(authId); + String token = bsmOauth.getToken(authCode); BsmResourceResponse response = bsmOauth.getResource(token); return createUnknownUser(response); } catch (BsmAuthCodeNotFoundException | BsmAuthTokenNotFoundException e) { diff --git a/src/main/java/com/project/bumawiki/domain/auth/presentation/AuthController.java b/src/main/java/com/project/bumawiki/domain/auth/presentation/AuthController.java index 4ac297ca..5dd545b6 100644 --- a/src/main/java/com/project/bumawiki/domain/auth/presentation/AuthController.java +++ b/src/main/java/com/project/bumawiki/domain/auth/presentation/AuthController.java @@ -9,9 +9,9 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.project.bumawiki.domain.auth.presentation.dto.LoginRequestDto; -import com.project.bumawiki.domain.auth.presentation.dto.RefreshTokenRequestDto; -import com.project.bumawiki.domain.auth.presentation.dto.TokenResponseDto; +import com.project.bumawiki.domain.auth.presentation.dto.request.LoginRequestDto; +import com.project.bumawiki.domain.auth.presentation.dto.request.RefreshTokenRequestDto; +import com.project.bumawiki.domain.auth.presentation.dto.response.TokenResponseDto; import com.project.bumawiki.domain.auth.service.CommandAuthService; import lombok.RequiredArgsConstructor; @@ -25,7 +25,7 @@ public class AuthController { @PostMapping("/oauth/bsm") public TokenResponseDto userSignup(@RequestBody LoginRequestDto loginRequestDto) throws IOException { - return TokenResponseDto.from(commandAuthService.login(loginRequestDto.authId())); + return TokenResponseDto.from(commandAuthService.login(loginRequestDto.authCode())); } @PutMapping("/refresh/access") diff --git a/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/LoginRequestDto.java b/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/LoginRequestDto.java deleted file mode 100644 index e2a275b4..00000000 --- a/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/LoginRequestDto.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.project.bumawiki.domain.auth.presentation.dto; - -public record LoginRequestDto( - String authId -) { -} diff --git a/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/RefreshTokenRequestDto.java b/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/RefreshTokenRequestDto.java deleted file mode 100644 index 495e863a..00000000 --- a/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/RefreshTokenRequestDto.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.project.bumawiki.domain.auth.presentation.dto; - -public record RefreshTokenRequestDto( - String refreshToken -) { -} diff --git a/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/request/LoginRequestDto.java b/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/request/LoginRequestDto.java new file mode 100644 index 00000000..369db502 --- /dev/null +++ b/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/request/LoginRequestDto.java @@ -0,0 +1,9 @@ +package com.project.bumawiki.domain.auth.presentation.dto.request; + +import jakarta.validation.constraints.NotNull; + +public record LoginRequestDto( + @NotNull(message = "authCode는 null일 수 없습니다.") + String authCode +) { +} diff --git a/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/request/RefreshTokenRequestDto.java b/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/request/RefreshTokenRequestDto.java new file mode 100644 index 00000000..a6c80307 --- /dev/null +++ b/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/request/RefreshTokenRequestDto.java @@ -0,0 +1,9 @@ +package com.project.bumawiki.domain.auth.presentation.dto.request; + +import jakarta.validation.constraints.NotNull; + +public record RefreshTokenRequestDto( + @NotNull(message = "refreshToken은 null일 수 없습니다.") + String refreshToken +) { +} diff --git a/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/TokenResponseDto.java b/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/response/TokenResponseDto.java similarity index 80% rename from src/main/java/com/project/bumawiki/domain/auth/presentation/dto/TokenResponseDto.java rename to src/main/java/com/project/bumawiki/domain/auth/presentation/dto/response/TokenResponseDto.java index d7113543..3a07b479 100644 --- a/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/TokenResponseDto.java +++ b/src/main/java/com/project/bumawiki/domain/auth/presentation/dto/response/TokenResponseDto.java @@ -1,4 +1,4 @@ -package com.project.bumawiki.domain.auth.presentation.dto; +package com.project.bumawiki.domain.auth.presentation.dto.response; import com.project.bumawiki.domain.auth.domain.Token; diff --git a/src/main/java/com/project/bumawiki/domain/auth/service/CommandAuthService.java b/src/main/java/com/project/bumawiki/domain/auth/service/CommandAuthService.java index 91cc85cc..81e4a40d 100644 --- a/src/main/java/com/project/bumawiki/domain/auth/service/CommandAuthService.java +++ b/src/main/java/com/project/bumawiki/domain/auth/service/CommandAuthService.java @@ -26,8 +26,8 @@ public class CommandAuthService { private final UserCreator userCreator; private final UserUpdater userUpdater; - public Token login(String authId) { - User unknownUser = bsmLoginHandler.getUserByAuthId(authId); + public Token login(String authCode) { + User unknownUser = bsmLoginHandler.getUserByAuthCode(authCode); User user = userReader.getNullableUserByEmail(unknownUser.getEmail()); if (user == null) { From 1e32df8a617241342b26a38de418160b3a79b678 Mon Sep 17 00:00:00 2001 From: qlido Date: Tue, 30 Apr 2024 17:53:37 +0900 Subject: [PATCH 8/9] =?UTF-8?q?refactor(user):=20=EB=84=A4=EC=9D=B4?= =?UTF-8?q?=EB=B0=8D=20=EB=B3=80=EA=B2=BD,=20=ED=8C=A8=ED=82=A4=EC=A7=80?= =?UTF-8?q?=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/dto/response/DocsResponseDto.java | 6 +++--- .../domain/user/presentation/UserController.java | 4 ++-- .../presentation/dto/UserAuthorityRequestDto.java | 11 ----------- .../dto/request/UserAuthorityRequestDto.java | 13 +++++++++++++ .../SimpleUserResponseDto.java} | 6 +++--- .../dto/{ => response}/UserResponseDto.java | 2 +- 6 files changed, 22 insertions(+), 20 deletions(-) delete mode 100644 src/main/java/com/project/bumawiki/domain/user/presentation/dto/UserAuthorityRequestDto.java create mode 100644 src/main/java/com/project/bumawiki/domain/user/presentation/dto/request/UserAuthorityRequestDto.java rename src/main/java/com/project/bumawiki/domain/user/presentation/dto/{SimpleUserDto.java => response/SimpleUserResponseDto.java} (58%) rename src/main/java/com/project/bumawiki/domain/user/presentation/dto/{ => response}/UserResponseDto.java (91%) diff --git a/src/main/java/com/project/bumawiki/domain/docs/presentation/dto/response/DocsResponseDto.java b/src/main/java/com/project/bumawiki/domain/docs/presentation/dto/response/DocsResponseDto.java index bd317a8e..aaa530e3 100644 --- a/src/main/java/com/project/bumawiki/domain/docs/presentation/dto/response/DocsResponseDto.java +++ b/src/main/java/com/project/bumawiki/domain/docs/presentation/dto/response/DocsResponseDto.java @@ -8,7 +8,7 @@ import com.project.bumawiki.domain.docs.domain.type.DocsType; import com.project.bumawiki.domain.docs.util.DocsUtil; import com.project.bumawiki.domain.user.domain.User; -import com.project.bumawiki.domain.user.presentation.dto.SimpleUserDto; +import com.project.bumawiki.domain.user.presentation.dto.response.SimpleUserResponseDto; public record DocsResponseDto( Long id, @@ -18,7 +18,7 @@ public record DocsResponseDto( LocalDateTime lastModifiedAt, int enroll, boolean isDocsDetail, - List contributors, + List contributors, int version, String thumbnail ) { @@ -33,7 +33,7 @@ public DocsResponseDto(Docs docs, List contributors, VersionDocs versionDo docs.getEnroll(), true, contributors.stream() - .map(SimpleUserDto::new) + .map(SimpleUserResponseDto::new) .toList(), versionDocs.getVersion(), DocsUtil.getThumbnail(versionDocs.getContents()) diff --git a/src/main/java/com/project/bumawiki/domain/user/presentation/UserController.java b/src/main/java/com/project/bumawiki/domain/user/presentation/UserController.java index 43242909..d508c037 100644 --- a/src/main/java/com/project/bumawiki/domain/user/presentation/UserController.java +++ b/src/main/java/com/project/bumawiki/domain/user/presentation/UserController.java @@ -15,8 +15,8 @@ import com.project.bumawiki.domain.auth.service.QueryAuthService; import com.project.bumawiki.domain.docs.service.QueryDocsService; import com.project.bumawiki.domain.user.domain.User; -import com.project.bumawiki.domain.user.presentation.dto.UserAuthorityRequestDto; -import com.project.bumawiki.domain.user.presentation.dto.UserResponseDto; +import com.project.bumawiki.domain.user.presentation.dto.request.UserAuthorityRequestDto; +import com.project.bumawiki.domain.user.presentation.dto.response.UserResponseDto; import com.project.bumawiki.domain.user.service.CommandUserService; import com.project.bumawiki.domain.user.service.QueryUserService; diff --git a/src/main/java/com/project/bumawiki/domain/user/presentation/dto/UserAuthorityRequestDto.java b/src/main/java/com/project/bumawiki/domain/user/presentation/dto/UserAuthorityRequestDto.java deleted file mode 100644 index 0c875542..00000000 --- a/src/main/java/com/project/bumawiki/domain/user/presentation/dto/UserAuthorityRequestDto.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.project.bumawiki.domain.user.presentation.dto; - -import com.project.bumawiki.domain.user.domain.authority.Authority; - -import jakarta.validation.constraints.NotNull; - -public record UserAuthorityRequestDto( - @NotNull Long id, - @NotNull Authority authority -) { -} diff --git a/src/main/java/com/project/bumawiki/domain/user/presentation/dto/request/UserAuthorityRequestDto.java b/src/main/java/com/project/bumawiki/domain/user/presentation/dto/request/UserAuthorityRequestDto.java new file mode 100644 index 00000000..9ec3dc47 --- /dev/null +++ b/src/main/java/com/project/bumawiki/domain/user/presentation/dto/request/UserAuthorityRequestDto.java @@ -0,0 +1,13 @@ +package com.project.bumawiki.domain.user.presentation.dto.request; + +import com.project.bumawiki.domain.user.domain.authority.Authority; + +import jakarta.validation.constraints.NotNull; + +public record UserAuthorityRequestDto( + @NotNull(message = "id는 null일 수 없습니다.") + Long id, + @NotNull(message = "authority는 null일 수 없습니다.") + Authority authority +) { +} diff --git a/src/main/java/com/project/bumawiki/domain/user/presentation/dto/SimpleUserDto.java b/src/main/java/com/project/bumawiki/domain/user/presentation/dto/response/SimpleUserResponseDto.java similarity index 58% rename from src/main/java/com/project/bumawiki/domain/user/presentation/dto/SimpleUserDto.java rename to src/main/java/com/project/bumawiki/domain/user/presentation/dto/response/SimpleUserResponseDto.java index 9ba81bb6..22ec29f6 100644 --- a/src/main/java/com/project/bumawiki/domain/user/presentation/dto/SimpleUserDto.java +++ b/src/main/java/com/project/bumawiki/domain/user/presentation/dto/response/SimpleUserResponseDto.java @@ -1,15 +1,15 @@ -package com.project.bumawiki.domain.user.presentation.dto; +package com.project.bumawiki.domain.user.presentation.dto.response; import com.project.bumawiki.domain.user.domain.User; -public record SimpleUserDto( +public record SimpleUserResponseDto( Long id, String email, String nickName, String name ) { - public SimpleUserDto(User user) { + public SimpleUserResponseDto(User user) { this( user.getId(), user.getEmail(), diff --git a/src/main/java/com/project/bumawiki/domain/user/presentation/dto/UserResponseDto.java b/src/main/java/com/project/bumawiki/domain/user/presentation/dto/response/UserResponseDto.java similarity index 91% rename from src/main/java/com/project/bumawiki/domain/user/presentation/dto/UserResponseDto.java rename to src/main/java/com/project/bumawiki/domain/user/presentation/dto/response/UserResponseDto.java index 6e7c7b36..d234eaa0 100644 --- a/src/main/java/com/project/bumawiki/domain/user/presentation/dto/UserResponseDto.java +++ b/src/main/java/com/project/bumawiki/domain/user/presentation/dto/response/UserResponseDto.java @@ -1,4 +1,4 @@ -package com.project.bumawiki.domain.user.presentation.dto; +package com.project.bumawiki.domain.user.presentation.dto.response; import java.util.List; From 77375e647270a40ea1462c6ef5b4a8da5cf0a431 Mon Sep 17 00:00:00 2001 From: qlido Date: Tue, 30 Apr 2024 17:56:11 +0900 Subject: [PATCH 9/9] =?UTF-8?q?test(user):=20=EC=A3=BC=EC=84=9D=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bumawiki/domain/user/service/CommandUserServiceTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/java/com/project/bumawiki/domain/user/service/CommandUserServiceTest.java b/src/test/java/com/project/bumawiki/domain/user/service/CommandUserServiceTest.java index d5d815c8..b3a01b8a 100644 --- a/src/test/java/com/project/bumawiki/domain/user/service/CommandUserServiceTest.java +++ b/src/test/java/com/project/bumawiki/domain/user/service/CommandUserServiceTest.java @@ -28,7 +28,9 @@ class CommandUserServiceTest extends ServiceTest { void 유저_권한_업데이트() { // given Authority authority = Arbitraries.of(Authority.class).sample(); + // 위와 다른 권한을 랜덤으로 선택 Authority otherAuthority = Arbitraries.of(Authority.class).filter(it -> it != authority).sample(); + User user = FixtureGenerator.getDefaultUserBuilder() .set(javaGetter(User::getAuthority), authority) .sample();