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
76 changes: 76 additions & 0 deletions .github/workflows/blank.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# 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.132.78
username: p4rker911
source: "real_coding_server-0.0.1-SNAPSHOT.jar"
target: "/home/p4rker911"
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.132.78
username: p4rker911
source: "deploy.sh"
target: "/home/p4rker911"
key: ${{ secrets.PRIVATE_KEY }}
- name: Execute script
uses: appleboy/ssh-action@master
with:
username: p4rker911
host: 34.64.132.78
key: ${{ secrets.PRIVATE_KEY }}
script_stop: true
script: cd /home/p4rker911 && chmod +x deploy.sh && ./deploy.sh
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,7 @@ WebMvcConfig에서 CORS를 위해 추가한 파일이라고 알아주시면 될
글솜씨가 없어 간단히 적었지만, 토이프로젝트를 하다보면 정말 자주 마주치는 문제 중 하나가 CORS입니다!!! 기본적인 지식이기도 하니 시간되실 때 아래의 블로그를 읽어보셔도 좋을 것 같습니다

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


배포 중단 확인0
배포 중단 확인1
16 changes: 0 additions & 16 deletions src/main/java/com/cnu/real_coding_server/config/WebMVCConfig.java

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,12 @@ public ResponseEntity<Post> getPost(@PathVariable("postId") Integer postId) {
}

@PutMapping("/{postId}")
public ResponseEntity<Post> updatePost(@PathVariable("postId")Integer postId,
@RequestBody PostRequest postRequest) {
public ResponseEntity<Post> updatePost(@PathVariable("postId") Integer postId, @RequestBody PostRequest postRequest) {
return ResponseEntity.ok(postService.updatePost(postId, postRequest).orElse(null));
}

@DeleteMapping("/{postId}")
public ResponseEntity<Void> deletePost(@PathVariable("postId") Integer postId) {
public ResponseEntity<Void> deletePost(@PathVariable("postId")Integer postId) {
postService.deletePost(postId);

return ResponseEntity.noContent().build();
Expand Down
Original file line number Diff line number Diff line change
@@ -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
@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();
}
}
33 changes: 0 additions & 33 deletions src/main/java/com/cnu/real_coding_server/entity/Post.java

This file was deleted.

37 changes: 8 additions & 29 deletions src/main/java/com/cnu/real_coding_server/entity/Project.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
package com.cnu.real_coding_server.entity;

import com.cnu.real_coding_server.model.type.Tag;
import jakarta.persistence.*;
import lombok.*;

import java.time.LocalDateTime;

@Getter
@Entity(name = "projects")
@Entity(name = "project")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Project extends BaseEntity {
@Id
Expand All @@ -19,36 +18,16 @@ public class Project extends BaseEntity {

@Column
@Setter
private String summary;

@Column
@Setter
private String description;
private String contents;

@Column
@Setter
private LocalDateTime startDate;

@Column
@Setter
private LocalDateTime endDate;

@Column
@Setter
private Boolean isInProgress;
@Enumerated(EnumType.STRING)
private Tag tag;

@Builder
private Project(String title,
String summary,
String description,
LocalDateTime startDate,
LocalDateTime endDate,
Boolean isInProgress) {
public Project(String title, String contents, Tag tag) {
this.title = title;
this.summary = summary;
this.description = description;
this.startDate = startDate;
this.endDate = endDate;
this.isInProgress = isInProgress;
this.contents = contents;
this.tag = tag;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,10 @@

import com.cnu.real_coding_server.entity.Post;
import com.cnu.real_coding_server.model.type.Tag;
import jakarta.validation.Valid;
import lombok.Getter;

@Getter
public class PostRequest {
@Valid
private String title;
private String contents;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,32 +1,22 @@
package com.cnu.real_coding_server.model.request;


import com.cnu.real_coding_server.entity.Project;
import com.cnu.real_coding_server.model.type.Tag;
import lombok.Getter;

import java.time.LocalDateTime;

@Getter
public class ProjectRequest {
private String title;
private String contents;

private String summary;

private String description;

private LocalDateTime startDate;

private LocalDateTime endDate;

private Boolean isInProgress;
private Tag tag;

public Project toEntity() {
return Project.builder()
.title(title)
.summary(summary)
.description(description)
.startDate(startDate)
.endDate(endDate)
.isInProgress(isInProgress)
.contents(contents)
.tag(tag)
.build();
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@

@Repository
public interface ProjectRepository extends JpaRepository<Project, Integer> {
// Project save(Project post);
// Project save(Project project); // 정록: JpaRepository 상속 받아서 아래 함수들을 알아서 제공해줌
// List<Project> findAll();
// Optional<Project> findById(Integer projectId);
// void delete(Project projectId);
// Optional<Project> findById(Integer ProjcetId);
// void delete(Project project);
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@
@Service
@RequiredArgsConstructor
public class PostService {

private final PostRepository postRepository;

public Post createPost(PostRequest postRequest) {
return postRepository.save(postRequest.toEntity());
}
Expand All @@ -33,6 +31,7 @@ public Optional<Post> updatePost(Integer postId, PostRequest postRequest) {
post.setTitle(postRequest.getTitle());
post.setContents(postRequest.getContents());
post.setTag(postRequest.getTag());

return postRepository.save(post);
});
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
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.setContents(projectRequest.getContents());
project.setTag(projectRequest.getTag());

return projectRepository.save(project);
});
}

public void deleteProject(Integer projectId) {
projectRepository.findById(projectId)
.ifPresent(projectRepository::delete);
}
}