Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions .github/workflows/blank.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle

name: Deployment

on:
workflow_dispatch:
push:
branches: [ "main" ]

permissions:
contents: read

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: Build with Gradle
uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1
with:
arguments: build
- uses: actions/upload-artifact@v3
with:
name: jar
path: build/libs

send-jar:
needs: build
runs-on: ubuntu-latest
steps:
- name: Download jar
uses: actions/download-artifact@v3
with:
name: jar
- name: Send jar to remote server
uses: appleboy/scp-action@master
with:
host: 34.64.182.127
username: sseooh
source: "real_coding_server-0.0.1-SNAPSHOT.jar"
target: "/home/sseooh"
key: ${{ secrets.PRIVATE_KEY }}

run-app:
needs: send-jar
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Move deploy.sh
uses: appleboy/scp-action@master
with:
host: 34.64.182.127
username: sseooh
source: "deploy.sh"
target: "/home/sseooh"
key: ${{ secrets.PRIVATE_KEY }}
- name: Execute script
uses: appleboy/ssh-action@master
with:
username: sseooh
host: 34.64.182.127
key: ${{ secrets.PRIVATE_KEY }}
script_stop: true
script: cd /home/sseooh && chmod +x deploy.sh && ./deploy.sh

2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,5 @@ WebMvcConfig에서 CORS를 위해 추가한 파일이라고 알아주시면 될
글솜씨가 없어 간단히 적었지만, 토이프로젝트를 하다보면 정말 자주 마주치는 문제 중 하나가 CORS입니다!!! 기본적인 지식이기도 하니 시간되실 때 아래의 블로그를 읽어보셔도 좋을 것 같습니다

📌 https://it-eldorado.tistory.com/163

test
Original file line number Diff line number Diff line change
@@ -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<Project> createProject(@RequestBody ProjectRequest projectRequest) {
return ResponseEntity.ok(projectService.createProject(projectRequest));
}

@GetMapping
public ResponseEntity<List<Project>> getProjects() {
return ResponseEntity.ok(projectService.getProjects());
}

@GetMapping("/{projectId}")
public ResponseEntity<Project> getProject(@PathVariable("projectId") Integer projectId) {
return ResponseEntity.ok(projectService.getProject(projectId).orElse(null));
}

@PutMapping("/{projectId}")
public ResponseEntity<Project> updateProject(@PathVariable("projectId")Integer projectId,
@RequestBody ProjectRequest projectRequest) {
return ResponseEntity.ok(projectService.updateProject(projectId, projectRequest).orElse(null));
}

@DeleteMapping("/{projectId}")
public ResponseEntity<Void> deleteProject(@PathVariable("projectId") Integer projectId) {
projectService.deleteProject(projectId);

return ResponseEntity.noContent().build();
}
}
Original file line number Diff line number Diff line change
@@ -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<Project> getProjects() {
return projectRepository.findAll();
}

public Optional<Project> getProject(Integer projectId) {
return projectRepository.findById(projectId);
}

public Optional<Project> 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);
}
}