Skip to content

Commit

Permalink
feat/#21: develop conflict 해결
Browse files Browse the repository at this point in the history
  • Loading branch information
gaau511 committed Nov 19, 2024
2 parents 2ce730c + 04bec68 commit 095f6b9
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ public enum SuccessStatus implements BaseCode {

TUTEE_SIGNUP_OK(HttpStatus.CREATED, "USER2010", "튜티 회원가입 성공"),
TUTOR_SIGNUP_OK(HttpStatus.CREATED, "USER2011", "튜터 회원가입 성공"),
USER_INFO_OK(HttpStatus.OK, "USER2000", "유저 정보 조회 성공"),

SONG_CREATE_OK(HttpStatus.CREATED, "SONG2000", "동요 생성 성공"),
SONG_SEARCH_PAGE_OK(HttpStatus.OK, "SONG2001", "동요 조건 검색 성공"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import inha.dayoook_e.user.api.controller.dto.request.TuteeSignupRequest;
import inha.dayoook_e.user.api.controller.dto.request.TutorSignupRequest;
import inha.dayoook_e.user.api.controller.dto.response.SignupResponse;
import inha.dayoook_e.user.api.controller.dto.response.UserInfoResponse;
import inha.dayoook_e.user.api.service.UserService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
Expand All @@ -14,8 +15,7 @@
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import static inha.dayoook_e.common.code.status.SuccessStatus.TUTEE_SIGNUP_OK;
import static inha.dayoook_e.common.code.status.SuccessStatus.TUTOR_SIGNUP_OK;
import static inha.dayoook_e.common.code.status.SuccessStatus.*;


/**
Expand All @@ -30,6 +30,20 @@ public class UserController {

private final UserService userService;

/**
* fast api 검증용 유저 정보 조회 API
*
* <p>유저 정보를 조회.</p>
*
* @param email 이메일
* @return 유저 정보를 포함하는 BaseResponse<UserInfoResponse>
*/
@GetMapping("/info")
@Operation(summary = "유저 정보 조회 API", description = "유저 정보를 조회합니다.")
public BaseResponse<UserInfoResponse> getUserInfo(@RequestParam("email") String email) {
return BaseResponse.of(USER_INFO_OK, userService.getUserInfo(email));
}

/**
* 튜티 회원가입 API
*
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package inha.dayoook_e.user.api.controller.dto.response;

import inha.dayoook_e.user.domain.enums.Role;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;

public record UserInfoResponse(
@NotNull
@Schema(description = "유저 ID", example = "1")
Integer id,

@NotNull
@Schema(description = "유저 역할", example = "TUTOR")
Role role
) {
}
8 changes: 8 additions & 0 deletions src/main/java/inha/dayoook_e/user/api/mapper/UserMapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import inha.dayoook_e.user.api.controller.dto.request.TuteeSignupRequest;
import inha.dayoook_e.user.api.controller.dto.request.TutorSignupRequest;
import inha.dayoook_e.user.api.controller.dto.response.SignupResponse;
import inha.dayoook_e.user.api.controller.dto.response.UserInfoResponse;
import inha.dayoook_e.user.domain.User;
import inha.dayoook_e.user.domain.UserLanguage;
import inha.dayoook_e.user.domain.id.UserLanguageId;
Expand Down Expand Up @@ -77,4 +78,11 @@ default List<UserLanguage> toUserLanguages(List<Integer> languageIds, User user,
*/
SignupResponse userToSignupResponse(User savedUser);

/**
* User를 UserInfoResponse로 변환
*
* @param user 유저 엔티티
* @return UserInfoResponse
*/
UserInfoResponse userToUserInfoResponse(User user);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@
import inha.dayoook_e.user.api.controller.dto.request.TuteeSignupRequest;
import inha.dayoook_e.user.api.controller.dto.request.TutorSignupRequest;
import inha.dayoook_e.user.api.controller.dto.response.SignupResponse;
import inha.dayoook_e.user.api.controller.dto.response.UserInfoResponse;
import org.springframework.web.multipart.MultipartFile;

public interface UserService {
SignupResponse tuteeSignup(TuteeSignupRequest tuteeSignupRequest, MultipartFile profileImage);

SignupResponse tutorSignup(TutorSignupRequest tutorSignupRequest, MultipartFile profileImage);

UserInfoResponse getUserInfo(String email);
}
17 changes: 17 additions & 0 deletions src/main/java/inha/dayoook_e/user/api/service/UserServiceImpl.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package inha.dayoook_e.user.api.service;

import inha.dayoook_e.common.exceptions.BaseException;
import inha.dayoook_e.mapping.domain.Language;
import inha.dayoook_e.mapping.domain.repository.LanguageJpaRepository;
import inha.dayoook_e.song.domain.repository.SongJpaRepository;
Expand All @@ -14,6 +15,7 @@
import inha.dayoook_e.user.api.controller.dto.request.TuteeSignupRequest;
import inha.dayoook_e.user.api.controller.dto.request.TutorSignupRequest;
import inha.dayoook_e.user.api.controller.dto.response.SignupResponse;
import inha.dayoook_e.user.api.controller.dto.response.UserInfoResponse;
import inha.dayoook_e.user.api.mapper.UserMapper;
import inha.dayoook_e.user.domain.User;
import inha.dayoook_e.user.domain.UserLanguage;
Expand All @@ -30,7 +32,9 @@

import java.util.List;

import static inha.dayoook_e.common.BaseEntity.State.ACTIVE;
import static inha.dayoook_e.common.Constant.PROFILE_IMAGE_DIR;
import static inha.dayoook_e.common.code.status.ErrorStatus.NOT_FIND_USER;

/**
* UserServiceImpl은 유저 관련 비즈니스 로직을 처리하는 서비스 클래스.
Expand Down Expand Up @@ -129,6 +133,19 @@ public SignupResponse tutorSignup(TutorSignupRequest tutorSignupRequest, Multipa
return userMapper.userToSignupResponse(savedUser);
}

/**
* 유저 정보 조회
*
* @param email 이메일
* @return 유저 정보 응답
*/
@Override
public UserInfoResponse getUserInfo(String email) {
User user = userJpaRepository.findByEmailAndState(email, ACTIVE)
.orElseThrow(() -> new BaseException(NOT_FIND_USER));
return userMapper.userToUserInfoResponse(user);
}


/**
* 프로필 이미지 처리
Expand Down

0 comments on commit 095f6b9

Please sign in to comment.