Skip to content

Commit

Permalink
Merge pull request #244 from Review-zip/dev
Browse files Browse the repository at this point in the history
[Dev] main merge
  • Loading branch information
hsuush authored Feb 20, 2024
2 parents 96bfefb + b2d2c29 commit 5ab41f3
Show file tree
Hide file tree
Showing 8 changed files with 45 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import com.example.ReviewZIP.domain.token.dto.response.TokenDto;
import com.example.ReviewZIP.domain.user.Status;
import com.example.ReviewZIP.domain.user.Users;
import com.example.ReviewZIP.domain.user.UsersConverter;
import com.example.ReviewZIP.domain.user.UsersRepository;
import com.example.ReviewZIP.global.jwt.JwtProvider;
import com.example.ReviewZIP.global.response.code.resultCode.ErrorStatus;
Expand Down Expand Up @@ -47,6 +48,8 @@ public class RefreshTokenService {
private final JwtProvider jwtProvider;
private final RefreshTokenRepository refreshTokenRepository;

private static final String DEFAULT_PROFILE_URL = "https://reviewzipbucket.s3.ap-northeast-2.amazonaws.com/ReviewImage/911a02f0-206c-4fb0-b287-f49b58429526.png";

@Transactional
public SignUpResponseDto signUp(SignUpRequestDto signUpRequestDto) {
if(usersRepository.existsByEmail(signUpRequestDto.getEmail())) {
Expand All @@ -55,7 +58,7 @@ public SignUpResponseDto signUp(SignUpRequestDto signUpRequestDto) {

signUpRequestDto.setPassword(encodePassword(signUpRequestDto.getPassword()));

return SignUpResponseDto.signUpResponseDto(usersRepository.save(Users.toEntity(signUpRequestDto)));
return SignUpResponseDto.signUpResponseDto(usersRepository.save(UsersConverter.toSignUpDto(signUpRequestDto)));
}

public String encodePassword(String password) {
Expand Down Expand Up @@ -105,7 +108,7 @@ public Long createUser(String id, String nickname, String email){
.name(nickname)
.email(email)
.status(Status.ENABLED)
.profileUrl("https://reviewzipbucket.s3.ap-northeast-2.amazonaws.com/ReviewImage/911a02f0-206c-4fb0-b287-f49b58429526.png")
.profileUrl(DEFAULT_PROFILE_URL)
.build();
usersRepository.save(newUser);

Expand Down
10 changes: 0 additions & 10 deletions src/main/java/com/example/ReviewZIP/domain/user/Users.java
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,4 @@ public class Users extends BaseEntity {
@OneToMany(mappedBy = "user")
private Set<UserStores> userStores = new HashSet<>();

public static Users toEntity(SignUpRequestDto signUpRequestDto) {
return Users.builder()
.name(signUpRequestDto.getName())
.email(signUpRequestDto.getEmail())
.password(signUpRequestDto.getPassword())
.nickname(signUpRequestDto.getNickname())
.phoneNum(signUpRequestDto.getPhoneNum())
.status(Status.ENABLED)
.build();
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.example.ReviewZIP.domain.user;

import com.example.ReviewZIP.domain.follow.Follows;
import com.example.ReviewZIP.domain.image.ImagesService;
import com.example.ReviewZIP.domain.post.Posts;
import com.example.ReviewZIP.domain.post.dto.response.PostResponseDto;
import com.example.ReviewZIP.domain.scrab.Scrabs;
Expand All @@ -11,7 +12,6 @@
import com.example.ReviewZIP.domain.userStores.dto.response.UserStoresResponseDto;
import com.example.ReviewZIP.global.response.ApiResponse;
import com.example.ReviewZIP.global.response.code.resultCode.SuccessStatus;
import com.example.ReviewZIP.global.security.UserDetailsServiceImpl;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
Expand All @@ -33,6 +33,7 @@
public class UsersController {
private final UsersService usersService;
private final UserStoresService userStoresService;
private final ImagesService imagesService;

@GetMapping("/{userId}/stores")
@Operation(summary = "특정 유저의 관심 장소 목록 API",description = "특정 유저의 관심 장소 목록을 가져온다, 반환 시 StoreInfoListDto 사용")
Expand Down Expand Up @@ -228,27 +229,26 @@ public ApiResponse<UserResponseDto.UserInfoDto> getUserInfo(@AuthenticationPrinc
}

@PatchMapping("/me/profileUrl")
@Operation(summary = "프로필 이미지 수정하기 API", description = "프로필 이미지 수정하기, UserProfileDto 사용")
@Operation(summary = "프로필 이미지 수정하기 API", description = "프로필 이미지 수정하기, UserProfileImageDto 사용")
@ApiResponses({
@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "COMMON200", description = "OK, 성공"),
@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "USER404", description = "유저가 존재하지 않습니다",content = @Content(schema = @Schema(implementation = ApiResponse.class))),
@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "IMAGE403", description = "프로필 이미지가 존재하지 않습니다.",content = @Content(schema = @Schema(implementation = ApiResponse.class))),
})
public ApiResponse<UserRequestDto.UserProfileUrlDto> updateProfileUrl(@RequestBody UserRequestDto.UserProfileUrlDto userProfileUrlDto){

UserRequestDto.UserProfileUrlDto ProfileUrlDto = usersService.updateProfileUrl(1L, userProfileUrlDto);
return ApiResponse.onSuccess(ProfileUrlDto);
public ApiResponse<SuccessStatus> updateProfileImage(@AuthenticationPrincipal UserDetails user, @RequestBody UserRequestDto.UserProfileImageDto userProfileImageDto){
usersService.updateProfileImage(usersService.getUserId(user), userProfileImageDto);
return ApiResponse.onSuccess(SuccessStatus._OK);
}

@PatchMapping("/me/nickname")
@Operation(summary = "닉네임 수정하기 API", description = "마이페이지 닉네임 수정하기, UserNicknameDto 사용")
@Operation(summary = "프로필 닉네임 수정하기 API", description = "프로필 닉네임 수정하기, UserNicknameDto 사용")
@ApiResponses({
@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "COMMON200", description = "OK, 성공"),
@io.swagger.v3.oas.annotations.responses.ApiResponse(responseCode = "USER404", description = "유저가 존재하지 않습니다", content = @Content(schema = @Schema(implementation = ApiResponse.class))),
})
public ApiResponse<UserRequestDto.UserNicknameDto> updateUserNickname(@RequestBody UserRequestDto.UserNicknameDto userNicknameDto) {

UserRequestDto.UserNicknameDto NicknameDto = usersService.updateUserNickname(1L, userNicknameDto);
return ApiResponse.onSuccess(NicknameDto);
public ApiResponse<SuccessStatus> updateUserNickname(@AuthenticationPrincipal UserDetails user, @RequestBody UserRequestDto.UserNicknameDto userNicknameDto) {
usersService.updateUserNickname(usersService.getUserId(user), userNicknameDto);
return ApiResponse.onSuccess(SuccessStatus._OK);
}

@DeleteMapping("/{userId}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

import com.example.ReviewZIP.domain.follow.Follows;
import com.example.ReviewZIP.domain.postHashtag.PostHashtags;
import com.example.ReviewZIP.domain.postHashtag.PostHashtagsRepository;
import com.example.ReviewZIP.domain.searchHistory.SearchHistories;
import com.example.ReviewZIP.domain.searchHistory.SearchType;
import com.example.ReviewZIP.domain.token.dto.request.SignUpRequestDto;
import com.example.ReviewZIP.domain.user.dto.response.UserResponseDto;
import com.example.ReviewZIP.global.response.code.resultCode.ErrorStatus;
import com.example.ReviewZIP.global.response.exception.handler.SearchHandler;
Expand All @@ -16,6 +16,7 @@

public class UsersConverter {

private static final String DEFAULT_PROFILE_URL = "https://reviewzipbucket.s3.ap-northeast-2.amazonaws.com/ReviewImage/911a02f0-206c-4fb0-b287-f49b58429526.png";

public static UserResponseDto.UserPreviewDto toUserPreviewDto(Users user, List<Long> followingIdList) {
boolean following = followingIdList.contains(user.getId());
Expand Down Expand Up @@ -107,9 +108,6 @@ public static UserResponseDto.PostHashtagsPreviewDto toHashtagPreviewDto(String
.tagName(hashtag)
.postNum(postHashtagsRepositoryList.size())
.build();



}

public static UserResponseDto.HistoryDto toHistoryDto(SearchHistories history, List<Long> followingIdList){
Expand Down Expand Up @@ -138,4 +136,16 @@ public static List<UserResponseDto.HistoryDto> toHistoryDtoList(List<SearchHisto
.map(history->toHistoryDto(history, followingIdList))
.collect(Collectors.toList());
}

public static Users toSignUpDto(SignUpRequestDto signUpRequestDto) {
return Users.builder()
.name(signUpRequestDto.getName())
.email(signUpRequestDto.getEmail())
.password(signUpRequestDto.getPassword())
.nickname(signUpRequestDto.getNickname())
.phoneNum(signUpRequestDto.getPhoneNum())
.profileUrl(DEFAULT_PROFILE_URL)
.status(Status.ENABLED)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,5 @@ public interface UsersRepository extends JpaRepository<Users, Long> {
boolean existsBySocial(String social);
Optional<Users> findBySocial(String social);

Optional<Users> findByPhoneNum(String phoneNum);
List<Users> findByPhoneNum(String phoneNum);
}
15 changes: 10 additions & 5 deletions src/main/java/com/example/ReviewZIP/domain/user/UsersService.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import com.example.ReviewZIP.domain.follow.Follows;
import com.example.ReviewZIP.domain.follow.FollowsRepository;
import com.example.ReviewZIP.domain.image.Images;
import com.example.ReviewZIP.domain.image.ImagesRepository;
import com.example.ReviewZIP.domain.post.Posts;
import com.example.ReviewZIP.domain.post.PostsConverter;
import com.example.ReviewZIP.domain.post.PostsRepository;
Expand All @@ -13,17 +15,15 @@
import com.example.ReviewZIP.domain.user.dto.request.UserRequestDto;
import com.example.ReviewZIP.domain.user.dto.response.UserResponseDto;
import com.example.ReviewZIP.global.response.code.resultCode.ErrorStatus;
import com.example.ReviewZIP.global.response.exception.handler.ImagesHandler;
import com.example.ReviewZIP.global.response.exception.handler.PostsHandler;
import com.example.ReviewZIP.global.response.exception.handler.UsersHandler;
import com.example.ReviewZIP.global.s3.S3Service;
import com.example.ReviewZIP.global.s3.dto.S3Result;
import com.example.ReviewZIP.global.security.UserDetailsImpl;
import com.example.ReviewZIP.global.security.UserDetailsServiceImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;

import java.time.Duration;
import java.time.LocalDateTime;
Expand All @@ -44,6 +44,7 @@ public class UsersService {
private final PostsRepository postsRepository;
private final ScrabsRepository scrabsRepository;
private final PostLikesRepository postLikesRepository;
private final ImagesRepository imagesRepository;
private final UserDetailsServiceImpl userDetailsService;

public Long getUserId(UserDetails user){
Expand Down Expand Up @@ -98,14 +99,18 @@ public UserResponseDto.UserInfoDto getUserInfo(String email){
return UsersConverter.toUserInfoDto(usersRepository.findByEmail(email).orElseThrow(() -> new UsersHandler(ErrorStatus.USER_NOT_FOUND)));
}

public UserRequestDto.UserProfileUrlDto updateProfileUrl(Long userId, UserRequestDto.UserProfileUrlDto userProfileUrlDto){
@Transactional
public UserRequestDto.UserProfileImageDto updateProfileImage(Long userId, UserRequestDto.UserProfileImageDto userProfileUrlDto){
Users user = usersRepository.findById(userId).orElseThrow(() -> new UsersHandler(ErrorStatus.USER_NOT_FOUND));
user.setProfileUrl(userProfileUrlDto.getProfileUrl());
Images image = imagesRepository.findById(userProfileUrlDto.getImageId()).orElseThrow(() -> new ImagesHandler(ErrorStatus.IMAGE_NOT_PROVIDED));

user.setProfileUrl(image.getUrl());
usersRepository.save(user);

return userProfileUrlDto;
}

@Transactional
public UserRequestDto.UserNicknameDto updateUserNickname(Long userId, UserRequestDto.UserNicknameDto userNicknameDto){
Users user = usersRepository.findById(userId).orElseThrow(() -> new UsersHandler(ErrorStatus.USER_NOT_FOUND));
user.setNickname(userNicknameDto.getNickname());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ public class UserRequestDto {
@Getter
@NoArgsConstructor
@AllArgsConstructor
public static class UserProfileUrlDto {
private String profileUrl;
public static class UserProfileImageDto {
private Long imageId;
}

@Builder
Expand All @@ -22,5 +22,4 @@ public static class UserProfileUrlDto {
public static class UserNicknameDto {
private String nickname;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ public void resetPassword(SmsDto.PasswordResetRequestDto requestDto) {
}
String encodedPassword = passwordEncoder.encode(requestDto.getPassword());
Users user = usersRepository.findByPhoneNum(requestDto.getPhoneNum())
.stream()
.findFirst()
.orElseThrow(() -> new UsersHandler(ErrorStatus.USER_NOT_FOUND));
user.setPassword(encodedPassword);
usersRepository.save(user);
Expand Down

0 comments on commit 5ab41f3

Please sign in to comment.