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 @@ -8,6 +8,7 @@
public class TitleAndContentParser {
private String title;
private String content;
private static final String EVERYONE_MENTION = "@everyone";

private TitleAndContentParser(String title,String content){
this.title=title;
Expand All @@ -25,12 +26,12 @@ public static TitleAndContentParser parse(String input){
int index = 0;

// 첫 줄이 비어있으면 다음 줄로 이동
while (index < lines.length && lines[index].isBlank()) {
while (index < lines.length && !validateTitle(lines[index])) {
index++;
}

if (index < lines.length) {
title = lines[index]; // 첫 번째 유효한 줄을 title로 설정
title = deleteMention(lines[index]); // 첫 번째 유효한 줄을 title로 설정
index++;
}

Expand All @@ -40,5 +41,20 @@ public static TitleAndContentParser parse(String input){
return new TitleAndContentParser(title,content);
}

private static boolean validateTitle(String line){
if(line.isEmpty()||line.isBlank()){return false;}
if(line.trim().equalsIgnoreCase(EVERYONE_MENTION)){return false;}

return true;
}

private static String deleteMention(String input){
if(input==null){
return null;
}
if(input.contains(EVERYONE_MENTION)){
return input.replace(EVERYONE_MENTION, "");
}
return input;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
//import space.space_spring.domain.discord.application.port.out.CreateDiscordThreadPort;
import space.space_spring.domain.discord.application.port.out.CreateDiscordWebHookMessageCommand;
import space.space_spring.domain.discord.application.port.out.CreateDiscordWebHookMessagePort;
import space.space_spring.domain.post.application.port.in.Tag.LoadTagUseCase;
import space.space_spring.domain.post.application.port.out.LoadBoardPort;
import space.space_spring.domain.post.application.port.out.LoadTagPort;
import space.space_spring.domain.post.domain.AttachmentType;
Expand All @@ -21,7 +20,6 @@

import java.util.Comparator;
import java.util.concurrent.ExecutionException;
import java.util.stream.Collectors;

import static space.space_spring.global.common.response.status.BaseExceptionResponseStatus.BOARD_NOT_EXIST;
import static space.space_spring.global.common.response.status.BaseExceptionResponseStatus.DISCORD_THREAD_CREATE_FAIL;
Expand Down Expand Up @@ -83,7 +81,7 @@ private CreateDiscordWebHookMessageCommand mapToWebHookMessage(CreatePostInDisco
.map(attachment->attachment.getAttachmentUrl()).toList()
)
.discordTags(
loadTagPort.loadById(command.getTagIds()).stream().map(tag->tag.getDiscordId()).toList()
loadTagPort.loadAllByIds(command.getTagIds()).stream().map(tag->tag.getDiscordId()).toList()
)
.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public class NoticeSummary {

private Long postId;

private String content;
private String title;

private String timePassed;
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ public class SubscriptionSummary {

private String boardName;

private String boardTitle;
private String postTitle;

private Long tagId;

private String tagName;
}
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ public ReadHomeResult readHome(Long spaceMemberId, Long spaceId) {
for (Post post : noticePosts) {
notices.add(new NoticeSummary(
post.getId(),
post.getContent().getValue(),
post.getTitle(),
ConvertCreatedDate.setCreatedDate(post.getBaseInfo().getCreatedAt())
));
}
Expand All @@ -75,16 +75,17 @@ public ReadHomeResult readHome(Long spaceMemberId, Long spaceId) {
List<SubscriptionSummary> subscriptions = new ArrayList<>();
List<Subscription> subscribedBoards = loadSubscriptionPort.loadBySpaceMember(spaceMemberId);
for (Subscription subscription : subscribedBoards) {
Board board = loadBoardPort.loadById(subscription.getBoardId());
Optional<Tag> tag = loadTagPort.loadByBoardId(board.getId());

// 각 게시판에서 제일 최신 게시물 정보 가져오기
Optional<Post> latestPost;
String postTitle = "";
String tagName = "";
if (tag.isPresent()) {
tagName = tag.get().getTagName();
latestPost = loadPostPort.loadLatestPostByBoardIdAndTagId(board.getId(), tag.get().getId());

Board board = loadBoardPort.loadById(subscription.getBoardId());
Long tagId = subscription.getTagId();

if (tagId != null) {
Tag tag = loadTagPort.loadById(subscription.getTagId());
tagName = tag.getTagName();
latestPost = loadPostPort.loadLatestPostByBoardIdAndTagId(board.getId(), tag.getId());
if (latestPost.isPresent()) postTitle = latestPost.get().getTitle();
} else {
latestPost = loadPostPort.loadLatestPostsByBoardIds(List.of(board.getId()), 1)
Expand All @@ -93,7 +94,7 @@ public ReadHomeResult readHome(Long spaceMemberId, Long spaceId) {
if (latestPost.isPresent()) postTitle = latestPost.get().getTitle();
}

subscriptions.add(new SubscriptionSummary(board.getId(), board.getBoardName(), postTitle, tagName));
subscriptions.add(new SubscriptionSummary(board.getId(), board.getBoardName(), postTitle, tagId, tagName));
}
result.addSubscription(subscriptions);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ public Optional<PostJpaEntity> findLatestByBoardIdAndTagId(Long boardId, Long ta
return Optional.ofNullable(jpaQueryFactory.selectFrom(postJpaEntity)
.join(postJpaEntity.postBase, postBaseJpaEntity)
.join(postBaseJpaEntity.board, boardJpaEntity)
.join(tagJpaEntity).on(tagJpaEntity.board.eq(boardJpaEntity))
.join(postTagJpaEntity).on(postTagJpaEntity.postBase.eq(postBaseJpaEntity))
.join(tagJpaEntity).on(postTagJpaEntity.tag.eq(tagJpaEntity))
.where(
boardJpaEntity.id.eq(boardId),
tagJpaEntity.id.eq(tagId),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,13 @@
import static space.space_spring.global.common.response.status.BaseExceptionResponseStatus.BOARD_NOT_FOUND;
import static space.space_spring.global.common.response.status.BaseExceptionResponseStatus.TAG_NOT_FOUND;

import java.util.Optional;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
import space.space_spring.domain.post.adapter.out.persistence.board.BoardJpaEntity;
import space.space_spring.domain.post.adapter.out.persistence.board.SpringDataBoardRepository;
import space.space_spring.domain.post.application.port.out.CreateTagPort;
import space.space_spring.domain.post.application.port.out.LoadTagPort;
import space.space_spring.domain.post.domain.Tag;
import space.space_spring.global.common.enumStatus.BaseStatusType;
import space.space_spring.global.exception.CustomException;

import java.util.List;
Expand Down Expand Up @@ -74,15 +72,15 @@ public List<Tag> loadByDiscordId(List<Long> discordIdOfTag) {
}

@Override
public List<Tag> loadById(List<Long> tagIds) {
public List<Tag> loadAllByIds(List<Long> tagIds) {
List<TagJpaEntity> allByIdAndStatus = tagRepository.findAllByIdAndStatus(tagIds, ACTIVE);

return allByIdAndStatus.stream().map(tagMapper::toDomainEntity).toList();

}

@Override
public Optional<Tag> loadByBoardId(Long boardId) {
return tagRepository.findByBoardId(boardId).map(tagMapper::toDomainEntity);
public Tag loadById(Long tagId) {
return tagRepository.findByIdAndStatus(tagId, ACTIVE).map(tagMapper::toDomainEntity).orElseThrow(() -> new CustomException(TAG_NOT_FOUND));
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
package space.space_spring.domain.post.application.port.out;

import com.amazonaws.services.kms.model.ListGrantsRequest;
import java.util.Optional;
import space.space_spring.domain.post.domain.Board;
import space.space_spring.domain.post.domain.Tag;

import java.util.List;
Expand All @@ -16,7 +13,7 @@ public interface LoadTagPort {

List<Tag> loadByDiscordId(List<Long> discordIdOfTag);

List<Tag> loadById(List<Long> tagIds);
List<Tag> loadAllByIds(List<Long> tagIds);

Optional<Tag> loadByBoardId(Long boardId);
Tag loadById(Long boardId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public void updatePostFromWeb(UpdatePostCommand command) {

// tag 수정
updatePostTagPort.updatePostTag(post.getId(), command.getTagIds());
List<Tag> tags = loadTagPort.loadById(command.getTagIds());
List<Tag> tags = loadTagPort.loadAllByIds(command.getTagIds());

// 6. TODO:디스코드로 게시글 수정 정보 전송
List<String> newAttachmentUrls = new ArrayList<>();
Expand Down