From b52fd902a1a0a8def282c72c906c70831c70e4b8 Mon Sep 17 00:00:00 2001 From: YIMSEBIN Date: Fri, 21 Apr 2023 21:05:34 +0900 Subject: [PATCH] =?UTF-8?q?pr=EB=B3=B4=EB=82=B4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/PostController.java | 8 ++-- .../controller/ProjectController.java | 44 ++++++++++++++++++ .../cnu/real_coding_server/entity/Post.java | 6 +-- .../service/PostService.java | 3 +- .../service/ProjectService.java | 46 +++++++++++++++++++ 5 files changed, 96 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/cnu/real_coding_server/controller/ProjectController.java create mode 100644 src/main/java/com/cnu/real_coding_server/service/ProjectService.java diff --git a/src/main/java/com/cnu/real_coding_server/controller/PostController.java b/src/main/java/com/cnu/real_coding_server/controller/PostController.java index c31c90e..4bf2101 100644 --- a/src/main/java/com/cnu/real_coding_server/controller/PostController.java +++ b/src/main/java/com/cnu/real_coding_server/controller/PostController.java @@ -1,5 +1,6 @@ package com.cnu.real_coding_server.controller; +import org.springframework.web.bind.annotation.RestController; import com.cnu.real_coding_server.entity.Post; import com.cnu.real_coding_server.model.request.PostRequest; import com.cnu.real_coding_server.service.PostService; @@ -10,8 +11,8 @@ import java.util.List; @RestController -@RequestMapping("/posts") @RequiredArgsConstructor +@RequestMapping("/posts") public class PostController { private final PostService postService; @@ -31,8 +32,7 @@ public ResponseEntity getPost(@PathVariable("postId") Integer postId) { } @PutMapping("/{postId}") - public ResponseEntity updatePost(@PathVariable("postId")Integer postId, - @RequestBody PostRequest postRequest) { + public ResponseEntity updatePost(@PathVariable("postId") Integer postId, @RequestBody PostRequest postRequest) { return ResponseEntity.ok(postService.updatePost(postId, postRequest).orElse(null)); } @@ -42,4 +42,4 @@ public ResponseEntity deletePost(@PathVariable("postId") Integer postId) { return ResponseEntity.noContent().build(); } -} +} \ No newline at end of file diff --git a/src/main/java/com/cnu/real_coding_server/controller/ProjectController.java b/src/main/java/com/cnu/real_coding_server/controller/ProjectController.java new file mode 100644 index 0000000..3af3250 --- /dev/null +++ b/src/main/java/com/cnu/real_coding_server/controller/ProjectController.java @@ -0,0 +1,44 @@ +package com.cnu.real_coding_server.controller; + +import com.cnu.real_coding_server.entity.Project; +import com.cnu.real_coding_server.model.request.ProjectRequest; +import com.cnu.real_coding_server.service.ProjectService; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/projects") +public class ProjectController { + private final ProjectService projectService; + + @PostMapping + public ResponseEntity createProject(@RequestBody ProjectRequest projectRequest) { + return ResponseEntity.ok(projectService.createProject(projectRequest)); + } + + @GetMapping + public ResponseEntity> getProjects() { + return ResponseEntity.ok(projectService.getProjects()); + } + + @GetMapping("/{projectId}") + public ResponseEntity getProject(@PathVariable("projectId") Integer projectId) { + return ResponseEntity.ok(projectService.getProject(projectId).orElse(null)); + } + + @PutMapping("/{projectId}") + public ResponseEntity updateProject(@PathVariable("projectId") Integer projectId, @RequestBody ProjectRequest projectRequest) { + return ResponseEntity.ok(projectService.updateProject(projectId, projectRequest).orElse(null)); + } + + @DeleteMapping("/{projectId}") + public ResponseEntity deleteProject(@PathVariable("projectId") Integer projectId) { + projectService.deleteProject(projectId); + + return ResponseEntity.noContent().build(); + } +} \ No newline at end of file diff --git a/src/main/java/com/cnu/real_coding_server/entity/Post.java b/src/main/java/com/cnu/real_coding_server/entity/Post.java index bb99748..73e9d17 100644 --- a/src/main/java/com/cnu/real_coding_server/entity/Post.java +++ b/src/main/java/com/cnu/real_coding_server/entity/Post.java @@ -1,9 +1,7 @@ package com.cnu.real_coding_server.entity; - import com.cnu.real_coding_server.model.type.Tag; import jakarta.persistence.*; import lombok.*; - @Getter @Entity(name = "posts") @NoArgsConstructor(access = AccessLevel.PROTECTED) @@ -11,11 +9,9 @@ public class Post extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; - @Column @Setter private String title; - @Column @Setter private String contents; @@ -30,4 +26,4 @@ public Post(String title, String contents, Tag tag) { this.contents = contents; this.tag = tag; } -} +} \ No newline at end of file diff --git a/src/main/java/com/cnu/real_coding_server/service/PostService.java b/src/main/java/com/cnu/real_coding_server/service/PostService.java index 490a745..8ed9983 100644 --- a/src/main/java/com/cnu/real_coding_server/service/PostService.java +++ b/src/main/java/com/cnu/real_coding_server/service/PostService.java @@ -12,7 +12,6 @@ @Service @RequiredArgsConstructor public class PostService { - private final PostRepository postRepository; public Post createPost(PostRequest postRequest) { @@ -41,4 +40,4 @@ public void deletePost(Integer postId) { postRepository.findById(postId) .ifPresent(postRepository::delete); } -} +} \ No newline at end of file diff --git a/src/main/java/com/cnu/real_coding_server/service/ProjectService.java b/src/main/java/com/cnu/real_coding_server/service/ProjectService.java new file mode 100644 index 0000000..589fe7a --- /dev/null +++ b/src/main/java/com/cnu/real_coding_server/service/ProjectService.java @@ -0,0 +1,46 @@ +package com.cnu.real_coding_server.service; + +import com.cnu.real_coding_server.entity.Project; +import com.cnu.real_coding_server.model.request.ProjectRequest; +import com.cnu.real_coding_server.repository.ProjectRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Optional; + +@Service +@RequiredArgsConstructor +public class ProjectService { + private final ProjectRepository projectRepository; + + public Project createProject(ProjectRequest projectRequest) { + return projectRepository.save(projectRequest.toEntity()); + } + + public List getProjects() { + return projectRepository.findAll(); + } + + public Optional getProject(Integer projectId) { + return projectRepository.findById(projectId); + } + + public Optional updateProject(Integer projectId, ProjectRequest projectRequest) { + return projectRepository.findById(projectId) + .map(project -> { + project.setTitle(projectRequest.getTitle()); + project.setDescription(projectRequest.getDescription()); + project.setSummary(projectRequest.getSummary()); + project.setStartDate(projectRequest.getStartDate()); + project.setEndDate(projectRequest.getEndDate()); + project.setIsInProgress(projectRequest.getIsInProgress()); + return projectRepository.save(project); + }); + } + + public void deleteProject(Integer projectId) { + projectRepository.findById(projectId) + .ifPresent(projectRepository::delete); + } +} \ No newline at end of file