Skip to content

Commit

Permalink
feat: 스페이스 조회 API 배너 추가 (#56)
Browse files Browse the repository at this point in the history
  • Loading branch information
raymondanythings authored Jul 29, 2024
1 parent 447d9e8 commit fd78885
Show file tree
Hide file tree
Showing 8 changed files with 35 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Builder;
import org.layer.external.ncp.exception.ExternalExeption;
import org.layer.external.ncp.exception.ExternalException;

import java.util.Optional;

Expand Down Expand Up @@ -33,7 +33,7 @@ public static GetPreSignedURLResponse toResponse(String presignedUrl, String ima
.presignedUrl(presignedUrl)
.imageUrl(imageUrl)
.build()
).orElseThrow(() -> new ExternalExeption(INTERNAL_SERVER_ERROR));
).orElseThrow(() -> new ExternalException(INTERNAL_SERVER_ERROR));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,23 @@ public record SpaceWithMemberCountInfo(
Long formId,

@Schema(description = "소속된 회원 수")
Long memberCount
Long memberCount,

@Schema(description = "스페이스 배너 이미지")
String bannerUrl
) {
public static SpaceWithMemberCountInfo toResponse(SpaceWithMemberCount space) {
return Optional.ofNullable(space)
.map(it -> SpaceWithMemberCountInfo.builder().id(it.getId()).category(it.getCategory())
.fieldList(it.getFieldList()).name(it.getName()).introduction(it.getIntroduction())
.formId(it.getFormId()).memberCount(it.getMemberCount()).build())
.map(it -> SpaceWithMemberCountInfo.builder()
.id(it.getId())
.category(it.getCategory())
.fieldList(it.getFieldList())
.name(it.getName())
.introduction(it.getIntroduction())
.formId(it.getFormId())
.memberCount(it.getMemberCount())
.bannerUrl(it.getBannerUrl())
.build())
.orElseThrow(() -> new BaseCustomException(INVALID_REFRESH_TOKEN));
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,10 @@ public SpaceResponse.SpacePage getSpaceListFromMemberId(Long memberId, SpaceRequ
}

@Transactional
public void createSpace(Long memberId, SpaceRequest.CreateSpaceRequest mutateSpaceRequest) {
var newSpace = spaceRepository.save(mutateSpaceRequest.toEntity(memberId));
public void createSpace(Long memberId, SpaceRequest.CreateSpaceRequest createSpaceRequest) {


var newSpace = spaceRepository.save(createSpaceRequest.toEntity(memberId));
var memberSpaceRelation = MemberSpaceRelation.builder().memberId(memberId).space(newSpace).build();

memberSpaceRelationRepository.save(memberSpaceRelation);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,20 @@

@RequiredArgsConstructor
public enum ExternalExceptionType implements ExceptionType {
INTERNAL_SERVER_ERROR(HttpStatus.INTERNAL_SERVER_ERROR, "알수 없는 에러에요.");
INTERNAL_SERVER_ERROR(HttpStatus.INTERNAL_SERVER_ERROR, "알수 없는 에러에요."),

OBJECT_INVALID_ERROR(HttpStatus.BAD_REQUEST, "객체를 찾을 수 없어요.");

private final HttpStatus status;
private final String message;

@Override
public HttpStatus httpStatus() {
return null;
return status;
}

@Override
public String message() {
return null;
return message;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,10 @@ public class SpaceWithMemberCount {
private Long formId;
private Long memberCount;

private String bannerUrl;

@QueryProjection
public SpaceWithMemberCount(Long id, LocalDateTime createdAt, LocalDateTime updatedAt, SpaceCategory category, List<SpaceField> fieldList, String name, String introduction, Long leaderId, Long formId, Long memberCount) {
public SpaceWithMemberCount(Long id, LocalDateTime createdAt, LocalDateTime updatedAt, SpaceCategory category, List<SpaceField> fieldList, String name, String introduction, Long leaderId, Long formId, Long memberCount, String bannerUrl) {
this.id = id;
this.createdAt = createdAt;
this.updatedAt = updatedAt;
Expand All @@ -42,5 +44,6 @@ public SpaceWithMemberCount(Long id, LocalDateTime createdAt, LocalDateTime upda
this.leaderId = leaderId;
this.formId = formId;
this.memberCount = memberCount;
this.bannerUrl = bannerUrl;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,8 @@ private JPAQuery<SpaceWithMemberCount> getSpaceWithMemberCountQuery() {
space.introduction,
space.leaderId,
space.formId,
memberCountRelationTable.space.id.count().as("memberCount")
memberCountRelationTable.space.id.count().as("memberCount"),
space.bannerUrl
))
.from(space)
.leftJoin(memberSpaceRelation).on(space.id.eq(memberSpaceRelation.space.id))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import org.layer.common.exception.BaseCustomException;
import org.layer.common.exception.ExceptionType;

public class ExternalExeption extends BaseCustomException {
public ExternalExeption(ExceptionType exceptionType) {
public class ExternalException extends BaseCustomException {
public ExternalException(ExceptionType exceptionType) {
super(exceptionType);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,15 @@ public NcpResponse.PresignedResult getPreSignedUrl(Long memberId, ImageDomain im
String imagePath = imageDomain + "/" + memberId.toString() + "/" + UUID.randomUUID();
var imageUrl = amazonS3Client.getUrl(bucket, imagePath);

GeneratePresignedUrlRequest generatePresignedUrlRequest = getGeneratePreSignedUrlRequest(bucket, imagePath);
GeneratePresignedUrlRequest generatePresignedUrlRequest = getGeneratePreSignedUrlRequest(imagePath);

return NcpResponse.PresignedResult.toResponse(
amazonS3Client.generatePresignedUrl(generatePresignedUrlRequest).toString(),
imageUrl.toString()
);
}

private GeneratePresignedUrlRequest getGeneratePreSignedUrlRequest(String bucket, String fileName) {
private GeneratePresignedUrlRequest getGeneratePreSignedUrlRequest(String fileName) {
GeneratePresignedUrlRequest generatePresignedUrlRequest =
new GeneratePresignedUrlRequest(bucket, fileName)
.withMethod(HttpMethod.PUT)
Expand Down

0 comments on commit fd78885

Please sign in to comment.