Skip to content

Commit fc8ce7e

Browse files
committed
fix: 소모임 가입할 때 소모임 삭제 여부 확인
1 parent 8e2e0a1 commit fc8ce7e

File tree

6 files changed

+140
-114
lines changed

6 files changed

+140
-114
lines changed

.github/workflows/ci-cd.yml

Lines changed: 114 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -1,114 +1,114 @@
1-
name: CI/CD
2-
3-
on:
4-
push:
5-
branches: [ "main" ]
6-
7-
permissions:
8-
contents: read
9-
10-
jobs:
11-
build:
12-
runs-on: ubuntu-latest
13-
env:
14-
working-directory: ./
15-
APPLICATION: ${{ secrets.APPLICATION }}
16-
GOOGLE_APPLICATION_CREDENTIALS: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}
17-
APPLE_KEY: ${{ secrets.APPLE_KEY }}
18-
19-
steps:
20-
# 소스 코드 체크아웃
21-
- uses: actions/checkout@v2
22-
23-
# JDK 11 설정
24-
- name: Set up JDK 11
25-
uses: actions/setup-java@v2
26-
with:
27-
java-version: '11'
28-
distribution: 'adopt'
29-
30-
# Gradle 패키지 캐시
31-
- name: Cache Gradle packages
32-
uses: actions/cache@v2
33-
with:
34-
path: |
35-
~/.gradle/caches
36-
~/.gradle/wrapper
37-
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
38-
restore-keys: |
39-
${{ runner.os }}-gradle-
40-
41-
# 설정 파일 생성
42-
- run: |
43-
mkdir ./src/main/resources
44-
cd ./src/main/resources
45-
touch ./application.yml
46-
echo "${{env.APPLICATION}}" > ./application.yml
47-
touch ./firebase-key.json
48-
echo "${{env.GOOGLE_APPLICATION_CREDENTIALS}}" | base64 --decode > ./firebase-key.json
49-
touch ./apple-key.p8
50-
echo "${{env.APPLE_KEY}}" > ./apple-key.p8
51-
52-
# 설정 파일을 작업공간에 저장
53-
- uses: actions/upload-artifact@v2
54-
with:
55-
name: application.yml
56-
path: ./src/main/resources/application.yml
57-
58-
- uses: actions/upload-artifact@v2
59-
with:
60-
name: firebase-key.json
61-
path: ./src/main/resources/firebase-key.json
62-
63-
- uses: actions/upload-artifact@v2
64-
with:
65-
name: apple-key.p8
66-
path: ./src/main/resources/apple-key.p8
67-
68-
# gradlew 권한 설정
69-
- name: Grant execute permission for gradlew
70-
run: chmod +x gradlew
71-
working-directory: ${{ env.working-directory }}
72-
73-
# Gradle로 빌드
74-
- name: Build with Gradle
75-
run: ./gradlew build
76-
working-directory: ${{ env.working-directory }}
77-
78-
# Gradle 캐시 정리
79-
- name: Cleanup Gradle Cache
80-
if: ${{ always() }}
81-
run: |
82-
rm -f ~/.gradle/caches/modules-2/modules-2.lock
83-
rm -f ~/.gradle/caches/modules-2/gc.properties
84-
85-
# Docker 이미지 빌드 및 푸시
86-
- name: Docker build
87-
run: |
88-
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
89-
docker build --no-cache -t ${{ secrets.DOCKER_USERNAME }}/moing:green .
90-
docker build --no-cache -t ${{ secrets.DOCKER_USERNAME }}/moing:blue .
91-
docker push ${{ secrets.DOCKER_USERNAME }}/moing:green
92-
docker push ${{ secrets.DOCKER_USERNAME }}/moing:blue
93-
94-
# EC2로 deploy.sh 전송
95-
- name: Deploy deploy.sh to EC2
96-
uses: appleboy/scp-action@master
97-
with:
98-
host: ${{ secrets.EC2_SERVER_HOST }}
99-
username: ec2-user
100-
key: ${{ secrets.PRIVATE_KEY }}
101-
source: "./deploy.sh"
102-
target: "/home/ec2-user/"
103-
104-
# 배포 스크립트 실행
105-
- name: Deploy on EC2
106-
uses: appleboy/ssh-action@master
107-
with:
108-
host: ${{ secrets.EC2_SERVER_HOST }}
109-
username: ec2-user
110-
key: ${{ secrets.PRIVATE_KEY }}
111-
envs: GITHUB_SHA
112-
script: |
113-
chmod +x /home/ec2-user/deploy.sh
114-
/home/ec2-user/deploy.sh
1+
#name: CI/CD
2+
#
3+
#on:
4+
# push:
5+
# branches: [ "main" ]
6+
#
7+
#permissions:
8+
# contents: read
9+
#
10+
#jobs:
11+
# build:
12+
# runs-on: ubuntu-latest
13+
# env:
14+
# working-directory: ./
15+
# APPLICATION: ${{ secrets.APPLICATION }}
16+
# GOOGLE_APPLICATION_CREDENTIALS: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}
17+
# APPLE_KEY: ${{ secrets.APPLE_KEY }}
18+
#
19+
# steps:
20+
# # 소스 코드 체크아웃
21+
# - uses: actions/checkout@v2
22+
#
23+
# # JDK 11 설정
24+
# - name: Set up JDK 11
25+
# uses: actions/setup-java@v2
26+
# with:
27+
# java-version: '11'
28+
# distribution: 'adopt'
29+
#
30+
# # Gradle 패키지 캐시
31+
# - name: Cache Gradle packages
32+
# uses: actions/cache@v2
33+
# with:
34+
# path: |
35+
# ~/.gradle/caches
36+
# ~/.gradle/wrapper
37+
# key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
38+
# restore-keys: |
39+
# ${{ runner.os }}-gradle-
40+
#
41+
# # 설정 파일 생성
42+
# - run: |
43+
# mkdir ./src/main/resources
44+
# cd ./src/main/resources
45+
# touch ./application.yml
46+
# echo "${{env.APPLICATION}}" > ./application.yml
47+
# touch ./firebase-key.json
48+
# echo "${{env.GOOGLE_APPLICATION_CREDENTIALS}}" | base64 --decode > ./firebase-key.json
49+
# touch ./apple-key.p8
50+
# echo "${{env.APPLE_KEY}}" > ./apple-key.p8
51+
#
52+
# # 설정 파일을 작업공간에 저장
53+
# - uses: actions/upload-artifact@v2
54+
# with:
55+
# name: application.yml
56+
# path: ./src/main/resources/application.yml
57+
#
58+
# - uses: actions/upload-artifact@v2
59+
# with:
60+
# name: firebase-key.json
61+
# path: ./src/main/resources/firebase-key.json
62+
#
63+
# - uses: actions/upload-artifact@v2
64+
# with:
65+
# name: apple-key.p8
66+
# path: ./src/main/resources/apple-key.p8
67+
#
68+
# # gradlew 권한 설정
69+
# - name: Grant execute permission for gradlew
70+
# run: chmod +x gradlew
71+
# working-directory: ${{ env.working-directory }}
72+
#
73+
# # Gradle로 빌드
74+
# - name: Build with Gradle
75+
# run: ./gradlew build
76+
# working-directory: ${{ env.working-directory }}
77+
#
78+
# # Gradle 캐시 정리
79+
# - name: Cleanup Gradle Cache
80+
# if: ${{ always() }}
81+
# run: |
82+
# rm -f ~/.gradle/caches/modules-2/modules-2.lock
83+
# rm -f ~/.gradle/caches/modules-2/gc.properties
84+
#
85+
# # Docker 이미지 빌드 및 푸시
86+
# - name: Docker build
87+
# run: |
88+
# docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
89+
# docker build --no-cache -t ${{ secrets.DOCKER_USERNAME }}/moing:green .
90+
# docker build --no-cache -t ${{ secrets.DOCKER_USERNAME }}/moing:blue .
91+
# docker push ${{ secrets.DOCKER_USERNAME }}/moing:green
92+
# docker push ${{ secrets.DOCKER_USERNAME }}/moing:blue
93+
#
94+
# # EC2로 deploy.sh 전송
95+
# - name: Deploy deploy.sh to EC2
96+
# uses: appleboy/scp-action@master
97+
# with:
98+
# host: ${{ secrets.EC2_SERVER_HOST }}
99+
# username: ec2-user
100+
# key: ${{ secrets.PRIVATE_KEY }}
101+
# source: "./deploy.sh"
102+
# target: "/home/ec2-user/"
103+
#
104+
# # 배포 스크립트 실행
105+
# - name: Deploy on EC2
106+
# uses: appleboy/ssh-action@master
107+
# with:
108+
# host: ${{ secrets.EC2_SERVER_HOST }}
109+
# username: ec2-user
110+
# key: ${{ secrets.PRIVATE_KEY }}
111+
# envs: GITHUB_SHA
112+
# script: |
113+
# chmod +x /home/ec2-user/deploy.sh
114+
# /home/ec2-user/deploy.sh

src/docs/asciidoc/Overview.adoc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,10 @@
103103
| 소모임을 가입할 때
104104
| 소모임을 이미 가입함
105105

106+
| `T0005`
107+
| 소모임을 가입할 때
108+
| 소모임이 삭제됨
109+
106110
|===
107111

108112
=== MyPage ErrorCode

src/main/java/com/moing/backend/domain/team/application/service/SignInTeamUseCase.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.moing.backend.domain.team.application.dto.response.CreateTeamResponse;
66
import com.moing.backend.domain.team.domain.entity.Team;
77
import com.moing.backend.domain.team.domain.service.TeamGetService;
8+
import com.moing.backend.domain.team.exception.DeletedTeamException;
89
import com.moing.backend.domain.teamMember.domain.service.TeamMemberSaveService;
910
import lombok.RequiredArgsConstructor;
1011
import org.springframework.stereotype.Service;
@@ -25,4 +26,5 @@ public CreateTeamResponse signInTeam(String socialId, Long teamId){
2526
teamMemberSaveService.addTeamMember(team, member);
2627
return new CreateTeamResponse(team.getTeamId());
2728
}
29+
2830
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.moing.backend.domain.team.exception;
2+
3+
import com.moing.backend.global.response.ErrorCode;
4+
import org.springframework.http.HttpStatus;
5+
6+
public class DeletedTeamException extends TeamException{
7+
public DeletedTeamException(){
8+
super(ErrorCode.DELETED_TEAM_ERROR,
9+
HttpStatus.NOT_FOUND);
10+
}
11+
}

src/main/java/com/moing/backend/domain/teamMember/domain/service/TeamMemberSaveService.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.moing.backend.domain.team.domain.entity.Team;
55
import com.moing.backend.domain.team.exception.AlreadyJoinTeamException;
66
import com.moing.backend.domain.team.exception.AlreadyWithdrawTeamException;
7+
import com.moing.backend.domain.team.exception.DeletedTeamException;
78
import com.moing.backend.domain.teamMember.domain.entity.TeamMember;
89
import com.moing.backend.domain.teamMember.domain.repository.TeamMemberRepository;
910
import com.moing.backend.global.annotation.DomainService;
@@ -20,6 +21,8 @@ public class TeamMemberSaveService {
2021
public void addTeamMember(Team team, Member member) {
2122
Optional<TeamMember> teamMember = teamMemberRepository.findTeamMemberByTeamAndMember(team, member);
2223

24+
checkDeletion(team);
25+
2326
if (teamMember.isPresent()) {
2427
handleExistingMember(teamMember.get());
2528
} else {
@@ -43,4 +46,9 @@ private void addNewTeamMember(Team team, Member member) {
4346
this.teamMemberRepository.save(newMember);
4447
}
4548

49+
private void checkDeletion(Team team){
50+
if(team.isDeleted())
51+
throw new DeletedTeamException();
52+
}
53+
4654
}

src/main/java/com/moing/backend/global/response/ErrorCode.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ public enum ErrorCode {
4646
NOT_AUTH_BY_TEAM_ERROR("T0002","권한이 없습니다."),
4747
ALREADY_WITHDRAW_ERROR("T0003","이미 탈퇴한 회원입니다."),
4848
ALREADY_JOIN_ERROR("T0004","이미 가입한 회원입니다."),
49+
DELETED_TEAM_ERROR("T0005", "삭제된 소모임입니다."),
4950

5051
//마이페이지 관련 에러 코드
5152
INVALID_ALARM_ERROR("MP0001","유효하지 않는 알람 입력값입니다"),

0 commit comments

Comments
 (0)