diff --git a/.github/workflows/deployment.yml b/.github/workflows/blank.yml similarity index 82% rename from .github/workflows/deployment.yml rename to .github/workflows/blank.yml index 2be1220..c689af8 100644 --- a/.github/workflows/deployment.yml +++ b/.github/workflows/blank.yml @@ -46,10 +46,10 @@ jobs: - name: Send jar to remote server uses: appleboy/scp-action@master with: - host: {나의 public ip} - username: {나의 userName} + host: 34.64.204.61 + username: dadd55 source: "real_coding_server-0.0.1-SNAPSHOT.jar" - target: "/home/{나의 userName}" + target: "/home/dadd55" key: ${{ secrets.PRIVATE_KEY }} run-app: @@ -61,16 +61,16 @@ jobs: - name: Move deploy.sh uses: appleboy/scp-action@master with: - host: {나의 public ip} - username: {나의 userName} + host: 34.64.204.61 + username: dadd55 source: "deploy.sh" - target: "/home/{나의 userName}" + target: "/home/dadd55" key: ${{ secrets.PRIVATE_KEY }} - name: Execute script uses: appleboy/ssh-action@master with: - username: {나의 userName} - host: {나의 public ip} + username: dadd55 + host: 34.64.204.61 key: ${{ secrets.PRIVATE_KEY }} script_stop: true - script: cd /home/{나의 userName} && chmod +x deploy.sh && ./deploy.sh + script: cd /home/dadd55 && chmod +x deploy.sh && ./deploy.sh diff --git a/README.md b/README.md index 32187be..1e66f4f 100644 --- a/README.md +++ b/README.md @@ -37,3 +37,5 @@ WebMvcConfig에서 CORS를 위해 추가한 파일이라고 알아주시면 될 글솜씨가 없어 간단히 적었지만, 토이프로젝트를 하다보면 정말 자주 마주치는 문제 중 하나가 CORS입니다!!! 기본적인 지식이기도 하니 시간되실 때 아래의 블로그를 읽어보셔도 좋을 것 같습니다 📌 https://it-eldorado.tistory.com/163 + +silsil Bagenya 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..56678f5 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 @@ -3,6 +3,7 @@ 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; +import com.cnu.real_coding_server.service.ProjectService; import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; 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..1ba6c5c --- /dev/null +++ b/src/main/java/com/cnu/real_coding_server/controller/ProjectController.java @@ -0,0 +1,45 @@ +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 +@RequestMapping("/projects") +@RequiredArgsConstructor +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(); + } +} 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..f7c8616 --- /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.setStartDate(projectRequest.getStartDate()); + project.setEndDate(projectRequest.getEndDate()); + project.setSummary(projectRequest.getSummary()); + project.setDescription(projectRequest.getDescription()); + return projectRepository.save(project); + }); + } + + public void deleteProject(Integer projectId) { + projectRepository.findById(projectId) + .ifPresent(projectRepository::delete); + } +}