From 53d23fdaea94dcf0f0314e6787a39b63d3aecc21 Mon Sep 17 00:00:00 2001 From: shushuburger <109223626+shushuburger@users.noreply.github.com> Date: Mon, 15 Apr 2024 17:38:35 +0900 Subject: [PATCH 01/23] Modify blank.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 나의 username 나의 public id 이 2개 수정 --- .github/workflows/blank.yml | 76 +++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 .github/workflows/blank.yml diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml new file mode 100644 index 0000000..a91c5fb --- /dev/null +++ b/.github/workflows/blank.yml @@ -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.22.91.27 + username: kim87070396 + source: "devlog_springboot-0.0.1-SNAPSHOT.jar" + target: "/home/kim87070396" + 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.22.91.27 + username: kim87070396 + source: "deploy.sh" + target: "/home/kim87070396" + key: ${{ secrets.PRIVATE_KEY }} + - name: Execute script + uses: appleboy/ssh-action@master + with: + username: kim87070396 + host: 34.22.91.27 + key: ${{ secrets.PRIVATE_KEY }} + script_stop: true + script: cd /home/{kim87070396} && chmod +x deploy.sh && ./deploy.sh From 667ab74cd14e06a3b0d97c71343a4180112be66d Mon Sep 17 00:00:00 2001 From: shushuburger <109223626+shushuburger@users.noreply.github.com> Date: Mon, 15 Apr 2024 17:39:14 +0900 Subject: [PATCH 02/23] Create readme.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1차 시도 --- readme.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 readme.md diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..ca28ab3 --- /dev/null +++ b/readme.md @@ -0,0 +1 @@ +hi hello From 707ce3af5f61e4031877ade279abfcafee6f3c4a Mon Sep 17 00:00:00 2001 From: shushuburger <109223626+shushuburger@users.noreply.github.com> Date: Mon, 15 Apr 2024 17:43:03 +0900 Subject: [PATCH 03/23] Update blank.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 오타 수정 --- .github/workflows/blank.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml index a91c5fb..93cad7f 100644 --- a/.github/workflows/blank.yml +++ b/.github/workflows/blank.yml @@ -73,4 +73,4 @@ jobs: host: 34.22.91.27 key: ${{ secrets.PRIVATE_KEY }} script_stop: true - script: cd /home/{kim87070396} && chmod +x deploy.sh && ./deploy.sh + script: cd /home/kim87070396 && chmod +x deploy.sh && ./deploy.sh From d05518c2b44b9fb1075e9e126cf4a86ba3fa6df7 Mon Sep 17 00:00:00 2001 From: shushuburger <109223626+shushuburger@users.noreply.github.com> Date: Mon, 15 Apr 2024 17:43:30 +0900 Subject: [PATCH 04/23] Update readme.md --- readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/readme.md b/readme.md index ca28ab3..c5b588d 100644 --- a/readme.md +++ b/readme.md @@ -1 +1,2 @@ hi hello +2nd try From fb669af5ceab2645bcaa7389b8630cdce4d03406 Mon Sep 17 00:00:00 2001 From: shushuburger <109223626+shushuburger@users.noreply.github.com> Date: Mon, 15 Apr 2024 17:45:18 +0900 Subject: [PATCH 05/23] Update blank.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit key의 중괄호 하나 없애기 --- .github/workflows/blank.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml index 93cad7f..d4215c2 100644 --- a/.github/workflows/blank.yml +++ b/.github/workflows/blank.yml @@ -50,7 +50,7 @@ jobs: username: kim87070396 source: "devlog_springboot-0.0.1-SNAPSHOT.jar" target: "/home/kim87070396" - key: ${{ secrets.PRIVATE_KEY }} + key: ${ secrets.PRIVATE_KEY } run-app: needs: send-jar @@ -65,12 +65,12 @@ jobs: username: kim87070396 source: "deploy.sh" target: "/home/kim87070396" - key: ${{ secrets.PRIVATE_KEY }} + key: ${ secrets.PRIVATE_KEY } - name: Execute script uses: appleboy/ssh-action@master with: username: kim87070396 host: 34.22.91.27 - key: ${{ secrets.PRIVATE_KEY }} + key: ${ secrets.PRIVATE_KEY } script_stop: true script: cd /home/kim87070396 && chmod +x deploy.sh && ./deploy.sh From 40c547b1eb7f049f8f6226f1544f16ee537323b4 Mon Sep 17 00:00:00 2001 From: shushuburger <109223626+shushuburger@users.noreply.github.com> Date: Mon, 15 Apr 2024 17:45:46 +0900 Subject: [PATCH 06/23] Update readme.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 3번째 시도 --- readme.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index c5b588d..d26cd8e 100644 --- a/readme.md +++ b/readme.md @@ -1,2 +1,3 @@ -hi hello -2nd try +hi hello\n +2nd try\n +3rd try From 8b0b0bbf93c021d89dd9ce93c0442d28d28e664a Mon Sep 17 00:00:00 2001 From: shushuburger <109223626+shushuburger@users.noreply.github.com> Date: Mon, 15 Apr 2024 17:47:27 +0900 Subject: [PATCH 07/23] Update blank.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit private_key 수정 --- .github/workflows/blank.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml index d4215c2..1efffce 100644 --- a/.github/workflows/blank.yml +++ b/.github/workflows/blank.yml @@ -50,7 +50,7 @@ jobs: username: kim87070396 source: "devlog_springboot-0.0.1-SNAPSHOT.jar" target: "/home/kim87070396" - key: ${ secrets.PRIVATE_KEY } + key: ${PRIVATE_KEY} run-app: needs: send-jar @@ -65,12 +65,12 @@ jobs: username: kim87070396 source: "deploy.sh" target: "/home/kim87070396" - key: ${ secrets.PRIVATE_KEY } + key: ${PRIVATE_KEY} - name: Execute script uses: appleboy/ssh-action@master with: username: kim87070396 host: 34.22.91.27 - key: ${ secrets.PRIVATE_KEY } + key: ${PRIVATE_KEY} script_stop: true script: cd /home/kim87070396 && chmod +x deploy.sh && ./deploy.sh From 7938ac5cd7e358edd2bdc2c84360f13547d90c13 Mon Sep 17 00:00:00 2001 From: shushuburger <109223626+shushuburger@users.noreply.github.com> Date: Mon, 15 Apr 2024 17:48:41 +0900 Subject: [PATCH 08/23] Update blank.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit key 중괄호 아예 삭제 --- .github/workflows/blank.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml index 1efffce..b7f311b 100644 --- a/.github/workflows/blank.yml +++ b/.github/workflows/blank.yml @@ -50,7 +50,7 @@ jobs: username: kim87070396 source: "devlog_springboot-0.0.1-SNAPSHOT.jar" target: "/home/kim87070396" - key: ${PRIVATE_KEY} + key: $PRIVATE_KEY run-app: needs: send-jar @@ -65,12 +65,12 @@ jobs: username: kim87070396 source: "deploy.sh" target: "/home/kim87070396" - key: ${PRIVATE_KEY} + key: $PRIVATE_KEY - name: Execute script uses: appleboy/ssh-action@master with: username: kim87070396 host: 34.22.91.27 - key: ${PRIVATE_KEY} + key: $PRIVATE_KEY script_stop: true script: cd /home/kim87070396 && chmod +x deploy.sh && ./deploy.sh From 29b3792fe74f21c4a077dcb60e269a5a4d157b28 Mon Sep 17 00:00:00 2001 From: shushuburger <109223626+shushuburger@users.noreply.github.com> Date: Mon, 15 Apr 2024 17:50:56 +0900 Subject: [PATCH 09/23] Update blank.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 참조 방식 알맞게 변경 --- .github/workflows/blank.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml index b7f311b..fed54ff 100644 --- a/.github/workflows/blank.yml +++ b/.github/workflows/blank.yml @@ -27,7 +27,7 @@ jobs: java-version: '17' distribution: 'temurin' - name: Build with Gradle - uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 + uses: gradle/gradle-build-action@v1 # 버전 명시 추가 with: arguments: build - uses: actions/upload-artifact@v3 @@ -50,7 +50,7 @@ jobs: username: kim87070396 source: "devlog_springboot-0.0.1-SNAPSHOT.jar" target: "/home/kim87070396" - key: $PRIVATE_KEY + key: ${{ secrets.PRIVATE_KEY }} # Secrets를 참조하는 방법 변경 run-app: needs: send-jar @@ -65,12 +65,12 @@ jobs: username: kim87070396 source: "deploy.sh" target: "/home/kim87070396" - key: $PRIVATE_KEY + key: ${{ secrets.PRIVATE_KEY }} # Secrets를 참조하는 방법 변경 - name: Execute script uses: appleboy/ssh-action@master with: username: kim87070396 host: 34.22.91.27 - key: $PRIVATE_KEY + key: ${{ secrets.PRIVATE_KEY }} # Secrets를 참조하는 방법 변경 script_stop: true script: cd /home/kim87070396 && chmod +x deploy.sh && ./deploy.sh From 749363c0a5cce0cccf2df57b2ac13d60fc6b9e9b Mon Sep 17 00:00:00 2001 From: shushuburger <109223626+shushuburger@users.noreply.github.com> Date: Mon, 15 Apr 2024 17:58:07 +0900 Subject: [PATCH 10/23] Update blank.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 버전 명시 수정 --- .github/workflows/blank.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml index fed54ff..b7d9603 100644 --- a/.github/workflows/blank.yml +++ b/.github/workflows/blank.yml @@ -27,7 +27,7 @@ jobs: java-version: '17' distribution: 'temurin' - name: Build with Gradle - uses: gradle/gradle-build-action@v1 # 버전 명시 추가 + uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 with: arguments: build - uses: actions/upload-artifact@v3 From 8b754fe506eb34a421cdac5b4bb0e8b418df74ae Mon Sep 17 00:00:00 2001 From: shushuburger <109223626+shushuburger@users.noreply.github.com> Date: Mon, 15 Apr 2024 18:01:05 +0900 Subject: [PATCH 11/23] Update blank.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 8080 추가 --- .github/workflows/blank.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml index b7d9603..a9bf104 100644 --- a/.github/workflows/blank.yml +++ b/.github/workflows/blank.yml @@ -46,7 +46,7 @@ jobs: - name: Send jar to remote server uses: appleboy/scp-action@master with: - host: 34.22.91.27 + host: 34.22.91.27:8080 username: kim87070396 source: "devlog_springboot-0.0.1-SNAPSHOT.jar" target: "/home/kim87070396" @@ -61,7 +61,7 @@ jobs: - name: Move deploy.sh uses: appleboy/scp-action@master with: - host: 34.22.91.27 + host: 34.22.91.27:8080 username: kim87070396 source: "deploy.sh" target: "/home/kim87070396" @@ -70,7 +70,7 @@ jobs: uses: appleboy/ssh-action@master with: username: kim87070396 - host: 34.22.91.27 + host: 34.22.91.27:8080 key: ${{ secrets.PRIVATE_KEY }} # Secrets를 참조하는 방법 변경 script_stop: true script: cd /home/kim87070396 && chmod +x deploy.sh && ./deploy.sh From 0c4be1a544e9f74286cd1d82a2e026d9f546497b Mon Sep 17 00:00:00 2001 From: shushuburger <109223626+shushuburger@users.noreply.github.com> Date: Mon, 15 Apr 2024 18:05:46 +0900 Subject: [PATCH 12/23] Update blank.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit readme로 파일 변경 --- .github/workflows/blank.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml index a9bf104..cabc9ad 100644 --- a/.github/workflows/blank.yml +++ b/.github/workflows/blank.yml @@ -46,7 +46,7 @@ jobs: - name: Send jar to remote server uses: appleboy/scp-action@master with: - host: 34.22.91.27:8080 + host: 34.22.91.27 username: kim87070396 source: "devlog_springboot-0.0.1-SNAPSHOT.jar" target: "/home/kim87070396" @@ -58,10 +58,10 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 - - name: Move deploy.sh + - name: Move readme.md uses: appleboy/scp-action@master with: - host: 34.22.91.27:8080 + host: 34.22.91.27 username: kim87070396 source: "deploy.sh" target: "/home/kim87070396" @@ -70,7 +70,7 @@ jobs: uses: appleboy/ssh-action@master with: username: kim87070396 - host: 34.22.91.27:8080 + host: 34.22.91.27 key: ${{ secrets.PRIVATE_KEY }} # Secrets를 참조하는 방법 변경 script_stop: true script: cd /home/kim87070396 && chmod +x deploy.sh && ./deploy.sh From dcd9ffca3cf7a17b6e5274b329bca929ff631bd3 Mon Sep 17 00:00:00 2001 From: shushuburger <109223626+shushuburger@users.noreply.github.com> Date: Mon, 15 Apr 2024 18:09:29 +0900 Subject: [PATCH 13/23] Update blank.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 파일 모두 reame.md로 변경 --- .github/workflows/blank.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml index cabc9ad..982a745 100644 --- a/.github/workflows/blank.yml +++ b/.github/workflows/blank.yml @@ -63,7 +63,7 @@ jobs: with: host: 34.22.91.27 username: kim87070396 - source: "deploy.sh" + source: "readme.md" target: "/home/kim87070396" key: ${{ secrets.PRIVATE_KEY }} # Secrets를 참조하는 방법 변경 - name: Execute script @@ -73,4 +73,4 @@ jobs: host: 34.22.91.27 key: ${{ secrets.PRIVATE_KEY }} # Secrets를 참조하는 방법 변경 script_stop: true - script: cd /home/kim87070396 && chmod +x deploy.sh && ./deploy.sh + script: cd /home/kim87070396 && chmod +x readme.md && ./readme.md From 87a809b4ffe5e66bb9bd3908d7143320340619f0 Mon Sep 17 00:00:00 2001 From: shushuburger <109223626+shushuburger@users.noreply.github.com> Date: Mon, 15 Apr 2024 18:12:59 +0900 Subject: [PATCH 14/23] Update blank.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit java 버전 --- .github/workflows/blank.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml index 982a745..31087ab 100644 --- a/.github/workflows/blank.yml +++ b/.github/workflows/blank.yml @@ -21,10 +21,10 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v3 with: - java-version: '17' + java-version: '21' distribution: 'temurin' - name: Build with Gradle uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 From ed21e5a1c03d2d47b89f6dd1b10dbebb7e01cc02 Mon Sep 17 00:00:00 2001 From: shushuburger <109223626+shushuburger@users.noreply.github.com> Date: Mon, 15 Apr 2024 18:26:09 +0900 Subject: [PATCH 15/23] Update blank.yml --- .github/workflows/blank.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml index 31087ab..fcb84ce 100644 --- a/.github/workflows/blank.yml +++ b/.github/workflows/blank.yml @@ -58,12 +58,12 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 - - name: Move readme.md + - name: Move deploy.sh uses: appleboy/scp-action@master with: host: 34.22.91.27 username: kim87070396 - source: "readme.md" + source: "deploy.sh" target: "/home/kim87070396" key: ${{ secrets.PRIVATE_KEY }} # Secrets를 참조하는 방법 변경 - name: Execute script @@ -73,4 +73,4 @@ jobs: host: 34.22.91.27 key: ${{ secrets.PRIVATE_KEY }} # Secrets를 참조하는 방법 변경 script_stop: true - script: cd /home/kim87070396 && chmod +x readme.md && ./readme.md + script: cd /home/kim87070396 && chmod +x deploy.sh && ./deploy.sh From bb5c3f3a41c4f6929c7f4a1912be41b426c3c713 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=9D=80=EC=88=98?= <03robin@naver.com> Date: Mon, 6 May 2024 18:27:20 +0900 Subject: [PATCH 16/23] Add ErrorCode.java --- .../cnu/devlog_springboot/type/ErrorCode.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/main/java/com/com/cnu/devlog_springboot/type/ErrorCode.java diff --git a/src/main/java/com/com/cnu/devlog_springboot/type/ErrorCode.java b/src/main/java/com/com/cnu/devlog_springboot/type/ErrorCode.java new file mode 100644 index 0000000..d2c08ed --- /dev/null +++ b/src/main/java/com/com/cnu/devlog_springboot/type/ErrorCode.java @@ -0,0 +1,28 @@ +package com.com.cnu.devlog_springboot.type; + +import lombok.Getter; +import org.springframework.http.HttpStatus; + +@Getter +public enum ErrorCode { + POST_NOT_FOUND( + HttpStatus.NOT_FOUND, + 4000, + "해당 게시글을 찾을 수 없습니다."), + + PROJECT_NOT_FOUND( + HttpStatus.NOT_FOUND, + 4001, + "해당 프로젝트를 찾을 수 없습니다.") + ; + + private final HttpStatus httpStatus; + private final Integer errorCode; + private final String description; + + ErrorCode(HttpStatus httpStatus, Integer errorCode, String description) { + this.httpStatus = httpStatus; + this.errorCode = errorCode; + this.description = description; + } +} \ No newline at end of file From 0077e7bc27a2b4f73dcea3b2f05c5a9edb09f8c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=9D=80=EC=88=98?= <03robin@naver.com> Date: Mon, 6 May 2024 18:29:53 +0900 Subject: [PATCH 17/23] Add ErrorCode.java & ProjectRepository.java --- .../devlog_springboot/repository/ProjectRepository.java | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/main/java/com/com/cnu/devlog_springboot/repository/ProjectRepository.java diff --git a/src/main/java/com/com/cnu/devlog_springboot/repository/ProjectRepository.java b/src/main/java/com/com/cnu/devlog_springboot/repository/ProjectRepository.java new file mode 100644 index 0000000..af5c534 --- /dev/null +++ b/src/main/java/com/com/cnu/devlog_springboot/repository/ProjectRepository.java @@ -0,0 +1,7 @@ +package com.com.cnu.devlog_springboot.repository; + +import com.com.cnu.devlog_springboot.model.Project; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface ProjectRepository extends JpaRepository { +} \ No newline at end of file From 8c53780b37d29992d9d5bbdd3245d86dae16c3e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=9D=80=EC=88=98?= <03robin@naver.com> Date: Mon, 6 May 2024 18:37:53 +0900 Subject: [PATCH 18/23] Add ErrorResponse.java --- .../devlog_springboot/model/response/ErrorResponse.java | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/main/java/com/com/cnu/devlog_springboot/model/response/ErrorResponse.java diff --git a/src/main/java/com/com/cnu/devlog_springboot/model/response/ErrorResponse.java b/src/main/java/com/com/cnu/devlog_springboot/model/response/ErrorResponse.java new file mode 100644 index 0000000..81e82db --- /dev/null +++ b/src/main/java/com/com/cnu/devlog_springboot/model/response/ErrorResponse.java @@ -0,0 +1,9 @@ +package com.com.cnu.devlog_springboot.model.response; + +public record ErrorResponse( + String title, + Integer status, + Integer code, + String instance +) { +} \ No newline at end of file From 5a505112d1d98946a4248f5ddc7fce869819edd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=9D=80=EC=88=98?= <03robin@naver.com> Date: Mon, 6 May 2024 18:40:11 +0900 Subject: [PATCH 19/23] Add Exception Package --- .../exception/DevlogException.java | 11 ++++++++ .../exception/GlobalExceptionHandler.java | 27 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/main/java/com/com/cnu/devlog_springboot/exception/DevlogException.java create mode 100644 src/main/java/com/com/cnu/devlog_springboot/exception/GlobalExceptionHandler.java diff --git a/src/main/java/com/com/cnu/devlog_springboot/exception/DevlogException.java b/src/main/java/com/com/cnu/devlog_springboot/exception/DevlogException.java new file mode 100644 index 0000000..0972ce2 --- /dev/null +++ b/src/main/java/com/com/cnu/devlog_springboot/exception/DevlogException.java @@ -0,0 +1,11 @@ +package com.com.cnu.devlog_springboot.exception; + +import com.com.cnu.devlog_springboot.type.ErrorCode; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public class DevlogException extends RuntimeException { + private final ErrorCode errorCode; +} \ No newline at end of file diff --git a/src/main/java/com/com/cnu/devlog_springboot/exception/GlobalExceptionHandler.java b/src/main/java/com/com/cnu/devlog_springboot/exception/GlobalExceptionHandler.java new file mode 100644 index 0000000..7349185 --- /dev/null +++ b/src/main/java/com/com/cnu/devlog_springboot/exception/GlobalExceptionHandler.java @@ -0,0 +1,27 @@ +package com.com.cnu.devlog_springboot.exception; + +import com.com.cnu.devlog_springboot.model.response.ErrorResponse; +import jakarta.servlet.http.HttpServletRequest; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; + +@ControllerAdvice +public class GlobalExceptionHandler { + + @ExceptionHandler(DevlogException.class) + public ResponseEntity handlerDevlogException( + HttpServletRequest request, DevlogException e + ) { + return ResponseEntity.status(e.getErrorCode().getHttpStatus()) + .body( + new ErrorResponse( + e.getErrorCode().getDescription(), + e.getErrorCode().getHttpStatus().value(), + e.getErrorCode().getErrorCode(), + request.getRequestURI() + ) + ); + + } +} \ No newline at end of file From 6f8799ac20fe36586cb4ae07b588457e01f7b5c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=9D=80=EC=88=98?= <03robin@naver.com> Date: Mon, 6 May 2024 18:42:16 +0900 Subject: [PATCH 20/23] Add ProjectController.java & ProjectService.java --- .../controller/ProjectController.java | 52 +++++++++++++++++ .../service/ProjectService.java | 56 +++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 src/main/java/com/com/cnu/devlog_springboot/controller/ProjectController.java create mode 100644 src/main/java/com/com/cnu/devlog_springboot/service/ProjectService.java diff --git a/src/main/java/com/com/cnu/devlog_springboot/controller/ProjectController.java b/src/main/java/com/com/cnu/devlog_springboot/controller/ProjectController.java new file mode 100644 index 0000000..c911b79 --- /dev/null +++ b/src/main/java/com/com/cnu/devlog_springboot/controller/ProjectController.java @@ -0,0 +1,52 @@ +package com.com.cnu.devlog_springboot.controller; + +import com.com.cnu.devlog_springboot.model.Project; +import com.com.cnu.devlog_springboot.model.request.ProjectRequest; +import com.com.cnu.devlog_springboot.service.ProjectService; +import java.util.List; +import lombok.AllArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/projects") +@AllArgsConstructor +public class ProjectController { + + private final ProjectService projectService; + + @GetMapping + public ResponseEntity> getProjects() { + return ResponseEntity.ok(projectService.getProjects()); + } + + @GetMapping("{projectId}") + public ResponseEntity getProject(@PathVariable Integer projectId) { + return ResponseEntity.ok(projectService.getProject(projectId)); + } + + @PostMapping + public ResponseEntity createProject(@RequestBody ProjectRequest projectRequest) { + return ResponseEntity.ok(projectService.createProject(projectRequest)); + } + + @PostMapping("{projectId}") + public ResponseEntity updateProject( + @PathVariable Integer projectId, + @RequestBody ProjectRequest projectRequest + ) { + return ResponseEntity.ok(projectService.updateProject(projectId, projectRequest)); + } + + @DeleteMapping("{projectId}") + public ResponseEntity deleteProject(@PathVariable Integer projectId) { + projectService.deleteProject(projectId); + return ResponseEntity.noContent().build(); + } +} \ No newline at end of file diff --git a/src/main/java/com/com/cnu/devlog_springboot/service/ProjectService.java b/src/main/java/com/com/cnu/devlog_springboot/service/ProjectService.java new file mode 100644 index 0000000..c4b345a --- /dev/null +++ b/src/main/java/com/com/cnu/devlog_springboot/service/ProjectService.java @@ -0,0 +1,56 @@ +package com.com.cnu.devlog_springboot.service; + +import com.com.cnu.devlog_springboot.exception.DevlogException; +import com.com.cnu.devlog_springboot.model.Project; +import com.com.cnu.devlog_springboot.model.request.ProjectRequest; +import com.com.cnu.devlog_springboot.repository.ProjectRepository; +import com.com.cnu.devlog_springboot.type.ErrorCode; + +import java.util.List; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@AllArgsConstructor +public class ProjectService { + private final ProjectRepository projectRepository; + + public List getProjects() { + return projectRepository.findAll(); + } + + public Project createProject(ProjectRequest projectRequest) { + return projectRepository.save( + new Project( + null, + projectRequest.title(), + projectRequest.summary(), + projectRequest.contents(), + projectRequest.startDate(), + projectRequest.endDate() + ) + ); + } + + public Project updateProject(Integer projectId, ProjectRequest projectRequest) { + return projectRepository.findById(projectId) + .map(project -> { + project.setTitle(projectRequest.title()); + project.setContents(projectRequest.contents()); + project.setSummary(projectRequest.summary()); + project.setStartDate(projectRequest.startDate()); + project.setEndDate(projectRequest.endDate()); + return projectRepository.save(project); + }).orElseThrow(() -> new DevlogException(ErrorCode.PROJECT_NOT_FOUND)); + } + + public Project getProject(Integer projectId) { + return projectRepository.findById(projectId) + .orElseThrow(() -> new DevlogException(ErrorCode.PROJECT_NOT_FOUND)); + } + + public void deleteProject(Integer projectId) { + projectRepository.findById(projectId) + .ifPresent(projectRepository::delete); + } +} \ No newline at end of file From a9f3c0b74a4ac2c641ed271829a7d156b2f087b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=9D=80=EC=88=98?= <03robin@naver.com> Date: Mon, 6 May 2024 18:46:24 +0900 Subject: [PATCH 21/23] Modify PostRepository.java & PostService.java --- .../repository/PostRepository.java | 4 ++++ .../cnu/devlog_springboot/service/PostService.java | 13 ++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/com/cnu/devlog_springboot/repository/PostRepository.java b/src/main/java/com/com/cnu/devlog_springboot/repository/PostRepository.java index bb39395..1cc53d6 100644 --- a/src/main/java/com/com/cnu/devlog_springboot/repository/PostRepository.java +++ b/src/main/java/com/com/cnu/devlog_springboot/repository/PostRepository.java @@ -1,13 +1,17 @@ package com.com.cnu.devlog_springboot.repository; import com.com.cnu.devlog_springboot.model.Post; +import com.com.cnu.devlog_springboot.type.Tag; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.util.List; + @Repository public interface PostRepository extends JpaRepository { // Post save(Post post); // List findAll(); // Optional findById(Integer postId); // void delete(Post post); + List findAllByTag(Tag tag); } diff --git a/src/main/java/com/com/cnu/devlog_springboot/service/PostService.java b/src/main/java/com/com/cnu/devlog_springboot/service/PostService.java index 3823d7a..22ee8eb 100644 --- a/src/main/java/com/com/cnu/devlog_springboot/service/PostService.java +++ b/src/main/java/com/com/cnu/devlog_springboot/service/PostService.java @@ -1,8 +1,12 @@ package com.com.cnu.devlog_springboot.service; +import com.com.cnu.devlog_springboot.exception.DevlogException; import com.com.cnu.devlog_springboot.model.Post; import com.com.cnu.devlog_springboot.model.request.PostRequest; import com.com.cnu.devlog_springboot.repository.PostRepository; +import com.com.cnu.devlog_springboot.type.ErrorCode; +import com.com.cnu.devlog_springboot.type.Tag; +import io.micrometer.common.lang.Nullable; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -13,7 +17,10 @@ public class PostService { private final PostRepository postRepository; - public List getPosts() { + public List getPosts(@Nullable Tag tag) { + if(tag != null) { + return postRepository.findAllByTag(tag); + } return postRepository.findAll(); } @@ -33,12 +40,12 @@ public Post updatePost(Integer postId, PostRequest postRequest) { post.setContents(postRequest.contents()); return postRepository.save(post); }) - .orElse(null); + .orElseThrow(() -> new DevlogException(ErrorCode.POST_NOT_FOUND)); } public Post getPost(Integer postId) { return postRepository.findById(postId) - .orElse(null); + .orElseThrow(() -> new DevlogException(ErrorCode.POST_NOT_FOUND)); } public void deletePost(Integer postId) { From 2d7a433de614708e0ab2bb0e629c03188dfbd866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=9D=80=EC=88=98?= <03robin@naver.com> Date: Mon, 6 May 2024 18:47:33 +0900 Subject: [PATCH 22/23] Modify PostController.java --- .../cnu/devlog_springboot/controller/PostController.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/com/cnu/devlog_springboot/controller/PostController.java b/src/main/java/com/com/cnu/devlog_springboot/controller/PostController.java index 7d6847f..81486ad 100644 --- a/src/main/java/com/com/cnu/devlog_springboot/controller/PostController.java +++ b/src/main/java/com/com/cnu/devlog_springboot/controller/PostController.java @@ -6,6 +6,8 @@ import lombok.RequiredArgsConstructor; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import com.com.cnu.devlog_springboot.type.Tag; +import io.micrometer.common.lang.Nullable; import java.util.List; @@ -17,8 +19,8 @@ public class PostController { // GET /posts @GetMapping - public ResponseEntity> getPosts() { - return ResponseEntity.ok(postService.getPosts()); + public ResponseEntity> getPosts(@RequestParam @Nullable Tag tag) { + return ResponseEntity.ok(postService.getPosts(tag)); } // GET /posts/{postId} From 866db5ca11a31c827fefe55f15db63b9cc194e1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=9D=80=EC=88=98?= <03robin@naver.com> Date: Mon, 6 May 2024 18:49:30 +0900 Subject: [PATCH 23/23] Modify Project.java --- src/main/java/com/com/cnu/devlog_springboot/model/Project.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/com/cnu/devlog_springboot/model/Project.java b/src/main/java/com/com/cnu/devlog_springboot/model/Project.java index 29d0b72..c7032a9 100644 --- a/src/main/java/com/com/cnu/devlog_springboot/model/Project.java +++ b/src/main/java/com/com/cnu/devlog_springboot/model/Project.java @@ -1,5 +1,6 @@ package com.com.cnu.devlog_springboot.model; +import com.com.cnu.devlog_springboot.model.request.ProjectRequest; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType;