Skip to content

Commit

Permalink
Convention: 네이버 코드 컨벤션 맞춤 Merge
Browse files Browse the repository at this point in the history
Convention: 네이버 코드 컨벤션 맞춤
  • Loading branch information
Train0303 committed Nov 11, 2023
2 parents 91357d7 + 9e6091e commit 33860a9
Show file tree
Hide file tree
Showing 106 changed files with 261 additions and 171 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.kakao.linknamu.bookmark.dto.BookmarkSearchCondition;
import com.kakao.linknamu.bookmark.dto.BookmarkSearchResponseDto;
import com.kakao.linknamu.bookmark.service.*;

import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.http.ResponseEntity;
Expand Down Expand Up @@ -51,7 +52,8 @@ public ResponseEntity<?> updateBookmark(
@PathVariable Long bookmarkId,
@AuthenticationPrincipal CustomUserDetails userDetails
) {
BookmarkResponseDto.BookmarkUpdateResponseDto responseDto = bookmarkService.updateBookmark(dto, bookmarkId, userDetails.getUser());
BookmarkResponseDto.BookmarkUpdateResponseDto responseDto = bookmarkService.updateBookmark(dto, bookmarkId,
userDetails.getUser());
return ResponseEntity.ok(ApiUtils.success(responseDto));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.kakao.linknamu.bookmark.entity.Bookmark;
import com.kakao.linknamu.category.entity.Category;

import jakarta.validation.constraints.*;
import lombok.Builder;
import lombok.Getter;
Expand Down Expand Up @@ -60,7 +61,8 @@ public record BookmarkUpdateRequestDto(
public record BookmarkImageUpdateRequestDto(
@NotBlank(message = "북마크 링크는 공백이 될 수 없습니다.")
String imageUrl
) {}
) {
}

public record BookmarkMoveRequestDto(
List<Long> bookmarkIdList,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public record BookmarkUpdateResponseDto(
}
}

@SuppressWarnings("checkstyle:RegexpSingleline")
public record BookmarkGetResponseDto(
Long bookmarkId,
String title,
Expand All @@ -47,6 +48,7 @@ public static BookmarkGetResponseDto of(BookmarkUserQueryDto bookmark, List<Tag>
.createdAt(bookmark.getCreatedAt())
.build();
}

public static BookmarkGetResponseDto of(Bookmark bookmark, List<Tag> tagList) {
return BookmarkGetResponseDto.builder()
.bookmarkId(bookmark.getBookmarkId())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.util.List;

import com.kakao.linknamu.bookmark.dto.validator.SearchCheck;

import jakarta.validation.constraints.NotBlank;
import lombok.Builder;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@
import java.lang.annotation.*;

@Documented
@Target({ ElementType.TYPE })
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = SearchCheckValidator.class)
public @interface SearchCheck {
String message() default "조건에 맞지 않은 필드값입니다.";

Class<?>[] groups() default {};

Class<? extends Payload>[] payload() default {};
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.kakao.linknamu.bookmark.dto.validator;

import com.kakao.linknamu.bookmark.dto.BookmarkSearchCondition;

import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;

Expand All @@ -9,9 +10,9 @@ public class SearchCheckValidator implements ConstraintValidator<SearchCheck, Bo
@Override
public boolean isValid(BookmarkSearchCondition dto, ConstraintValidatorContext context) {
if (dto.tags() == null) {
return !(dto.bookmarkName()==null || dto.bookmarkName().isBlank());
return !(dto.bookmarkName() == null || dto.bookmarkName().isBlank());
}

return !(dto.tags().isEmpty() && (dto.bookmarkName()==null || dto.bookmarkName().isBlank()));
return !(dto.tags().isEmpty() && (dto.bookmarkName() == null || dto.bookmarkName().isBlank()));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,16 @@
import com.kakao.linknamu.core.exception.Exception400;
import com.kakao.linknamu.core.util.AuditingEntity;
import com.querydsl.core.annotations.QueryInit;

import jakarta.persistence.*;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import org.hibernate.annotations.OnDelete;
import org.hibernate.annotations.OnDeleteAction;

import java.util.Objects;
import java.util.Set;

@Getter
@NoArgsConstructor
Expand Down Expand Up @@ -63,13 +64,14 @@ public class Bookmark extends AuditingEntity {
public void moveCategory(Category category) {
this.category = category;
}

public void changeThumbnail(String imageUrl) {
this.bookmarkThumbnail = imageUrl;
}

@Builder
public Bookmark(Long bookmarkId, Category category, String bookmarkName, String bookmarkLink,
String bookmarkDescription, String bookmarkThumbnail) {
String bookmarkDescription, String bookmarkThumbnail) {
this.bookmarkId = bookmarkId;
this.category = category;
this.bookmarkName = bookmarkName;
Expand All @@ -79,7 +81,7 @@ public Bookmark(Long bookmarkId, Category category, String bookmarkName, String
}

private String getValidBookmarkLink(String bookmarkLink) {
if(bookmarkLink.length() > 1024) {
if (bookmarkLink.length() > 1024) {
throw new Exception400(BookmarkExceptionStatus.BOOKMARK_LINK_TOO_LONG);
}
return bookmarkLink;
Expand All @@ -93,7 +95,7 @@ public boolean equals(Object obj) {
if (obj == null || getClass() != obj.getClass()) {
return false;
}
Bookmark bookmark = (Bookmark) obj;
Bookmark bookmark = (Bookmark)obj;
return Objects.equals(getBookmarkId(), bookmark.getBookmarkId())
&& Objects.equals(getBookmarkLink(), bookmark.getBookmarkLink());
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.kakao.linknamu.bookmark.repository;

import com.kakao.linknamu.bookmark.entity.Bookmark;

import jakarta.persistence.EntityManager;
import lombok.RequiredArgsConstructor;

import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Repository;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,10 @@
import com.kakao.linknamu.tag.entity.Tag;
import com.kakao.linknamu.tag.service.TagService;
import com.kakao.linknamu.user.entity.User;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
Expand Down Expand Up @@ -58,11 +60,7 @@ public boolean existByBookmarkLinkAndCategoryId(String bookmarkLink, Long catego
public List<BookmarkResponseDto.BookmarkGetResponseDto> getRecentBookmark(Pageable pageable, User user) {
List<Bookmark> bookmarkList = bookmarkJpaRepository.recentBookmarks(pageable, user.getUserId()).toList();
List<BookmarkTag> bookmarkTagList = bookmarkTagJpaRepository.findByBookmarkIdsFetchJoinTag(
bookmarkList
.stream()
.map(Bookmark::getBookmarkId)
.toList()
);
bookmarkList.stream().map(Bookmark::getBookmarkId).toList());

Map<Bookmark, List<Tag>> bookmarkTagListMap = new HashMap<>();
for(Bookmark bookmark : bookmarkList) {
Expand Down Expand Up @@ -100,14 +98,9 @@ public void addBookmark(Bookmark bookmark, Category newCategory, List<Tag> tagLi
for (String tagName : tagList.stream().map(Tag::getTagName).toList()) {
// 해당 태그가 존재하지 않는다면 새롭게 생성한다.
Tag tag = tagService.findByTagNameAndUserId(tagName, user)
.orElseGet(
() -> tagService.create(tagName, user)
);

bookmarkTagList.add(BookmarkTag.builder()
.bookmark(newBookmark)
.tag(tag)
.build());
.orElseGet(() -> tagService.create(tagName, user));

bookmarkTagList.add(BookmarkTag.builder().bookmark(newBookmark).tag(tag).build());
}

bookmarkTagJpaRepository.saveAll(bookmarkTagList);
Expand All @@ -132,14 +125,9 @@ public void addBookmark(BookmarkRequestDto.BookmarkAddDto bookmarkAddDto, User u
for (String tagName : bookmarkAddDto.getTags()) {
// 해당 태그가 존재하지 않는다면 새롭게 생성한다.
Tag tag = tagService.findByTagNameAndUserId(tagName, user)
.orElseGet(
() -> tagService.create(tagName, user)
);

bookmarkTagList.add(BookmarkTag.builder()
.bookmark(bookmark)
.tag(tag)
.build());
.orElseGet(() -> tagService.create(tagName, user));

bookmarkTagList.add(BookmarkTag.builder().bookmark(bookmark).tag(tag).build());
}

bookmarkTagJpaRepository.saveAll(bookmarkTagList);
Expand All @@ -164,18 +152,14 @@ public BookmarkResponseDto.BookmarkGetResponseDto getBookmarkById(Long bookmarkI
}

@Transactional
public BookmarkResponseDto.BookmarkUpdateResponseDto updateBookmark(
BookmarkRequestDto.BookmarkUpdateRequestDto dto,
Long bookmarkId,
User user
) {
public BookmarkResponseDto.BookmarkUpdateResponseDto updateBookmark(BookmarkRequestDto.BookmarkUpdateRequestDto dto,
Long bookmarkId, User user) {
Bookmark bookmark = bookmarkJpaRepository.findByIdFetchJoinCategoryAndWorkspace(bookmarkId)
.orElseThrow(() -> new Exception404(BookmarkExceptionStatus.BOOKMARK_NOT_FOUND));

validUser(bookmark, user);
bookmarkJpaRepository.updateBookmark(bookmarkId, dto.bookmarkName(), dto.description());


List<String> tags = bookmarkTagJpaRepository.findTagNamesByBookmarkId(bookmarkId);

return BookmarkResponseDto.BookmarkUpdateResponseDto.builder()
Expand All @@ -189,11 +173,7 @@ public BookmarkResponseDto.BookmarkUpdateResponseDto updateBookmark(
}

@Transactional
public void bookmarkImageUpdate(
BookmarkRequestDto.BookmarkImageUpdateRequestDto dto,
Long bookmarkId,
User user
) {
public void bookmarkImageUpdate(BookmarkRequestDto.BookmarkImageUpdateRequestDto dto, Long bookmarkId, User user) {
Bookmark bookmark = bookmarkJpaRepository.findByIdFetchJoinCategoryAndWorkspace(bookmarkId)
.orElseThrow(() -> new Exception404(BookmarkExceptionStatus.BOOKMARK_NOT_FOUND));

Expand Down Expand Up @@ -221,8 +201,9 @@ public void moveBookmark(BookmarkRequestDto.BookmarkMoveRequestDto dto, User use
for (Bookmark bookmark : requestedBookmarks) {
validUser(bookmark, user);
// 만약 같은 카테고리로 이동한다면 중복 검사를 할 필요가 없다.
if(!isMoveSameCategory(bookmark.getCategory(), toCategory))
if (!isMoveSameCategory(bookmark.getCategory(), toCategory)) {
validDuplicatedLink(toCategory, bookmark.getBookmarkLink());
}
examineSet.add(bookmark.getBookmarkId());
}

Expand All @@ -244,8 +225,7 @@ public BookmarkSearchResponseDto searchBookmark(BookmarkSearchCondition conditio
}

public void validUser(Bookmark bookmark, User user) {
if (!bookmark.getCategory().getWorkspace().getUser().getUserId()
.equals(user.getUserId())) {
if (!bookmark.getCategory().getWorkspace().getUser().getUserId().equals(user.getUserId())) {
throw new Exception403(BookmarkExceptionStatus.BOOKMARK_FORBIDDEN);
}
}
Expand All @@ -264,10 +244,9 @@ private void validExistRequest(Set<Long> examineSet, Set<Long> requestedSet) {
}

private void validDuplicatedLink(Category category, String bookmarkLink) {
bookmarkJpaRepository.findByCategoryIdAndBookmarkLink(category.getCategoryId(), bookmarkLink)
.ifPresent((b) -> {
throw new Exception400(BookmarkExceptionStatus.BOOKMARK_ALREADY_EXISTS);
});
bookmarkJpaRepository.findByCategoryIdAndBookmarkLink(category.getCategoryId(), bookmarkLink).ifPresent((b) -> {
throw new Exception400(BookmarkExceptionStatus.BOOKMARK_ALREADY_EXISTS);
});
}

private List<BookmarkSearchResponseDto.BookmarkContentDto> getBookmarkContentDtos(Page<Bookmark> bookmarks) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.kakao.linknamu.bookmarktag;

import com.kakao.linknamu.core.exception.BaseExceptionStatus;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
import com.kakao.linknamu.bookmarktag.service.BookmarkTagService;
import com.kakao.linknamu.core.security.CustomUserDetails;
import com.kakao.linknamu.core.util.ApiUtils;

import lombok.RequiredArgsConstructor;

import org.springframework.http.ResponseEntity;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.*;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@
import com.kakao.linknamu.bookmark.entity.Bookmark;
import com.kakao.linknamu.core.util.AuditingEntity;
import com.kakao.linknamu.tag.entity.Tag;

import jakarta.persistence.*;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import org.hibernate.annotations.OnDelete;
import org.hibernate.annotations.OnDeleteAction;

Expand Down Expand Up @@ -47,7 +49,7 @@ public boolean equals(Object obj) {
if (obj == null || getClass() != obj.getClass()) {
return false;
}
BookmarkTag that = (BookmarkTag) obj;
BookmarkTag that = (BookmarkTag)obj;
return Objects.equals(bookmarkTagId, that.bookmarkTagId);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public boolean equals(Object obj) {
if (obj == null || getClass() != obj.getClass()) {
return false;
}
BookmarkTagId that = (BookmarkTagId) obj;
BookmarkTagId that = (BookmarkTagId)obj;
return Objects.equals(bookmarkId, that.bookmarkId) && Objects.equals(tagId, that.tagId);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,5 @@ public interface BookmarkTagJpaRepository
Optional<BookmarkTag> findByIdFetchJoinTag(@Param("bookmarkTagId") BookmarkTagId bookmarkTagId);

@Query("select bt from BookmarkTag bt join fetch bt.tag t where bt.bookmark.bookmarkId in :bookmarkIdList")
List<BookmarkTag> findByBookmarkIdsFetchJoinTag(@Param("bookmarkIdList") List<Long> BookmarkIdList);
List<BookmarkTag> findByBookmarkIdsFetchJoinTag(@Param("bookmarkIdList") List<Long> bookmarkIdList);
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.kakao.linknamu.bookmark.dto.BookmarkSearchCondition;
import com.kakao.linknamu.bookmark.entity.Bookmark;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
import com.querydsl.core.types.dsl.BooleanExpression;
import com.querydsl.jpa.impl.JPAQuery;
import com.querydsl.jpa.impl.JPAQueryFactory;

import lombok.RequiredArgsConstructor;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.support.PageableExecutionUtils;
Expand All @@ -19,12 +21,10 @@
import static java.util.Objects.isNull;
import static org.springframework.util.StringUtils.hasText;


@Repository
@RequiredArgsConstructor
public class BookmarkTagJpaRepositoryImpl implements BookmarkTagJpaRepositoryCustom {


private final JPAQueryFactory queryFactory;

@Override
Expand All @@ -43,7 +43,7 @@ public Page<Bookmark> search(BookmarkSearchCondition condition, Long userId, Pag
bookmarkTag.tag.tagName.in(condition.tags())
)
.groupBy(bookmarkTag.bookmark.bookmarkId)
.having(bookmarkTag.tag.count().eq((long) condition.tags().size()))
.having(bookmarkTag.tag.count().eq((long)condition.tags().size()))
.orderBy(bookmark.createdAt.desc());

// 페이징을 위해 offset, limit을 검색쿼리에 추가한다.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.kakao.linknamu.category;

import com.kakao.linknamu.core.exception.BaseExceptionStatus;

import lombok.Getter;
import lombok.RequiredArgsConstructor;

Expand Down
Loading

0 comments on commit 33860a9

Please sign in to comment.