Skip to content

Commit

Permalink
feat : 스페이스 가입 처리 api 컨트롤러단 코드 작성
Browse files Browse the repository at this point in the history
  • Loading branch information
seongjunnoh committed Aug 12, 2024
1 parent bde6df4 commit d9b4044
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 3 deletions.
30 changes: 28 additions & 2 deletions src/main/java/space/space_spring/controller/SpaceController.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,14 @@
import org.springframework.web.multipart.MultipartFile;
import space.space_spring.argument_resolver.jwtLogin.JwtLoginAuth;
import space.space_spring.dto.space.GetSpaceJoinDto;
import space.space_spring.dto.space.PostSpaceJoinDto;
import space.space_spring.dto.space.response.GetUserInfoBySpaceResponse;
import space.space_spring.dto.space.request.PostSpaceCreateRequest;

import space.space_spring.dto.userSpace.GetUserProfileInSpaceDto;
import space.space_spring.dto.userSpace.PutUserProfileInSpaceDto;
import space.space_spring.entity.UserSpace;
import space.space_spring.exception.CustomException;
import space.space_spring.exception.MultipartFileException;
import space.space_spring.exception.SpaceException;
import space.space_spring.response.BaseResponse;
Expand Down Expand Up @@ -127,8 +129,6 @@ private void validateIsUserInSpace(Long userId, Long spaceId) {

/**
* 스페이스 별 유저 프로필 정보 수정
* or
* 유저의 스페이스 가입 처리
*/
@PutMapping("/{spaceId}/member-profile")
public BaseResponse<PutUserProfileInSpaceDto.Response> updateUserProfileInSpace(@JwtLoginAuth Long userId, @PathVariable Long spaceId, @Validated @ModelAttribute PutUserProfileInSpaceDto.Request request, BindingResult bindingResult) throws IOException {
Expand Down Expand Up @@ -160,4 +160,30 @@ private String processUserProfileImage(MultipartFile userProfileImg) throws IOEx
return s3Uploader.upload(userProfileImg, userProfileImgDirName);
}

/**
* 유저의 스페이스 가입 처리
*/
@PostMapping("/{spaceId}/join")
BaseResponse<String> joinUserToSpace(@JwtLoginAuth Long userId, @PathVariable Long spaceId, @Validated @ModelAttribute PostSpaceJoinDto.Request request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new CustomException(INVALID_SPACE_JOIN_REQUEST, getErrorMessage(bindingResult));
}

// TODO 1. 유저가 스페이스에 가입되어 있는지 검증
validateIsUserAlreadySpaceMember(userId, spaceId);

// TODO 2. 유저 프로필 썸네일을 s3에 upload
String userProfileImgUrl = processUserProfileImage(request.getUserProfileImg());

// TODO 3. 유저의 스페이스 가입 처리
PostSpaceJoinDto postSpaceJoinDto = new PostSpaceJoinDto(
userProfileImgUrl,
request.getUserName(),
request.getUserProfileMsg()
);

spaceService.createUserSpace(userId, spaceId, postSpaceJoinDto);

return new BaseResponse<>("유저의 스페이스 가입 처리 성공");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public enum BaseExceptionResponseStatus implements ResponseStatus {
INVALID_SPACE_CREATE(6000, HttpStatus.BAD_REQUEST, "스페이스 생성 요청에서 잘못된 값이 존재합니다."),
SPACE_NOT_FOUND(6001, HttpStatus.BAD_REQUEST, "존재하지 않는 스페이스입니다."),
INVALID_USER_SPACE_PROFILE(6002, HttpStatus.BAD_REQUEST, "스페이스 별 유저 프로필 정보 수정 요청에서 잘못된 값이 존재합니다."),
baab(6003, HttpStatus.BAD_REQUEST, "존재하지 않는 회원입니다."),
INVALID_SPACE_JOIN_REQUEST(6003, HttpStatus.BAD_REQUEST, "스페이스 가입 요청에서 잘못된 값이 존재합니다."),
nff(6004, HttpStatus.BAD_REQUEST, "비밀번호가 일치하지 않습니다."),
gnf(6005, HttpStatus.BAD_REQUEST, "잘못된 회원 status 값입니다."),
fb(6006, HttpStatus.BAD_REQUEST, "존재하지 않는 이메일입니다."),
Expand Down

0 comments on commit d9b4044

Please sign in to comment.