-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feat/#67/스페이스 가입 view api #72
The head ref may contain hidden characters: "feat/#67/\uC2A4\uD398\uC774\uC2A4-\uAC00\uC785-view-api"
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
package space.space_spring.dto.space; | ||
|
||
import lombok.AllArgsConstructor; | ||
import lombok.Getter; | ||
|
||
import java.time.LocalDateTime; | ||
|
||
@Getter | ||
@AllArgsConstructor | ||
public class GetSpaceJoinDto { | ||
|
||
private String spaceProfileImg; | ||
|
||
private String spaceName; | ||
|
||
private LocalDateTime createdAt; | ||
|
||
@Getter | ||
@AllArgsConstructor | ||
public static class Response { | ||
private String spaceProfileImg; | ||
|
||
private String spaceName; | ||
|
||
private String createdAt; // 스페이스 개설일의 정보를 yyyy년 mm월 dd일 형식으로 변환한 문자열 | ||
|
||
private int memberNum; | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,12 +6,15 @@ | |
import space.space_spring.dao.SpaceDao; | ||
import space.space_spring.dao.UserDao; | ||
import space.space_spring.dao.UserSpaceDao; | ||
import space.space_spring.dto.space.GetSpaceJoinDto; | ||
import space.space_spring.dto.space.response.GetUserInfoBySpaceResponse; | ||
import space.space_spring.entity.Space; | ||
import space.space_spring.entity.User; | ||
import space.space_spring.entity.UserSpace; | ||
import space.space_spring.util.space.SpaceUtils; | ||
|
||
import java.time.format.DateTimeFormatter; | ||
|
||
|
||
@Service | ||
@RequiredArgsConstructor | ||
|
@@ -43,4 +46,32 @@ public GetUserInfoBySpaceResponse findUserInfoBySpace(Long spaceId) { | |
// TODO 2. 스페이스의 모든 유저 정보 return | ||
return new GetUserInfoBySpaceResponse(userSpaceDao.findUserInfoInSpace(spaceBySpaceId)); | ||
} | ||
|
||
@Transactional | ||
public GetSpaceJoinDto.Response findSpaceJoin(Long spaceId) { | ||
// TODO 1. spaceId로 Space find | ||
Space spaceBySpaceId = spaceUtils.findSpaceBySpaceId(spaceId); | ||
|
||
// TODO 2. Space 엔티티에서 썸네일 이미지, 이름, 생성일 데이터 get | ||
GetSpaceJoinDto getSpaceJoinDto = new GetSpaceJoinDto( | ||
spaceBySpaceId.getSpaceProfileImg(), | ||
spaceBySpaceId.getSpaceName(), | ||
spaceBySpaceId.getCreatedAt() | ||
); | ||
|
||
// TODO 3. 해당 스페이스의 멤버 수 get | ||
int memberNum = userSpaceDao.calculateSpaceMemberNum(spaceBySpaceId); | ||
|
||
// TODO 4. 스페이스 생성일 형식 'yyyy년 mm월 dd일' 로 변경 | ||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일"); | ||
String spaceCreatedDate = getSpaceJoinDto.getCreatedAt().format(formatter); | ||
|
||
// TODO 5. return | ||
return new GetSpaceJoinDto.Response( | ||
getSpaceJoinDto.getSpaceProfileImg(), | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. p2: There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Space 엔티티의 필드로부터 스페이스 이름, 썸네일 url, LocalDateTime 형태의 스페이스 생성일 이렇게 3개의 정보를 얻을 수 있는데, response를 구성하기 위해서는 추가적으로 스페이스 가입 멤버 수가 필요하고 또한 스페이스 생성일을 format 처리도 필요해서 dto의 필드와 dto 내부 Response 클래스의 필드를 구분하였습니다!! |
||
getSpaceJoinDto.getSpaceName(), | ||
spaceCreatedDate, | ||
memberNum | ||
); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
아래 static class Response 와 중복되는 필드를 갖는데 어떤 의미인지 궁금합니다
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Space 엔티티의 필드로부터 스페이스 이름, 썸네일 url, LocalDateTime 형태의 스페이스 생성일 이렇게 3개의 정보를 얻을 수 있는데, response를 구성하기 위해서는 추가적으로 스페이스 가입 멤버 수가 필요하고 또한 스페이스 생성일을 format 처리도 필요해서 dto의 필드와 dto 내부 Response 클래스의 필드를 구분하였습니다!!