-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'origin/develop' into develop
- Loading branch information
Showing
10 changed files
with
430 additions
and
146 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
15 changes: 15 additions & 0 deletions
15
...in/java/ussum/homepage/domain/post/service/factory/postList/AuditPostResponseFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
package ussum.homepage.domain.post.service.factory.postList; | ||
|
||
import ussum.homepage.application.post.service.dto.response.postList.AuditPostResponseDto; | ||
import ussum.homepage.application.post.service.dto.response.postList.PostListResDto; | ||
import ussum.homepage.domain.post.Post; | ||
import ussum.homepage.domain.post.service.PostReader; | ||
import ussum.homepage.domain.postlike.service.PostReactionReader; | ||
import ussum.homepage.domain.user.service.UserReader; | ||
|
||
public class AuditPostResponseFactory implements PostListResponseFactory { | ||
@Override | ||
public PostListResDto createResponse(Post post, PostReader postReader, PostReactionReader postReactionReader, UserReader userReader) { | ||
return AuditPostResponseDto.of(post); | ||
} | ||
} |
24 changes: 24 additions & 0 deletions
24
...ain/java/ussum/homepage/domain/post/service/factory/postList/DataPostResponseFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package ussum.homepage.domain.post.service.factory.postList; | ||
|
||
import ussum.homepage.application.post.service.dto.response.DataPostResponse; | ||
import ussum.homepage.application.post.service.dto.response.postList.PostListResDto; | ||
import ussum.homepage.domain.post.Post; | ||
import ussum.homepage.domain.post.PostFile; | ||
import ussum.homepage.domain.post.service.PostReader; | ||
import ussum.homepage.domain.postlike.service.PostReactionReader; | ||
import ussum.homepage.domain.user.service.UserReader; | ||
|
||
import java.util.List; | ||
|
||
public class DataPostResponseFactory implements PostListResponseFactory { | ||
@Override | ||
public PostListResDto createResponse(Post post, PostReader postReader, PostReactionReader postReactionReader, UserReader userReader) { | ||
// 이 메서드는 일반적인 경우에 사용되지 않을 것이므로, 예외를 던지거나 null을 반환할 수 있습니다. | ||
throw new UnsupportedOperationException("Use createDataResponse for DataPostResponse"); | ||
} | ||
|
||
@Override | ||
public PostListResDto createDataResponse(Post post, List<PostFile> postFiles) { | ||
return DataPostResponse.of(post, postFiles); | ||
} | ||
} |
13 changes: 13 additions & 0 deletions
13
...ain/java/ussum/homepage/domain/post/service/factory/postList/LostPostResponseFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
package ussum.homepage.domain.post.service.factory.postList; | ||
import ussum.homepage.application.post.service.dto.response.postList.LostPostResponse; | ||
import ussum.homepage.application.post.service.dto.response.postList.PostListResDto; | ||
import ussum.homepage.domain.post.Post; | ||
import ussum.homepage.domain.post.service.PostReader; | ||
import ussum.homepage.domain.postlike.service.PostReactionReader; | ||
import ussum.homepage.domain.user.service.UserReader; | ||
public class LostPostResponseFactory implements PostListResponseFactory { | ||
@Override | ||
public PostListResDto createResponse(Post post, PostReader postReader, PostReactionReader postReactionReader, UserReader userReader) { | ||
return LostPostResponse.of(post); | ||
} | ||
} |
16 changes: 16 additions & 0 deletions
16
...n/java/ussum/homepage/domain/post/service/factory/postList/NoticePostResponseFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
package ussum.homepage.domain.post.service.factory.postList; | ||
|
||
import ussum.homepage.application.post.service.dto.response.postList.NoticePostResponse; | ||
import ussum.homepage.application.post.service.dto.response.postList.PostListResDto; | ||
import ussum.homepage.domain.post.Post; | ||
import ussum.homepage.domain.post.service.PostReader; | ||
import ussum.homepage.domain.postlike.service.PostReactionReader; | ||
import ussum.homepage.domain.user.User; | ||
import ussum.homepage.domain.user.service.UserReader; | ||
public class NoticePostResponseFactory implements PostListResponseFactory { | ||
@Override | ||
public PostListResDto createResponse(Post post, PostReader postReader, PostReactionReader postReactionReader, UserReader userReader) { | ||
User user = userReader.getUserWithId(post.getUserId()); | ||
return NoticePostResponse.of(post, user); | ||
} | ||
} |
14 changes: 14 additions & 0 deletions
14
.../java/ussum/homepage/domain/post/service/factory/postList/PartnerPostResponseFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
package ussum.homepage.domain.post.service.factory.postList; | ||
|
||
import ussum.homepage.application.post.service.dto.response.postList.PartnerPostResponse; | ||
import ussum.homepage.application.post.service.dto.response.postList.PostListResDto; | ||
import ussum.homepage.domain.post.Post; | ||
import ussum.homepage.domain.post.service.PostReader; | ||
import ussum.homepage.domain.postlike.service.PostReactionReader; | ||
import ussum.homepage.domain.user.service.UserReader; | ||
public class PartnerPostResponseFactory implements PostListResponseFactory { | ||
@Override | ||
public PostListResDto createResponse(Post post, PostReader postReader, PostReactionReader postReactionReader, UserReader userReader) { | ||
return PartnerPostResponse.of(post); | ||
} | ||
} |
16 changes: 16 additions & 0 deletions
16
...java/ussum/homepage/domain/post/service/factory/postList/PetitionPostResponseFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
package ussum.homepage.domain.post.service.factory.postList; | ||
|
||
import ussum.homepage.application.post.service.dto.response.postList.PetitionPostResponse; | ||
import ussum.homepage.application.post.service.dto.response.postList.PostListResDto; | ||
import ussum.homepage.domain.post.Post; | ||
import ussum.homepage.domain.post.service.PostReader; | ||
import ussum.homepage.domain.postlike.service.PostReactionReader; | ||
import ussum.homepage.domain.user.service.UserReader; | ||
|
||
public class PetitionPostResponseFactory implements PostListResponseFactory { | ||
@Override | ||
public PostListResDto createResponse(Post post, PostReader postReader, PostReactionReader postReactionReader, UserReader userReader) { | ||
Integer likeCount = postReactionReader.countPostReactionsByType(post.getId(), "like"); | ||
return PetitionPostResponse.of(post, likeCount); | ||
} | ||
} |
19 changes: 19 additions & 0 deletions
19
...ain/java/ussum/homepage/domain/post/service/factory/postList/PostListResponseFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
package ussum.homepage.domain.post.service.factory.postList; | ||
|
||
import ussum.homepage.application.post.service.dto.response.postList.PostListResDto; | ||
import ussum.homepage.domain.post.Post; | ||
import ussum.homepage.domain.post.PostFile; | ||
import ussum.homepage.domain.post.service.PostReader; | ||
import ussum.homepage.domain.postlike.service.PostReactionReader; | ||
import ussum.homepage.domain.user.service.UserReader; | ||
|
||
import java.util.List; | ||
|
||
public interface PostListResponseFactory { | ||
PostListResDto createResponse(Post post, PostReader postReader, PostReactionReader postReactionReader, UserReader userReader); | ||
|
||
// 자료집 게시판을 위한 새로운 메서드 | ||
default PostListResDto createDataResponse(Post post, List<PostFile> postFiles) { | ||
throw new UnsupportedOperationException("This operation is not supported for this board type."); | ||
} | ||
} |
25 changes: 25 additions & 0 deletions
25
...java/ussum/homepage/domain/post/service/factory/postList/PostResponseFactoryProvider.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
package ussum.homepage.domain.post.service.factory.postList; | ||
|
||
import java.util.HashMap; | ||
import java.util.Map; | ||
|
||
public class PostResponseFactoryProvider { | ||
private static final Map<String, PostListResponseFactory> factoryMap = new HashMap<>(); | ||
|
||
static { | ||
factoryMap.put("공지사항게시판", new NoticePostResponseFactory()); | ||
factoryMap.put("분실물게시판", new LostPostResponseFactory()); | ||
factoryMap.put("제휴게시판", new PartnerPostResponseFactory()); | ||
factoryMap.put("감사기구게시판", new AuditPostResponseFactory()); | ||
factoryMap.put("청원게시판", new PetitionPostResponseFactory()); | ||
factoryMap.put("자료집게시판", new DataPostResponseFactory()); | ||
} | ||
|
||
public static PostListResponseFactory getFactory(String boardName) { | ||
PostListResponseFactory factory = factoryMap.get(boardName); | ||
if (factory == null) { | ||
throw new IllegalArgumentException("Unknown board type: " + boardName); | ||
} | ||
return factory; | ||
} | ||
} |
Oops, something went wrong.