Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package com.asyncgate.guild_server.client;

import java.time.LocalDate;
import java.util.List;

public record UserClientInfoResponses(List<UserClientInfoResponse> responses) {
public record UserClientInfoResponse(String userId, String name, String nickname, String profileImageUrl) {
public record UserClientInfoResponse(String userId, String name, String nickname, String profileImageUrl, String email, LocalDate birth) {
}
}
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
package com.asyncgate.user_server.controller;

import com.asyncgate.user_server.controller.docs.MemberControllerDocs;
import com.asyncgate.user_server.dto.request.*;
import com.asyncgate.user_server.dto.request.LoginMemberRequest;
import com.asyncgate.user_server.dto.request.RegisterTemporaryMemberRequest;
import com.asyncgate.user_server.dto.request.UpdateDeviceTokenRequest;
import com.asyncgate.user_server.dto.request.ValidateAuthenticationCodeRequest;
import com.asyncgate.user_server.dto.response.CheckEmailDuplicateResponse;
import com.asyncgate.user_server.dto.response.DefaultJsonWebTokenResponse;
import com.asyncgate.user_server.dto.response.UserClientInfoResponses;
import com.asyncgate.user_server.dto.response.UserClientInfoResponses.UserClientInfoResponse;
import com.asyncgate.user_server.security.annotation.MemberID;
import com.asyncgate.user_server.support.response.SuccessResponse;
import com.asyncgate.user_server.usecase.*;
import io.swagger.v3.oas.annotations.Hidden;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
Expand Down Expand Up @@ -85,7 +90,7 @@ public SuccessResponse<CheckEmailDuplicateResponse> checkEmailDuplicate(
@Override
@PatchMapping("/device-token")
public SuccessResponse<?> updateDeviceToken(
@MemberID final String userId,
final @MemberID String userId,
@RequestBody final UpdateDeviceTokenRequest request
) {
UpdateDeviceTokenUseCase.execute(userId, request);
Expand All @@ -98,7 +103,7 @@ public SuccessResponse<?> updateDeviceToken(
@Override
@PatchMapping("/info")
public SuccessResponse<?> updateUserInfo(
@MemberID final String userId,
final @MemberID String userId,
@RequestPart(value = "name", required = false) final String name,
@RequestPart(value = "nickname", required = false) final String nickname,
@RequestPart(value = "profile_image", required = false) final MultipartFile profileImage
Expand All @@ -112,20 +117,31 @@ public SuccessResponse<?> updateUserInfo(
*/
@Override
@DeleteMapping("/auth")
public SuccessResponse<?> deleteUser(@MemberID final String userId) {
public SuccessResponse<?> deleteUser(final @MemberID String userId) {
DeleteUserUseCase.execute(userId);
return SuccessResponse.ok("회원탈퇴 완료");
}

/*
서버 내부 통신 전용
*/
@Hidden
@GetMapping("/users")
public SuccessResponse<UserClientInfoResponses> getMembers(
@RequestParam(required = false) List<String> memberIds
) {

UserClientInfoResponses byUserIds = findUserInfoUseCase.getByUserIds(memberIds);
System.out.println("byUserIds = " + byUserIds);
return SuccessResponse.ok(
byUserIds
);
}

@GetMapping("/info")
public SuccessResponse<UserClientInfoResponse> getMemberInfo(final @MemberID String userId) {
UserClientInfoResponse response = findUserInfoUseCase.getByUserId(userId);
return SuccessResponse.ok(
response
);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.asyncgate.user_server.domain.Member;

import java.time.LocalDate;
import java.util.List;

public record UserClientInfoResponses(List<UserClientInfoResponse> responses) {
Expand All @@ -13,10 +14,10 @@ public static UserClientInfoResponses from(List<Member> members) {
);
}

private record UserClientInfoResponse(String userId, String name, String nickname, String profileImageUrl) {
private static UserClientInfoResponse from(final Member member) {
public record UserClientInfoResponse(String userId, String name, String nickname, String profileImageUrl, String email, LocalDate birth) {
public static UserClientInfoResponse from(final Member member) {
return new UserClientInfoResponse(
member.getId(), member.getName(), member.getNickname(), member.getProfileImgUrl()
member.getId(), member.getName(), member.getNickname(), member.getProfileImgUrl(), member.getEmail(), member.getBirth()
);
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
package com.asyncgate.user_server.service;

import com.asyncgate.user_server.domain.Member;
import com.asyncgate.user_server.dto.response.UserClientInfoResponses;
import com.asyncgate.user_server.dto.response.UserClientInfoResponses.UserClientInfoResponse;
import com.asyncgate.user_server.exception.FailType;
import com.asyncgate.user_server.exception.UserServerException;
import com.asyncgate.user_server.repository.MemberRepository;
import com.asyncgate.user_server.usecase.FindUserInfoUseCase;
import lombok.RequiredArgsConstructor;
Expand All @@ -22,4 +26,11 @@ public UserClientInfoResponses getByUserIds(final List<String> memberIds) {
memberRepository.getByMemberIds(memberIds)
);
}

@Override
public UserClientInfoResponse getByUserId(final String userId) {
Member member = memberRepository.findById(userId)
.orElseThrow(() -> new UserServerException(FailType.MEMBER_NOT_FOUND));
return UserClientInfoResponse.from(member);
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
package com.asyncgate.user_server.usecase;

import com.asyncgate.user_server.dto.response.UserClientInfoResponses;
import com.asyncgate.user_server.dto.response.UserClientInfoResponses.UserClientInfoResponse;

import java.util.List;

public interface FindUserInfoUseCase {

UserClientInfoResponses getByUserIds(List<String> memberIds);

UserClientInfoResponse getByUserId(String userId);
}
Loading