From 120cbf8df5edb78d67c47c2e5651b817d3e75063 Mon Sep 17 00:00:00 2001
From: Donghyun Kim <ilovekdh1208@ajou.ac.kr>
Date: Thu, 23 Nov 2023 09:37:00 +0900
Subject: [PATCH] feat: post includes s3file

---
 src/main/java/umc/spring/file/domain/S3File.java       |  9 +--------
 .../umc/spring/file/repository/S3FileRepository.java   |  7 -------
 src/main/java/umc/spring/post/data/dto/PostDto.java    |  3 ++-
 src/main/java/umc/spring/post/data/dto/PostResDto.java |  9 +++++----
 src/main/java/umc/spring/post/data/entity/Post.java    | 10 +++++-----
 .../java/umc/spring/post/service/PostServiceImpl.java  |  4 ++--
 6 files changed, 15 insertions(+), 27 deletions(-)
 delete mode 100644 src/main/java/umc/spring/file/repository/S3FileRepository.java

diff --git a/src/main/java/umc/spring/file/domain/S3File.java b/src/main/java/umc/spring/file/domain/S3File.java
index ec0eebd..d4b953c 100644
--- a/src/main/java/umc/spring/file/domain/S3File.java
+++ b/src/main/java/umc/spring/file/domain/S3File.java
@@ -5,17 +5,10 @@ import lombok.Builder;
 import lombok.Getter;
 import umc.spring.post.data.entity.Post;
 
-@Entity
 @Getter
+@Embeddable
 public class S3File {
 
-    @Id @GeneratedValue
-    Long id;
-
-    @ManyToOne
-    @JoinColumn(name = "project_id")
-    private Post post;
-
     private String originalFileName;
 
     private String uploadFileName;
diff --git a/src/main/java/umc/spring/file/repository/S3FileRepository.java b/src/main/java/umc/spring/file/repository/S3FileRepository.java
deleted file mode 100644
index 34a341a..0000000
--- a/src/main/java/umc/spring/file/repository/S3FileRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package umc.spring.file.repository;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-import umc.spring.file.domain.S3File;
-
-public interface S3FileRepository extends JpaRepository<S3File, Long> {
-}
diff --git a/src/main/java/umc/spring/post/data/dto/PostDto.java b/src/main/java/umc/spring/post/data/dto/PostDto.java
index 54b1fe6..e6830cf 100644
--- a/src/main/java/umc/spring/post/data/dto/PostDto.java
+++ b/src/main/java/umc/spring/post/data/dto/PostDto.java
@@ -3,11 +3,12 @@ package umc.spring.post.data.dto;
 import lombok.Data;
 import lombok.Getter;
 import lombok.Setter;
+import umc.spring.file.domain.S3File;
 
 @Data
 public class PostDto {
     String title;
     String body;
-    String image;
     int likeCount;
+    S3File s3File;
 }
diff --git a/src/main/java/umc/spring/post/data/dto/PostResDto.java b/src/main/java/umc/spring/post/data/dto/PostResDto.java
index ec28037..ccd903e 100644
--- a/src/main/java/umc/spring/post/data/dto/PostResDto.java
+++ b/src/main/java/umc/spring/post/data/dto/PostResDto.java
@@ -2,6 +2,7 @@ package umc.spring.post.data.dto;
 
 import jakarta.persistence.*;
 import lombok.*;
+import umc.spring.file.domain.S3File;
 import umc.spring.post.data.entity.Comment;
 import umc.spring.post.data.entity.Post;
 
@@ -12,16 +13,18 @@ import java.util.List;
 @Data
 @Builder
 public class PostResDto {
+
     Long id;
     Long userId;
     String title;
     String author;
     String body;
-    String image;
     int likeCount;
+    S3File s3File;
     Date createdTime;
     Date modifiedTime;
     List<CommentResDto> comments;
+
     public static PostResDto toDTO(Post post){
         List<CommentResDto> resDtos = new ArrayList<>();
         post.getComments().forEach(comment -> {
@@ -31,15 +34,13 @@ public class PostResDto {
         return PostResDto.builder()
                 .id(post.getId())
                 .userId(post.getUserId())
+                .s3File(post.getS3File())
                 .title(post.getTitle())
                 .author(post.getAuthor())
                 .body(post.getBody())
-                .image(post.getImage())
                 .likeCount(post.getLikes().size())
                 .createdTime(post.getCreatedTime())
                 .modifiedTime(post.getModifiedTime())
                 .comments(resDtos).build();
     }
-
-
 }
diff --git a/src/main/java/umc/spring/post/data/entity/Post.java b/src/main/java/umc/spring/post/data/entity/Post.java
index 323344d..b475be3 100644
--- a/src/main/java/umc/spring/post/data/entity/Post.java
+++ b/src/main/java/umc/spring/post/data/entity/Post.java
@@ -3,6 +3,8 @@ package umc.spring.post.data.entity;
 import jakarta.persistence.*;
 import lombok.Getter;
 import lombok.Setter;
+import umc.spring.file.domain.S3File;
+import umc.spring.file.domain.S3FileDto;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -27,9 +29,6 @@ public class Post{
     @Column(nullable = false)
     private String body;
 
-    @Column(nullable = false)
-    private String image;
-
     @Column(nullable = false)
     private int likeCount;
 
@@ -42,6 +41,9 @@ public class Post{
     @Column(nullable = true)
     private Date modifiedTime;
 
+    @Embedded
+    private S3File s3File;
+
     @OneToMany(mappedBy = "post", cascade = CascadeType.ALL,fetch = FetchType.EAGER,
             orphanRemoval = true)
     private List<Comment> comments = new ArrayList<>();
@@ -50,6 +52,4 @@ public class Post{
             orphanRemoval = true)
     private List<LikeData> likes = new ArrayList<>();
 
-
-
 }
diff --git a/src/main/java/umc/spring/post/service/PostServiceImpl.java b/src/main/java/umc/spring/post/service/PostServiceImpl.java
index 2046e97..e5a286f 100644
--- a/src/main/java/umc/spring/post/service/PostServiceImpl.java
+++ b/src/main/java/umc/spring/post/service/PostServiceImpl.java
@@ -112,7 +112,7 @@ public class PostServiceImpl implements PostService{
             if(Objects.equals(post.getUserId(), userInfoDto.getUserId())){
                 post.setTitle(postDto.getTitle() != null ? postDto.getTitle() : post.getTitle());
                 post.setBody(postDto.getBody() != null ? postDto.getBody() : post.getBody());
-                post.setImage(postDto.getImage() != null ? postDto.getImage() : post.getImage());
+                post.setS3File(postDto.getS3File() != null ? postDto.getS3File() : post.getS3File());
                 post.setModifiedTime(new Date());
                 postRepository.save(post);
                 return true;
@@ -233,6 +233,6 @@ public class PostServiceImpl implements PostService{
         post.setTitle(postDto.getTitle());
         post.setBody(postDto.getBody());
         post.setLikeCount(0);
-        post.setImage(postDto.getImage());
+        post.setS3File(postDto.getS3File());
     }
 }
-- 
GitLab