diff --git a/src/main/java/com/woowacourse/zzazanstagram/model/article/ArticleAssembler.java b/src/main/java/com/woowacourse/zzazanstagram/model/article/ArticleAssembler.java index f422b48ec..696d68d79 100644 --- a/src/main/java/com/woowacourse/zzazanstagram/model/article/ArticleAssembler.java +++ b/src/main/java/com/woowacourse/zzazanstagram/model/article/ArticleAssembler.java @@ -11,7 +11,7 @@ public class ArticleAssembler { public static Article toEntity(ArticleRequest dto, Member author) { - Image image = Image.of(dto.getImageUrl()); + Image image = Image.of(dto.getImage()); Contents contents = Contents.of(dto.getContents()); return Article.from(image, contents, author); @@ -19,11 +19,17 @@ public static Article toEntity(ArticleRequest dto, Member author) { public static ArticleResponse toDto(Article article) { Long id = article.getId(); - Image image = article.getImage(); - Contents contents = article.getContents(); LocalDateTime createdDate = article.getCreatedDate(); LocalDateTime lastModifiedDate = article.getLastModifiedDate(); - return new ArticleResponse(id, image.getUrl(), contents.getContents(), createdDate, lastModifiedDate); + return ArticleResponse.ArticleResponseBuilder.anArticleResponse() + .id(id) + .image(article.image()) + .contents(article.contents()) + .nickName(article.getAuthor().nickName()) + .profileImage(article.getAuthor().profileImage()) + .createdDate(createdDate) + .lastModifiedDate(lastModifiedDate) + .build(); } } diff --git a/src/main/java/com/woowacourse/zzazanstagram/model/article/controller/ArticleController.java b/src/main/java/com/woowacourse/zzazanstagram/model/article/controller/ArticleController.java index 843bbcf2e..ab9a96065 100644 --- a/src/main/java/com/woowacourse/zzazanstagram/model/article/controller/ArticleController.java +++ b/src/main/java/com/woowacourse/zzazanstagram/model/article/controller/ArticleController.java @@ -10,7 +10,6 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; -import javax.servlet.http.HttpSession; import javax.validation.Valid; @Controller diff --git a/src/main/java/com/woowacourse/zzazanstagram/model/article/domain/Article.java b/src/main/java/com/woowacourse/zzazanstagram/model/article/domain/Article.java index 5f5764012..a07c0d498 100644 --- a/src/main/java/com/woowacourse/zzazanstagram/model/article/domain/Article.java +++ b/src/main/java/com/woowacourse/zzazanstagram/model/article/domain/Article.java @@ -37,6 +37,14 @@ public Contents getContents() { return contents; } + public String image() { + return image.getUrl(); + } + + public String contents() { + return contents.getContents(); + } + public Member getAuthor() { return author; } diff --git a/src/main/java/com/woowacourse/zzazanstagram/model/article/dto/ArticleRequest.java b/src/main/java/com/woowacourse/zzazanstagram/model/article/dto/ArticleRequest.java index e75f6738d..7c028df16 100644 --- a/src/main/java/com/woowacourse/zzazanstagram/model/article/dto/ArticleRequest.java +++ b/src/main/java/com/woowacourse/zzazanstagram/model/article/dto/ArticleRequest.java @@ -5,7 +5,7 @@ public class ArticleRequest { @NotBlank - private String imageUrl; + private String image; private String contents; private String hashTag; @@ -13,18 +13,18 @@ public class ArticleRequest { public ArticleRequest() { } - public ArticleRequest(String imageUrl, String contents, String hashTag) { - this.imageUrl = imageUrl; + public ArticleRequest(String image, String contents, String hashTag) { + this.image = image; this.contents = contents; this.hashTag = hashTag; } - public String getImageUrl() { - return imageUrl; + public String getImage() { + return image; } - public void setImageUrl(String imageUrl) { - this.imageUrl = imageUrl; + public void setImage(String image) { + this.image = image; } public String getContents() { diff --git a/src/main/java/com/woowacourse/zzazanstagram/model/article/dto/ArticleResponse.java b/src/main/java/com/woowacourse/zzazanstagram/model/article/dto/ArticleResponse.java index 7caccf9fa..0975c024d 100644 --- a/src/main/java/com/woowacourse/zzazanstagram/model/article/dto/ArticleResponse.java +++ b/src/main/java/com/woowacourse/zzazanstagram/model/article/dto/ArticleResponse.java @@ -7,18 +7,22 @@ public class ArticleResponse { private String image; private String contents; // private String hashTag; + private String nickName; + private String profileImage; private LocalDateTime createdDate; private LocalDateTime lastModifiedDate; - //Todo author, 댓글, 좋아요 추가하자 + //Todo 댓글, 좋아요 추가하자 public ArticleResponse() { } - public ArticleResponse(Long id, String image, String contents, LocalDateTime createdDate, LocalDateTime lastModifiedDate) { + private ArticleResponse(Long id, String image, String contents, String nickName, String profileImage, LocalDateTime createdDate, LocalDateTime lastModifiedDate) { this.id = id; this.image = image; this.contents = contents; + this.nickName = nickName; + this.profileImage = profileImage; this.createdDate = createdDate; this.lastModifiedDate = lastModifiedDate; } @@ -35,6 +39,14 @@ public String getContents() { return contents; } + public String getNickName() { + return nickName; + } + + public String getProfileImage() { + return profileImage; + } + public LocalDateTime getCreatedDate() { return createdDate; } @@ -42,4 +54,62 @@ public LocalDateTime getCreatedDate() { public LocalDateTime getLastModifiedDate() { return lastModifiedDate; } + + + public static final class ArticleResponseBuilder { + private Long id; + private String image; + private String contents; + // private String hashTag; + private String nickName; + private String profileImage; + private LocalDateTime createdDate; + private LocalDateTime lastModifiedDate; + + private ArticleResponseBuilder() { + } + + public static ArticleResponseBuilder anArticleResponse() { + return new ArticleResponseBuilder(); + } + + public ArticleResponseBuilder id(Long id) { + this.id = id; + return this; + } + + public ArticleResponseBuilder image(String image) { + this.image = image; + return this; + } + + public ArticleResponseBuilder contents(String contents) { + this.contents = contents; + return this; + } + + public ArticleResponseBuilder nickName(String nickName) { + this.nickName = nickName; + return this; + } + + public ArticleResponseBuilder profileImage(String profileImage) { + this.profileImage = profileImage; + return this; + } + + public ArticleResponseBuilder createdDate(LocalDateTime createdDate) { + this.createdDate = createdDate; + return this; + } + + public ArticleResponseBuilder lastModifiedDate(LocalDateTime lastModifiedDate) { + this.lastModifiedDate = lastModifiedDate; + return this; + } + + public ArticleResponse build() { + return new ArticleResponse(id, image, contents, nickName, profileImage, createdDate, lastModifiedDate); + } + } } diff --git a/src/main/java/com/woowacourse/zzazanstagram/model/article/service/ArticleService.java b/src/main/java/com/woowacourse/zzazanstagram/model/article/service/ArticleService.java index 788a180ef..c3f08b669 100644 --- a/src/main/java/com/woowacourse/zzazanstagram/model/article/service/ArticleService.java +++ b/src/main/java/com/woowacourse/zzazanstagram/model/article/service/ArticleService.java @@ -7,7 +7,6 @@ import com.woowacourse.zzazanstagram.model.article.repository.ArticleRepository; import com.woowacourse.zzazanstagram.model.member.Member; import com.woowacourse.zzazanstagram.model.member.MemberService; -import com.woowacourse.zzazanstagram.model.member.exception.MemberException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; @@ -38,7 +37,7 @@ public List getArticleResponses() { public void save(ArticleRequest dto, String email) { Member author = memberService.findMemberByEmail(email); - + Article article = ArticleAssembler.toEntity(dto, author); articleRepository.save(article); diff --git a/src/main/java/com/woowacourse/zzazanstagram/model/member/LoginController.java b/src/main/java/com/woowacourse/zzazanstagram/model/member/LoginController.java index 2dc6c10eb..bfb0f8a79 100644 --- a/src/main/java/com/woowacourse/zzazanstagram/model/member/LoginController.java +++ b/src/main/java/com/woowacourse/zzazanstagram/model/member/LoginController.java @@ -24,7 +24,7 @@ public String loginForm() { @PostMapping("/login") public String login(MemberLoginRequest memberLoginRequest, HttpSession httpSession) { MemberResponse memberResponse = loginService.find(memberLoginRequest); - httpSession.setAttribute(MEMBER, new MemberSession(memberResponse.getEmail())); + httpSession.setAttribute(MEMBER, new MemberSession(memberResponse.getEmail(), memberResponse.getNickName(), memberResponse.getProfileImage())); return "redirect:/"; } } diff --git a/src/main/java/com/woowacourse/zzazanstagram/model/member/MemberSession.java b/src/main/java/com/woowacourse/zzazanstagram/model/member/MemberSession.java index a2dbc8507..ed9f265cb 100644 --- a/src/main/java/com/woowacourse/zzazanstagram/model/member/MemberSession.java +++ b/src/main/java/com/woowacourse/zzazanstagram/model/member/MemberSession.java @@ -1,10 +1,16 @@ package com.woowacourse.zzazanstagram.model.member; -public class MemberSession { +import java.io.Serializable; + +public class MemberSession implements Serializable { private String email; + private String nickName; + private String profileImage; - public MemberSession(String email) { + public MemberSession(String email, String nickName, String profileImage) { this.email = email; + this.nickName = nickName; + this.profileImage = profileImage; } public String getEmail() { @@ -14,4 +20,20 @@ public String getEmail() { public void setEmail(String email) { this.email = email; } + + public String getNickName() { + return nickName; + } + + public void setNickName(String nickName) { + this.nickName = nickName; + } + + public String getProfileImage() { + return profileImage; + } + + public void setProfileImage(String profileImage) { + this.profileImage = profileImage; + } } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 24043135c..82ba71c2d 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,4 +1,4 @@ -spring.devtools.restart.enabled=true +spring.devtools.restart.enabled=false spring.devtools.livereload.enabled=true # DataSource diff --git a/src/main/resources/templates/article-edit.html b/src/main/resources/templates/article-edit.html index 97807fb91..2609fd820 100644 --- a/src/main/resources/templates/article-edit.html +++ b/src/main/resources/templates/article-edit.html @@ -1,5 +1,5 @@ - + @@ -70,11 +70,9 @@