diff --git a/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/apiPayload/code/status/SuccessStatus.java b/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/apiPayload/code/status/SuccessStatus.java index 73fc54e..90b125a 100644 --- a/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/apiPayload/code/status/SuccessStatus.java +++ b/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/apiPayload/code/status/SuccessStatus.java @@ -19,6 +19,7 @@ public enum SuccessStatus implements BaseCode { //Post POST_DELETE_OK(HttpStatus.OK, "POST2001", "게시글이 성공적으로 삭제되었습니다."), + INQUERY_POST_OK(HttpStatus.OK, "POST201", "게시글 전체를 불러왔습니다."), //Comment COMMENT_POST_OK(HttpStatus.OK, "COMMENT2001", "댓글이 성공적으로 달렸습니다."), @@ -32,13 +33,12 @@ public enum SuccessStatus implements BaseCode { INQUERY_DATE_CALENDAR_OK(HttpStatus.OK,"COMMON200", "기록을 불러왔습니다."), DELETE_RECORD_OK(HttpStatus.OK, "COMMON200", "기록이 성공적으로 삭제되었습니다."), - //추천 RECOMMEND_OK(HttpStatus.OK, "COMMON200", "추천이 완료되었습니다."), - ; + private final HttpStatus httpStatus; private final String code; private final String message; diff --git a/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/domain/Post.java b/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/domain/Post.java index 78a6c15..08bb97a 100644 --- a/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/domain/Post.java +++ b/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/domain/Post.java @@ -19,7 +19,6 @@ @AllArgsConstructor public class Post extends BaseEntity { - @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; // id @@ -31,7 +30,10 @@ public class Post extends BaseEntity { private String body; @Column(nullable = true) - private String image_url; //사진 + private String imageUrl; //사진 + + @Column(nullable = false) + private LocalDateTime date = LocalDateTime.now(); @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "memberId", nullable = false) diff --git a/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/service/PostService/PostService.java b/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/service/PostService/PostService.java index a863c7c..7392411 100644 --- a/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/service/PostService/PostService.java +++ b/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/service/PostService/PostService.java @@ -1,11 +1,18 @@ package com.example.Midnight.Snacker.service.PostService; import com.example.Midnight.Snacker.domain.Member; import com.example.Midnight.Snacker.domain.Post; +import com.example.Midnight.Snacker.web.dto.PostDTO.PostInfoDTO; +import com.example.Midnight.Snacker.web.dto.PostDTO.PostRequestDTO; +import com.example.Midnight.Snacker.web.dto.PostDTO.PostResponseDTO; import org.springframework.stereotype.Service; -public interface PostService { +import java.time.LocalDateTime; +import java.util.List; - Post AddPost(String title, String body, String imageUrl, Member member); //게시글 등록 +public interface PostService { + Post AddPost(String title, String body, String imageUrl, LocalDateTime date, Member member); //게시글 등록 + //List getPostInfo(); + //PostResponseDTO.getPostResponseDTO getPost(); void DeletePost(long id); //게시글 삭제 } diff --git a/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/service/PostService/PostServiceImpl.java b/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/service/PostService/PostServiceImpl.java index c00c342..45feab3 100644 --- a/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/service/PostService/PostServiceImpl.java +++ b/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/service/PostService/PostServiceImpl.java @@ -6,8 +6,16 @@ import com.example.Midnight.Snacker.repository.MemberRepository; import com.example.Midnight.Snacker.repository.PostRepository; import com.example.Midnight.Snacker.apiPayload.code.status.ErrorStatus; +import com.example.Midnight.Snacker.web.controller.PostController; +import com.example.Midnight.Snacker.web.dto.PostDTO.PostInfoDTO; +import com.example.Midnight.Snacker.web.dto.PostDTO.PostResponseDTO; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.List; @Service @AllArgsConstructor @@ -15,17 +23,20 @@ public class PostServiceImpl implements PostService { private final PostRepository postRepository; private final MemberRepository memberRepository; - @Override - public Post AddPost(String title, String body, String imageUrl, Member member) { + public Post AddPost(String title, String body, String imageUrl, LocalDateTime date, Member member) { Post newPost = Post.builder() .title(title) .body(body) .member(member) - .image_url(imageUrl).build(); - System.out.println(newPost.getTitle()+newPost.getBody()+newPost.getImage_url()); - postRepository.save(newPost); - return newPost; + .date(date) + .imageUrl(imageUrl) + .build(); + //System.out.println(newPost.getTitle()+newPost.getBody()+newPost.getImage_url()); + + Post savedPost = postRepository.save(newPost); + + return savedPost; } //게시글 등록 @Override @@ -33,4 +44,27 @@ public void DeletePost(long id) { Post post = postRepository.findById(id).orElseThrow(() ->new PostHandler(ErrorStatus.POST_NOT_FOUND)); postRepository.delete(post); } // 게시글 삭제 -} \ No newline at end of file + + /*@Override + @Transactional + public List getPostInfo(){ + List posts = postRepository.findAll(); + + return posts.stream() + . map(post -> new PostInfoDTO( + post.getId(), + post.getTitle(), + post.getBody(), + post.getDate().toLocalDate(), + post.getImageUrl(), + post. + )).toList(); + } + + + @Override + @Transactional + public PostResponseDTO.getPostResponseDTO getPost(Member member){ + + }*/ +} diff --git a/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/web/controller/PostController.java b/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/web/controller/PostController.java index 375e999..48b1726 100644 --- a/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/web/controller/PostController.java +++ b/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/web/controller/PostController.java @@ -22,6 +22,8 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.time.LocalDateTime; + @RestController @RequiredArgsConstructor public class PostController { @@ -40,8 +42,9 @@ ApiResponse AddPost(@Parameter(name = "user" String title = request.getTitle(); String body = request.getBody(); + LocalDateTime date = LocalDateTime.now(); - Post post = postService.AddPost(title, body, imageUrl, member); + Post post = postService.AddPost(title, body, imageUrl,date ,member); return ApiResponse.onSuccess(PostConverter.addPostToResultDTO(post)); } @@ -51,4 +54,11 @@ public ApiResponse DeletePost(@PathVariable(name = "postId") long postId){ postService.DeletePost(postId); return ApiResponse.of(SuccessStatus.POST_DELETE_OK, null); } -} \ No newline at end of file + + @GetMapping("/api/post/all") + @Operation + public ApiResponse getAllPosts() { + PostResponseDTO.getPostResponseDTO response = postService.getPost(); + return ApiResponse.of(SuccessStatus.INQUERY_POST_OK,response); + } +} diff --git a/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/web/dto/PostDTO/PostInfoDTO.java b/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/web/dto/PostDTO/PostInfoDTO.java new file mode 100644 index 0000000..073269f --- /dev/null +++ b/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/web/dto/PostDTO/PostInfoDTO.java @@ -0,0 +1,19 @@ +package com.example.Midnight.Snacker.web.dto.PostDTO; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.Setter; + +import java.time.LocalDate; + +@Getter +@AllArgsConstructor +@Setter +public class PostInfoDTO { + private final Long postId; + private final String title; + private final String body; + private final LocalDate date; + private final String imageUrl; + private final int commentCount; +} diff --git a/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/web/dto/PostDTO/PostRequestDTO.java b/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/web/dto/PostDTO/PostRequestDTO.java index 9e29eb1..9ea06c3 100644 --- a/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/web/dto/PostDTO/PostRequestDTO.java +++ b/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/web/dto/PostDTO/PostRequestDTO.java @@ -5,6 +5,8 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.List; + public class PostRequestDTO { @Getter diff --git a/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/web/dto/PostDTO/PostResponseDTO.java b/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/web/dto/PostDTO/PostResponseDTO.java index 9198fb9..0442529 100644 --- a/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/web/dto/PostDTO/PostResponseDTO.java +++ b/Midnight-Snacker/src/main/java/com/example/Midnight/Snacker/web/dto/PostDTO/PostResponseDTO.java @@ -1,9 +1,8 @@ package com.example.Midnight.Snacker.web.dto.PostDTO; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; +import lombok.*; + +import java.util.List; public class PostResponseDTO { @@ -15,4 +14,11 @@ public static class addPostResponseDTO{ long postId; } + @Setter + @Getter + @NoArgsConstructor + @AllArgsConstructor + public static class getPostResponseDTO{ + private List posts; + } }