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
Expand Up @@ -80,7 +80,10 @@ public Page<FontResponse> getBookmarkedFonts(Long memberId, int page, int size,

List<FontResponse> filtered = fonts.stream()
.filter(font -> !StringUtils.hasText(keyword) || font.getName().contains(keyword))
.map(font -> FontResponse.from(font, true))
.map(font -> {
Member writer = memberService.getOrThrowById(font.getMemberId());
return FontResponse.from(font, true, writer.getNickname());
})
.toList();

return new PageImpl<>(filtered, pageRequest, bookmarks.getTotalElements());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
import org.fontory.fontorybe.font.controller.dto.FontCreateDTO;
import org.fontory.fontorybe.font.controller.dto.FontCreateResponse;
import org.fontory.fontorybe.font.controller.dto.FontDeleteResponse;
import org.fontory.fontorybe.font.controller.dto.FontDetailResponse;
import org.fontory.fontorybe.font.controller.dto.FontPageResponse;
import org.fontory.fontorybe.font.controller.dto.FontProgressResponse;
import org.fontory.fontorybe.font.controller.dto.FontProgressUpdateDTO;
Expand All @@ -38,7 +37,6 @@
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PatchMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
Expand Down Expand Up @@ -180,10 +178,14 @@ public ResponseEntity<?> getFonts(
@Operation(summary = "폰트 상세보기")
@Parameter(name = "fontId", description = "상세 조회 할 폰트 ID")
@GetMapping("/{fontId}")
public ResponseEntity<?> getFont(@PathVariable Long fontId) {
public ResponseEntity<?> getFont(
@PathVariable Long fontId,
@Login(required = false) UserPrincipal userPrincipal
) {
Long memberId = userPrincipal != null ? userPrincipal.getId() : null;
log.info("Request received: Get font details for font ID: {}", fontId);

FontDetailResponse font = fontService.getFont(fontId);
FontResponse font = fontService.getFont(fontId, memberId);
log.info("Response sent: Font details returned for font ID: {}, name: {}",
fontId, font.getName());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ public class FontCreateResponse {
private Long id;
private String name;
private FontStatus status;
private Long memberId;
private LocalDateTime createdAt;
private FileUploadResponse fileUploadResponse;

Expand All @@ -22,7 +21,6 @@ public static FontCreateResponse from(Font font, FileUploadResponse fileUploadRe
.id(font.getId())
.name(font.getName())
.status(font.getStatus())
.memberId(font.getMemberId())
.createdAt(font.getCreatedAt())
.fileUploadResponse(fileUploadResponse)
.build();
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ public class FontPageResponse {
private Long downloadCount;
private Long bookmarkCount;
private boolean isBookmarked;
private Long memberId;

public static FontPageResponse from(Font font, String writerName, boolean isBookmarked) {
return FontPageResponse.builder()
Expand All @@ -25,7 +24,6 @@ public static FontPageResponse from(Font font, String writerName, boolean isBook
.downloadCount(font.getDownloadCount())
.bookmarkCount(font.getBookmarkCount())
.isBookmarked(isBookmarked)
.memberId(font.getMemberId())
.build();
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.fontory.fontorybe.font.controller.dto;

import java.time.LocalDateTime;
import lombok.Builder;
import lombok.Getter;
import org.fontory.fontorybe.font.domain.Font;
Expand All @@ -11,12 +12,14 @@ public class FontProgressResponse {
private Long id;
private String name;
private FontStatus status;
private LocalDateTime createdAt;

public static FontProgressResponse from(Font font) {
return FontProgressResponse.builder()
.id(font.getId())
.name(font.getName())
.status(font.getStatus())
.createdAt(font.getCreatedAt())
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,17 @@ public class FontResponse {
private Long downloadCount;
private Long bookmarkCount;
private boolean isBookmarked;
private Long memberId;
private String writerName;

public static FontResponse from(Font font, boolean isBookmarked) {
public static FontResponse from(Font font, boolean isBookmarked, String writerName) {
return FontResponse.builder()
.id(font.getId())
.name(font.getName())
.example(font.getExample())
.downloadCount(font.getDownloadCount())
.bookmarkCount(font.getBookmarkCount())
.isBookmarked(isBookmarked)
.memberId(font.getMemberId())
.writerName(writerName)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import org.fontory.fontorybe.file.domain.FileDetails;
import org.fontory.fontorybe.font.controller.dto.FontCreateDTO;
import org.fontory.fontorybe.font.controller.dto.FontDeleteResponse;
import org.fontory.fontorybe.font.controller.dto.FontDetailResponse;
import org.fontory.fontorybe.font.controller.dto.FontPageResponse;
import org.fontory.fontorybe.font.controller.dto.FontProgressResponse;
import org.fontory.fontorybe.font.controller.dto.FontProgressUpdateDTO;
Expand All @@ -19,7 +18,7 @@ public interface FontService {
Font update(Long memberId, Long fontId, FontUpdateDTO fontUpdateDTO);
Font getOrThrowById(Long id);
Page<FontResponse> getFonts(Long memberId, int page, int size);
FontDetailResponse getFont(Long fondId);
FontResponse getFont(Long fondId, Long memberId);
FontDeleteResponse delete(Long memberId, Long fontId);
Page<FontPageResponse> getFontPage(Long memberId, int page, int size, String sortBy, String keyword);
List<FontResponse> getOtherFonts(Long fontId);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import org.fontory.fontorybe.file.domain.FileDetails;
import org.fontory.fontorybe.font.controller.dto.FontCreateDTO;
import org.fontory.fontorybe.font.controller.dto.FontDeleteResponse;
import org.fontory.fontorybe.font.controller.dto.FontDetailResponse;
import org.fontory.fontorybe.font.controller.dto.FontPageResponse;
import org.fontory.fontorybe.font.controller.dto.FontProgressResponse;
import org.fontory.fontorybe.font.controller.dto.FontProgressUpdateDTO;
Expand Down Expand Up @@ -106,8 +105,10 @@ public Page<FontResponse> getFonts(Long memberId, int page, int size) {

Page<FontResponse> result = fontPage.map(font -> {
boolean bookmarked = bookmarkRepository.existsByMemberIdAndFontId(memberId, font.getId());
return FontResponse.from(font, bookmarked);
Member writer = memberService.getOrThrowById(font.getMemberId());
return FontResponse.from(font, bookmarked, writer.getNickname());
});


log.info("Service completed: Retrieved {} fonts out of {} total for member ID: {}",
result.getNumberOfElements(), result.getTotalElements(), memberId);
Expand All @@ -116,15 +117,22 @@ public Page<FontResponse> getFonts(Long memberId, int page, int size) {

@Override
@Transactional(readOnly = true)
public FontDetailResponse getFont(Long fontId) {
public FontResponse getFont(Long fontId, Long memberId) {
log.info("Service executing: Fetching font details for font ID: {}", fontId);
Font targetFont = getOrThrowById(fontId);
Member member = memberService.getOrThrowById(targetFont.getMemberId());
Member writer = memberService.getOrThrowById(targetFont.getMemberId());

boolean isBookmarked = false;
if (memberId != null) {
isBookmarked = bookmarkRepository.existsByMemberIdAndFontId(memberId, fontId);
}

FontResponse fontResponse = FontResponse.from(targetFont, isBookmarked, writer.getNickname());

FontDetailResponse response = FontDetailResponse.from(targetFont, member.getNickname());
log.info("Service completed: Retrieved font details for font ID: {} with name: {}",
fontId, targetFont.getName());
return response;

return fontResponse;
}

@Override
Expand Down Expand Up @@ -198,7 +206,8 @@ public List<FontResponse> getOtherFonts(Long fontId) {
List<FontResponse> result = fonts.stream()
.map(f -> {
boolean bookmarked = bookmarkRepository.existsByMemberIdAndFontId(member.getId(), f.getId());
return FontResponse.from(f, bookmarked);
Member writer = memberService.getOrThrowById(f.getMemberId());
return FontResponse.from(f, bookmarked, writer.getNickname());
})
.collect(Collectors.toList());

Expand All @@ -218,7 +227,8 @@ public List<FontResponse> getMyPopularFonts(Long memberId) {
List<FontResponse> result = fonts.stream()
.map(f -> {
boolean bookmarked = bookmarkRepository.existsByMemberIdAndFontId(member.getId(), f.getId());
return FontResponse.from(f, bookmarked);
Member writer = memberService.getOrThrowById(f.getMemberId());
return FontResponse.from(f, bookmarked, writer.getNickname());
})
.collect(Collectors.toList());

Expand All @@ -236,14 +246,18 @@ public List<FontResponse> getPopularFonts(Long memberId) {
List<FontResponse> result;
if (memberId == null) {
result = fonts.stream()
.map(font -> FontResponse.from(font, false))
.map(font -> {
Member writer = memberService.getOrThrowById(font.getMemberId());
return FontResponse.from(font, false, writer.getNickname());
})
.collect(Collectors.toList());
} else {
Member member = memberService.getOrThrowById(memberId);
result = fonts.stream()
.map(f -> {
boolean bookmarked = bookmarkRepository.existsByMemberIdAndFontId(member.getId(), f.getId());
return FontResponse.from(f, bookmarked);
.map(font -> {
boolean bookmarked = bookmarkRepository.existsByMemberIdAndFontId(member.getId(), font.getId());
Member writer = memberService.getOrThrowById(font.getMemberId());
return FontResponse.from(font, bookmarked, writer.getNickname());
})
.collect(Collectors.toList());
}
Expand Down Expand Up @@ -276,9 +290,11 @@ public FontResponse fontDownload(Long memberId, Long fontId) {

fontRepository.save(targetFont);

Member writer = memberService.getOrThrowById(targetFont.getMemberId());

log.info("Service completed: Font ID: {} download successfully", fontId);

return FontResponse.from(targetFont, isBookmarked);
return FontResponse.from(targetFont, isBookmarked, writer.getNickname());
}

private void checkFontOwnership(Long requestMemberId, Long targetMemberId) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,6 @@ void addFontSuccess() throws Exception {
.andExpect(status().isCreated())
.andExpect(jsonPath("$.name", is(newFontName)))
.andExpect(jsonPath("$.status", is("PROGRESS")))
.andExpect(jsonPath("$.memberId", is(existMemberId.intValue())))
.andExpect(jsonPath("$.createdAt").isNotEmpty());
}

Expand Down Expand Up @@ -247,7 +246,6 @@ void getMyFontsSuccess() throws Exception {
.andExpect(jsonPath("$.content[0].downloadCount").isNumber())
.andExpect(jsonPath("$.content[0].bookmarkCount").isNumber())
.andExpect(jsonPath("$.content[0].bookmarked").isBoolean())
.andExpect(jsonPath("$.content[0].memberId").isNotEmpty())
.andExpect(jsonPath("$.totalElements").isNumber())
.andExpect(jsonPath("$.totalPages").isNumber())
.andExpect(jsonPath("$.size").value(5))
Expand Down Expand Up @@ -277,8 +275,7 @@ void getFontDetailSuccess() throws Exception {
.andExpect(jsonPath("$.example", is(existFontExample)))
.andExpect(jsonPath("$.writerName", is(existMemberName)))
.andExpect(jsonPath("$.downloadCount", is(existFontDownloadCount.intValue())))
.andExpect(jsonPath("$.bookmarkCount", is(existFontBookmarkCount.intValue())))
.andExpect(jsonPath("$.memberId", is(existMemberId.intValue())));
.andExpect(jsonPath("$.bookmarkCount", is(existFontBookmarkCount.intValue())));
}

@Test
Expand Down Expand Up @@ -320,7 +317,6 @@ void getFontPageSuccess() throws Exception {
.andExpect(jsonPath("$.content[0].downloadCount").isNumber())
.andExpect(jsonPath("$.content[0].bookmarkCount").isNumber())
.andExpect(jsonPath("$.content[0].bookmarked").isBoolean())
.andExpect(jsonPath("$.content[0].memberId").isNotEmpty())
.andExpect(jsonPath("$.totalPages").isNumber())
.andExpect(jsonPath("$.totalElements").isNumber())
.andExpect(jsonPath("$.size").value(5))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,13 @@
import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.doNothing;

import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import org.fontory.fontorybe.file.application.FileService;
import org.fontory.fontorybe.file.domain.FileCreate;
import org.fontory.fontorybe.file.domain.FileDetails;
import org.fontory.fontorybe.file.domain.FileType;
import org.fontory.fontorybe.font.controller.dto.FontCreateDTO;
import org.fontory.fontorybe.font.controller.dto.FontDeleteResponse;
import org.fontory.fontorybe.font.controller.dto.FontDetailResponse;
import org.fontory.fontorybe.font.controller.dto.FontPageResponse;
import org.fontory.fontorybe.font.controller.dto.FontProgressResponse;
import org.fontory.fontorybe.font.controller.dto.FontProgressUpdateDTO;
Expand All @@ -35,7 +31,6 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.domain.Page;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.test.context.bean.override.mockito.MockitoBean;
import org.springframework.test.context.jdbc.Sql;
import org.springframework.test.context.jdbc.Sql.ExecutionPhase;
Expand Down Expand Up @@ -231,10 +226,6 @@ void getFontsSuccess() {
assertThat(result.getContent()).hasSizeLessThanOrEqualTo(size);
assertThat(result.getTotalElements()).isGreaterThanOrEqualTo(7);

result.getContent().forEach(font ->
assertThat(font.getMemberId()).isEqualTo(existMemberId)
);

List<Long> ids = result.getContent().stream()
.map(FontResponse::getId)
.toList();
Expand All @@ -249,7 +240,7 @@ void getFontsSuccess() {
@DisplayName("font - getFont detail success test")
void getFontDetailSuccess() {
// when
FontDetailResponse detail = fontService.getFont(existFontId);
FontResponse detail = fontService.getFont(existFontId, null);

// then
assertAll(
Expand Down Expand Up @@ -362,7 +353,6 @@ void getOtherFontsSuccess() {

result.forEach(font -> {
assertThat(font.getId()).isNotEqualTo(existFontId);
assertThat(font.getMemberId()).isEqualTo(existMemberId);
});
}

Expand Down Expand Up @@ -422,7 +412,6 @@ void getMyPopularFontsSuccess() {

assertThat(scores).isEqualTo(sorted);

result.forEach(font -> assertThat(font.getMemberId()).isEqualTo(existMemberId));
}

@Test
Expand Down
Loading