-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
30 changed files
with
847 additions
and
182 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
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
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
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
21 changes: 21 additions & 0 deletions
21
backend/src/main/java/com/votogether/domain/post/dto/response/CategoryResponse.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,21 @@ | ||
package com.votogether.domain.post.dto.response; | ||
|
||
import com.votogether.domain.category.entity.Category; | ||
|
||
public record CategoryResponse( | ||
long id, | ||
String name | ||
) { | ||
|
||
public static CategoryResponse of(Category category) { | ||
return new CategoryResponse(category.getId(), category.getName()); | ||
} | ||
|
||
@Override | ||
public String toString() { | ||
return "CategoryResponse{" + | ||
"id=" + id + | ||
", name='" + name + '\'' + | ||
'}'; | ||
} | ||
} |
35 changes: 35 additions & 0 deletions
35
backend/src/main/java/com/votogether/domain/post/dto/response/PostOptionResponse.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,35 @@ | ||
package com.votogether.domain.post.dto.response; | ||
|
||
import com.votogether.domain.post.entity.PostOption; | ||
|
||
public record PostOptionResponse( | ||
long optionId, | ||
String content, | ||
int voteCount, | ||
double votePercent | ||
) { | ||
|
||
public static PostOptionResponse of( | ||
final PostOption postOption, | ||
final boolean isVisibleVoteResult, | ||
final Long totalVoteCount | ||
) { | ||
return new PostOptionResponse( | ||
postOption.getId(), | ||
postOption.getContent(), | ||
postOption.getVoteCount(isVisibleVoteResult), | ||
postOption.getVotePercent(totalVoteCount) | ||
); | ||
} | ||
|
||
@Override | ||
public String toString() { | ||
return "OptionResponse{" + | ||
"optionId=" + optionId + | ||
", content='" + content + '\'' + | ||
", voteCount=" + voteCount + | ||
", votePercent=" + votePercent + | ||
'}'; | ||
} | ||
|
||
} |
77 changes: 77 additions & 0 deletions
77
backend/src/main/java/com/votogether/domain/post/dto/response/PostResponse.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,77 @@ | ||
package com.votogether.domain.post.dto.response; | ||
|
||
import com.votogether.domain.member.entity.Member; | ||
import com.votogether.domain.post.entity.Post; | ||
import com.votogether.domain.post.entity.PostBody; | ||
import com.votogether.domain.post.entity.PostCategory; | ||
import java.time.LocalDateTime; | ||
import java.util.List; | ||
|
||
public record PostResponse( | ||
Long postId, | ||
WriterResponse writer, | ||
String title, | ||
String content, | ||
List<CategoryResponse> categories, | ||
LocalDateTime createdAt, | ||
LocalDateTime deadline, | ||
VoteResponse voteInfo | ||
) { | ||
|
||
public static PostResponse of(final Post post, final Member loginMember) { | ||
final Member writer = post.getWriter(); | ||
final PostBody postBody = post.getPostBody(); | ||
|
||
return new PostResponse( | ||
post.getId(), | ||
WriterResponse.of(writer.getId(), writer.getNickname().getValue()), | ||
postBody.getTitle(), | ||
postBody.getContent(), | ||
getCategories(post), | ||
post.getCreatedAt(), | ||
post.getDeadline(), | ||
VoteResponse.of( | ||
post.getPostOptions().getSelectedOptionId(loginMember), | ||
post.getFinalTotalVoteCount(loginMember), | ||
getOptions(post, loginMember) | ||
) | ||
); | ||
} | ||
|
||
private static List<CategoryResponse> getCategories(final Post post) { | ||
return post.getPostCategories().getPostCategories().stream() | ||
.map(PostCategory::getCategory) | ||
.map(CategoryResponse::of) | ||
.toList(); | ||
} | ||
|
||
private static List<PostOptionResponse> getOptions( | ||
final Post post, | ||
final Member loginMember | ||
) { | ||
return post.getPostOptions().getPostOptions().stream() | ||
.map(postOption -> | ||
PostOptionResponse.of( | ||
postOption, | ||
post.isVisibleVoteResult(loginMember), | ||
post.getFinalTotalVoteCount(loginMember) | ||
) | ||
) | ||
.toList(); | ||
} | ||
|
||
@Override | ||
public String toString() { | ||
return "PostResponse{" + | ||
"postId=" + postId + | ||
", writer=" + writer + | ||
", title='" + title + '\'' + | ||
", content='" + content + '\'' + | ||
", categories=" + categories + | ||
", createdAt=" + createdAt + | ||
", deadline=" + deadline + | ||
", voteInfo=" + voteInfo + | ||
'}' + "\n\n"; | ||
} | ||
|
||
} |
28 changes: 28 additions & 0 deletions
28
backend/src/main/java/com/votogether/domain/post/dto/response/VoteResponse.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,28 @@ | ||
package com.votogether.domain.post.dto.response; | ||
|
||
import java.util.List; | ||
|
||
public record VoteResponse( | ||
long selectedOptionId, | ||
long totalVoteCount, | ||
List<PostOptionResponse> options | ||
) { | ||
|
||
public static VoteResponse of( | ||
final long selectedOptionId, | ||
final long finalTotalVoteCount, | ||
final List<PostOptionResponse> options | ||
) { | ||
return new VoteResponse(selectedOptionId, finalTotalVoteCount, options); | ||
} | ||
|
||
@Override | ||
public String toString() { | ||
return "VoteInfoResponse{" + | ||
"selectedOptionId=" + selectedOptionId + | ||
", totalVoteCount=" + totalVoteCount + | ||
", options=" + options + | ||
'}'; | ||
} | ||
|
||
} |
20 changes: 20 additions & 0 deletions
20
backend/src/main/java/com/votogether/domain/post/dto/response/WriterResponse.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,20 @@ | ||
package com.votogether.domain.post.dto.response; | ||
|
||
public record WriterResponse( | ||
Long id, | ||
String nickname | ||
) { | ||
|
||
public static WriterResponse of(final Long id, final String nickname) { | ||
return new WriterResponse(id, nickname); | ||
} | ||
|
||
@Override | ||
public String toString() { | ||
return "WriterResponse{" + | ||
"id=" + id + | ||
", nickname='" + nickname + '\'' + | ||
'}'; | ||
} | ||
|
||
} |
Oops, something went wrong.