Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
519 commits
Select commit Hold shift + click to select a range
1289c4d
mod: filUrl 필드 추가
0237hh Oct 3, 2024
4f006af
add: fileService 클래스 생성
0237hh Oct 3, 2024
338985c
feat: 파일 삭제 메서드 구현
0237hh Oct 3, 2024
0e3670a
feat: 파일 다운로드 메서드 구현
0237hh Oct 3, 2024
a0e1e79
mod: fileUrl 필드 추가
0237hh Oct 3, 2024
b2532bf
mod: ChatController 수정
0237hh Oct 3, 2024
9a7abbb
feat: 질문게시판 파일업로드 기능 구현
wnsgud0310 Oct 4, 2024
71c2cb5
mod: QuestionService 클래스 수정
wnsgud0310 Oct 4, 2024
146a3ae
refact: 보기 쉽게 위치 변경
wive10 Oct 12, 2024
159d7cf
rename: StudyPageDto -> StudyPageCreateDto
wive10 Oct 12, 2024
eb6febd
add: read
wive10 Oct 12, 2024
add7ae3
add: update
wive10 Oct 12, 2024
f817923
add: delete
wive10 Oct 12, 2024
a441f69
Merge branch 'develop' into feature/22
wive10 Oct 18, 2024
21dcbe6
mod: 회원정보수정 구현
DDDDiong Oct 18, 2024
0006fc7
mod: 개인정보 및 회원 정보 수정기능 구현
DDDDiong Oct 18, 2024
9bdaec9
mod: security에 맞게 유저 받는 방식 변경
kimmin1kk Oct 20, 2024
3d1d4fa
mod: QnaBoardController 코드 수정
wnsgud0310 Oct 20, 2024
ba0cd60
feat: 예외 핸들링 구현
yejeii Oct 20, 2024
9f5c318
feat: Notification 구현
yejeii Oct 20, 2024
4dc25c6
remove: 더미 sql 제거
yejeii Oct 20, 2024
a1b8494
add: DTO 생성
yejeii Oct 20, 2024
6621428
mod: record 클래스로 수정
yejeii Oct 20, 2024
c90381a
mod: Entity 수정
yejeii Oct 20, 2024
608273b
mod: redis properties
wive10 Oct 20, 2024
34b679f
mod: verifyTeamName 리턴형식 수정
yejeii Oct 20, 2024
54f3b06
mod: user repository 리젝트
wive10 Oct 20, 2024
d9740c6
mod: Iterable -> List
wive10 Oct 20, 2024
a2fe642
mod: 일단 권한 애
wive10 Oct 20, 2024
7b7f72d
mod: 기능 수정
wive10 Oct 20, 2024
1bd5081
feat: 팀스페이스 유저 조회, 권한 구현
yejeii Oct 20, 2024
0ddec7d
mod: 컨트롤러 api 수정
yejeii Oct 20, 2024
be5cb84
mod: 주석 제거
wive10 Oct 20, 2024
21045bf
mod: Entity 수정
0237hh Oct 20, 2024
8ed969a
feat: 유저 조회 구현
yejeii Oct 20, 2024
4893460
mod: import 문 삭제 수정
yejeii Oct 20, 2024
472e228
mod: BookQnaBoard 엔티티 수정
wnsgud0310 Oct 20, 2024
99c398f
refact: api 경로 변경
wive10 Oct 20, 2024
b0a66ef
mod: DTO 형식 수정
yejeii Oct 20, 2024
f7a3cf2
remove: node-module 파일 제거
DDDDiong Oct 20, 2024
d5aed0c
remove: log4j2 설정 파일 제거
yejeii Oct 20, 2024
38bf23a
test: 코드 수정에 따른 테스트케이스 변경
kimmin1kk Oct 20, 2024
3777a6b
mod: 테스트용 출력문 제거
kimmin1kk Oct 20, 2024
0ec2658
mod: api 작성법 수정
yejeii Oct 20, 2024
9282be6
chore: log4j2 의존성 삭제
yejeii Oct 20, 2024
4f6247c
mod: api 경로 다시 변경
wive10 Oct 20, 2024
1f7f0c1
Merge pull request #29 from SmashStudy/feature/13
kimmin1kk Oct 20, 2024
ed66a85
Merge pull request #30 from SmashStudy/feature/28
kimmin1kk Oct 20, 2024
3353a02
mod: 엔터티 이름 수정
0237hh Oct 20, 2024
857b6bf
Merge pull request #25 from SmashStudy/feature/22
kimmin1kk Oct 20, 2024
7f6ab14
Merge pull request #26 from SmashStudy/feature/24
kimmin1kk Oct 20, 2024
82f4a09
add: QnaRequestDTO 레코드 추가
wnsgud0310 Oct 20, 2024
070e832
Merge branch 'develop' of https://github.com/SmashStudy/ESquad-BE int…
yejeii Oct 20, 2024
379af8c
mod: User 엔티티 및 레파지토리 수정
yejeii Oct 20, 2024
77575d5
refactor: 질문게시판 클래스 리팩토링
wnsgud0310 Oct 20, 2024
5cf536e
mod: testcase 수정
yejeii Oct 20, 2024
a29fda6
Merge pull request #31 from SmashStudy/feature/9
kimmin1kk Oct 20, 2024
4fe2f30
refactor: QnaBoard 리팩토링
wnsgud0310 Oct 20, 2024
dd618f0
mod: 테스트 코드 수정
wnsgud0310 Oct 20, 2024
1194271
mod: User 엔터티 변수 수정
yejeii Oct 20, 2024
b4bb870
Merge branch 'develop' of https://github.com/SmashStudy/ESquad-BE int…
wnsgud0310 Oct 20, 2024
87d39b2
mod: S3 관련 주석
yejeii Oct 20, 2024
1ee609a
mod: fromEntity() 수정
yejeii Oct 20, 2024
7b83f38
mod: mappedBy 데이터 수정
yejeii Oct 20, 2024
947d5cb
remove: UserSerivceImpl 및 관련 테스트 케이스 제거
yejeii Oct 20, 2024
f783a24
Merge pull request #38 from SmashStudy/fix/37
kimmin1kk Oct 20, 2024
dddd658
feat: 파일 분류 기능 추가 (버킷에 폴더별 분기 나뉨)
kimmin1kk Oct 20, 2024
ebfed55
mod: QuestionService 클래스 수정
wnsgud0310 Oct 21, 2024
19d9d9a
mod: QuestionResponseDTO 수정
wnsgud0310 Oct 21, 2024
cb90a4c
Merge branch 'develop' of https://github.com/SmashStudy/ESquad-BE int…
wnsgud0310 Oct 21, 2024
d31de10
remove: QnaBoardRequestsDTO 제거
wnsgud0310 Oct 21, 2024
cedae0d
test: study page CRUD 단위테스트 작성
wive10 Oct 21, 2024
a787bcc
Merge pull request #23 from SmashStudy/feature/16
kimmin1kk Oct 21, 2024
4ad55fc
Merge branch 'develop' of https://github.com/SmashStudy/ESquad-BE int…
kimmin1kk Oct 21, 2024
c298124
mod: PagingInfoDTO 수정
wnsgud0310 Oct 21, 2024
1477e43
remove: .DS_Store 파일 삭제
DDDDiong Oct 21, 2024
78f5f1d
Merge branch 'feature/22' of https://github.com/SmashStudy/ESquad-BE …
wive10 Oct 21, 2024
6863aa5
Merge branch 'develop' of https://github.com/SmashStudy/ESquad-BE int…
yejeii Oct 21, 2024
43dc91d
mod: 예외 처리 클래스 수정
yejeii Oct 21, 2024
159a422
remove: 사용자 정의 예외 클래스 삭제
yejeii Oct 21, 2024
8c5f6d7
add: Team 예외 클래스 생성
yejeii Oct 21, 2024
d827c1f
add: 유저 예외 클래스 생성
yejeii Oct 21, 2024
8cc3435
add: api 예외 처리 클래스 생성
yejeii Oct 21, 2024
20ba7cf
mod: 에러 코드 형식 수정
yejeii Oct 21, 2024
71f3b7d
Merge pull request #40 from SmashStudy/feature/33
kimmin1kk Oct 21, 2024
52222b7
Merge branch 'develop' of https://github.com/SmashStudy/ESquad-BE int…
kimmin1kk Oct 21, 2024
47440c6
mod: 사라진 base exception class 삭제
kimmin1kk Oct 21, 2024
54b322c
Merge branch 'develop' of https://github.com/SmashStudy/ESquad-BE int…
kimmin1kk Oct 21, 2024
f68b061
mod: 예외 처리 수정
yejeii Oct 21, 2024
ff539f8
mod: 예외 처리 수정
yejeii Oct 21, 2024
3932844
Merge pull request #42 from SmashStudy/fix/41
kimmin1kk Oct 21, 2024
9029907
Merge branch 'develop' of https://github.com/SmashStudy/ESquad-BE int…
kimmin1kk Oct 21, 2024
f896b25
Merge branch 'develop' of https://github.com/SmashStudy/ESquad-BE int…
DDDDiong Oct 21, 2024
dfe8f6c
refactor: 예외 처리 패키지 리팩토링
yejeii Oct 21, 2024
aa7391d
Merge pull request #45 from SmashStudy/refactor/44
kimmin1kk Oct 21, 2024
7aeff80
Merge branch 'develop' of https://github.com/SmashStudy/ESquad-BE int…
kimmin1kk Oct 21, 2024
432979b
remove: 파일 삭제
DDDDiong Oct 22, 2024
0c4e71b
Merge branch 'develop' of https://github.com/SmashStudy/ESquad-BE int…
wive10 Oct 22, 2024
bf5afbb
mod: 예외처리 코드 수정
DDDDiong Oct 22, 2024
fabe2d4
feat: 아이디/비밀번호 찾기 기능 구현
DDDDiong Oct 22, 2024
b186fa6
mod: 예외처리 코드 수정
DDDDiong Oct 22, 2024
74e357d
chore: smtp 빌드 설정
DDDDiong Oct 22, 2024
43bc704
mod: mvc 추상화에 따른 코드 수정
DDDDiong Oct 22, 2024
296ba03
chore: .DS_Store gitignore 설정
DDDDiong Oct 22, 2024
58a3948
mod: DTO valid 수정
yejeii Oct 22, 2024
6d93dcb
chore: build.gradle 중복되는 implementation 제거
kimmin1kk Oct 22, 2024
0581be4
Merge branch 'develop' of https://github.com/SmashStudy/ESquad-BE int…
DDDDiong Oct 22, 2024
03a3c75
mod: 예외처리 코드 수정
DDDDiong Oct 22, 2024
cde09d7
remove: 파일 삭제
DDDDiong Oct 22, 2024
35cd850
mod: 파라미터 수정
yejeii Oct 22, 2024
7f33f16
feat: 스토리지 서비스 커스텀 예외 추가 및 핸들러 등록
kimmin1kk Oct 22, 2024
06172a2
Merge pull request #47 from SmashStudy/fix/46
kimmin1kk Oct 22, 2024
51d63a2
Merge branch 'develop' of https://github.com/SmashStudy/ESquad-BE int…
kimmin1kk Oct 22, 2024
2da3210
Merge branch 'develop' of https://github.com/SmashStudy/ESquad-BE int…
wive10 Oct 22, 2024
4fbb1c1
chore: develop 브랜치 merge 웹훅 추가
kimmin1kk Oct 22, 2024
a659b3f
mod: 무의미한 주석 제거
kimmin1kk Oct 22, 2024
2e0cf1d
mod: 이전 merge 반영해 handler 코드 수정
kimmin1kk Oct 22, 2024
d9e40ce
Merge pull request #48 from SmashStudy/refactor/32
yejeii Oct 22, 2024
d1e0cc7
Merge branch 'develop' of https://github.com/SmashStudy/ESquad-BE int…
DDDDiong Oct 22, 2024
5d34bfa
Merge branch 'develop' of https://github.com/SmashStudy/ESquad-BE int…
wive10 Oct 22, 2024
fa2495e
test: 테스트 코드 추가
0237hh Oct 22, 2024
6a0f55c
add: 예외 처리 클래스 추가.
0237hh Oct 22, 2024
541d247
fix: 예외처리 변경사항을 적용하지 않아 테스트에서 실패하던 버그 해결
kimmin1kk Oct 22, 2024
3245bcb
Merge pull request #50 from SmashStudy/fix/32
kimmin1kk Oct 22, 2024
bb6e380
Merge branch 'develop' of github.com:SmashStudy/ESquad-BE into featur…
0237hh Oct 22, 2024
48cf646
Merge branch 'develop' of https://github.com/SmashStudy/ESquad-BE int…
DDDDiong Oct 22, 2024
7afde53
Merge branch 'feature/5' of https://github.com/SmashStudy/ESquad-BE i…
wnsgud0310 Oct 22, 2024
11edd57
mod: qnaboard Exception 파일 경로 수정
wnsgud0310 Oct 22, 2024
fcdb87d
mod: BookQnaLike 클래스 수정
wnsgud0310 Oct 22, 2024
af54a4a
mod: CommentService 클래스 수정
wnsgud0310 Oct 22, 2024
8d0eee2
mod: QnaBoardController 수정
wnsgud0310 Oct 22, 2024
b107cac
mod: QuestionService 클래스 수정
wnsgud0310 Oct 22, 2024
18ebb99
pull: pull받음
wive10 Oct 22, 2024
4a817a8
fix: validation annotation 추가
wive10 Oct 22, 2024
f73f5db
fix: validation 검증 추가
wive10 Oct 22, 2024
c68446e
remove: 파일 삭제
DDDDiong Oct 22, 2024
9d38e0c
test: 테스트 코드 추가 후 테스트
DDDDiong Oct 22, 2024
1fc6685
remove: BookQnaLikeRepository 제거
wnsgud0310 Oct 22, 2024
7a86219
mod: BookQnaReply 엔티티 수정
wnsgud0310 Oct 22, 2024
6e56822
mod: CommentController 수정
wnsgud0310 Oct 22, 2024
746b27d
remove: CommentLikeRepository 제거
wnsgud0310 Oct 22, 2024
9d7d28a
mod: CommentService 클래스 수정
wnsgud0310 Oct 22, 2024
4f1a009
add: LikeRepository 생성
wnsgud0310 Oct 22, 2024
6c587fc
mod: QnaBoardController 수정
wnsgud0310 Oct 22, 2024
3429c5c
add: QnaLikeController 생성
wnsgud0310 Oct 22, 2024
9e0a6ff
add: QnaLikeService 생성
wnsgud0310 Oct 22, 2024
780f2f0
mod: QuestionService 수정
wnsgud0310 Oct 22, 2024
027d61c
mod: QnaLikeController 수정
wnsgud0310 Oct 22, 2024
1ffb549
add: CommentLikeRepository 생성
wnsgud0310 Oct 22, 2024
9668edb
add: 예외 처리 클래스 추가.
0237hh Oct 22, 2024
c140a87
mod: BookQnaReplyLike 수정
wnsgud0310 Oct 22, 2024
180def0
add: CommentLikeService 생성
wnsgud0310 Oct 22, 2024
072b15f
add: CommentLikeController 생성
wnsgud0310 Oct 22, 2024
d5267e5
mod: CommentRepository 수정
wnsgud0310 Oct 22, 2024
cb4e27e
rename: Qna->Question 클래스명 수정
wnsgud0310 Oct 22, 2024
9827278
mod: findAll 코드 삭제
DDDDiong Oct 22, 2024
c3c58f9
rename: smtp 폴더명 수정
DDDDiong Oct 22, 2024
7c8779f
mod: 파일 위치 변경에 따른 import 수정
DDDDiong Oct 22, 2024
9f8faf5
mod: 사용하지 않은 import 주석 제거
DDDDiong Oct 22, 2024
b9513a0
fix: Dto에 to, from 함수 추가
wive10 Oct 22, 2024
8bb0342
feat: 유저 예외처리 구현
DDDDiong Oct 22, 2024
748aa93
mod: 유저 예외처리 수정
DDDDiong Oct 22, 2024
ca7dab2
mod: smtp 예외처리 수정
DDDDiong Oct 22, 2024
7f47e8e
mod: 메서드 명 수정
DDDDiong Oct 22, 2024
0248050
add: 예외 처리 클래스 추가.
0237hh Oct 22, 2024
65cf892
Merge pull request #52 from SmashStudy/feature/34
kimmin1kk Oct 22, 2024
2e657f3
Merge branch 'develop' of github.com:SmashStudy/ESquad-BE into featur…
0237hh Oct 22, 2024
86bbaf4
fix: Exception AOP 생성
wive10 Oct 22, 2024
c229895
fix: Dto to, from 적용 및 Exception AOP 적용
wive10 Oct 22, 2024
882fc84
mod: ExceptionHandlerAdvice 예외 처리 수정
0237hh Oct 22, 2024
fd18a79
fix: Exception AOP 적용 및 수정
wive10 Oct 22, 2024
3e2fd94
Merge pull request #49 from SmashStudy/feature/35
kimmin1kk Oct 22, 2024
c2e30ad
Merge branch 'feature/5' of https://github.com/SmashStudy/ESquad-BE i…
wnsgud0310 Oct 22, 2024
e4eb8eb
Merge branch 'develop' of https://github.com/SmashStudy/ESquad-BE int…
wive10 Oct 22, 2024
13d1a21
mod: QnaBoardController 수정
wnsgud0310 Oct 22, 2024
9e3de6c
mod: QnaRequestDTO 수정
wnsgud0310 Oct 22, 2024
582a067
mod: QuestionService 수정
wnsgud0310 Oct 22, 2024
efc544d
mod: QnaBoardResponseDTO 수정
wnsgud0310 Oct 22, 2024
f2a6edb
remove: Exception 예외 클래스 제거
wnsgud0310 Oct 22, 2024
46be736
test: UserUpdateTest 수정후 테스트
wnsgud0310 Oct 22, 2024
119ba7d
mod: QnaBoardController 수정
wnsgud0310 Oct 22, 2024
37abbb1
mod: QuestionService 수정
wnsgud0310 Oct 22, 2024
02f4edb
test: QuestionServiceTest 수정후 테스트
wnsgud0310 Oct 22, 2024
5a90b2a
refactor: QnaLikeController 좋아요 로직 리팩토링
wnsgud0310 Oct 22, 2024
206d8ba
mod: QnaBoardController 수정
wnsgud0310 Oct 22, 2024
3c9b7f0
mod: CommentLikeService 주석 제거
wnsgud0310 Oct 22, 2024
f02fb31
mod: 게시판 서비스 코드 주석 제거
wnsgud0310 Oct 22, 2024
d9b295f
mod: QuestionService 수정
wnsgud0310 Oct 22, 2024
4cf1aa0
mod: QuestionService 수정
wnsgud0310 Oct 22, 2024
f11d5a7
mod: QnaBoardResponseDTO 수정
wnsgud0310 Oct 22, 2024
601a0c8
mod: QuestionService 수정
wnsgud0310 Oct 22, 2024
8bbe970
mod: CommentLikeService 수정
wnsgud0310 Oct 23, 2024
50221d5
mod: QnaBoardController 수정
wnsgud0310 Oct 23, 2024
af907c4
mod: QuestionService 수정
wnsgud0310 Oct 23, 2024
556e17c
mod: QnaRequestDTO 수정
wnsgud0310 Oct 23, 2024
81f43ee
mod: QuestionService 수정
wnsgud0310 Oct 23, 2024
c21aa82
test: QuestionServiceTest 수정후 테스트
wnsgud0310 Oct 23, 2024
1e6c157
mod: QnaRequestDTO 수정
wnsgud0310 Oct 23, 2024
97facc0
mod: QnaRequestDTO 수정
wnsgud0310 Oct 23, 2024
70a4fc2
mod: QnaBoardController 수정
wnsgud0310 Oct 23, 2024
3f0c438
mod: QuestionService 수정
wnsgud0310 Oct 23, 2024
6209eee
test: QuestionServiceTest 테스트
wnsgud0310 Oct 23, 2024
f9c80e0
mod: QnaBoardController 수정
wnsgud0310 Oct 23, 2024
8653b8e
mod: QnaBoardController 수정
wnsgud0310 Oct 23, 2024
e8ef712
mod: QnaBoardController 수정
wnsgud0310 Oct 24, 2024
c8907f0
mod: QuestionService 수정
wnsgud0310 Oct 24, 2024
ebe07c5
add: BookNotFoundException 예외클래스 생성
wnsgud0310 Oct 24, 2024
52c0c2a
add: QnaErrorCode 질문 게시판 예외 클래스 생성
wnsgud0310 Oct 24, 2024
1fc68fd
add: QuestionNotFoundException 예외 클래스 생성
wnsgud0310 Oct 24, 2024
e9965fb
test: 질문게시판 테스트 수정 후 테스트
wnsgud0310 Oct 24, 2024
47225d8
mod: QuestionService 수정
wnsgud0310 Oct 24, 2024
1ce5671
remove: 안쓰는 예외클래스 제거
wnsgud0310 Oct 24, 2024
e7b5aa7
mod: QnaErrorCode 수정
wnsgud0310 Oct 24, 2024
648489d
add: CommentNotFoundException 생성
wnsgud0310 Oct 24, 2024
aa3ce60
test: QuestionServiceTest 수정 후 테스트
wnsgud0310 Oct 24, 2024
2d66a15
mod: CommentDTO 수정
wnsgud0310 Oct 24, 2024
758538a
remove: CommentDTO 제거
wnsgud0310 Oct 24, 2024
4c5569a
add: CommentRequestDTO 생성
wnsgud0310 Oct 24, 2024
057e377
add: CommentResponseDTO 생성
wnsgud0310 Oct 24, 2024
eb59d0f
mod: CommentNotFoundException 수정
wnsgud0310 Oct 24, 2024
5c46772
mod: CommentController 수정
wnsgud0310 Oct 24, 2024
b3927d9
mod: CommentController 수정
wnsgud0310 Oct 24, 2024
f69af31
mod: CommentRepository 수정
wnsgud0310 Oct 24, 2024
7730223
mod: CommentRequestDTO 수정
wnsgud0310 Oct 24, 2024
521a7a7
mod: CommentService 수정
wnsgud0310 Oct 24, 2024
946c937
test: CommentServiceTest 수정후 테스트
wnsgud0310 Oct 24, 2024
a2ce570
remove: 게시판 좋아요 관련 클래스 제거
wnsgud0310 Oct 24, 2024
e53570c
remove: 게시판 좋아요 관련 클래스 제거
wnsgud0310 Oct 24, 2024
936fb07
Merge branch 'refactor/39' of https://github.com/SmashStudy/ESquad-BE…
wnsgud0310 Oct 24, 2024
651e076
Merge pull request #53 from SmashStudy/refactor/39
kimmin1kk Oct 24, 2024
fb35bfd
fix: Error Code 수정
wive10 Oct 24, 2024
8d8c20f
fix: 예외 처리 적용
wive10 Oct 24, 2024
fb0006f
remove: 불필요한 레포지토리 삭제
wive10 Oct 24, 2024
4bdfdac
fix: 바뀐 예외에 따라 바뀐 테스트 코드
wive10 Oct 24, 2024
3e6d790
Merge branch 'develop' of https://github.com/SmashStudy/ESquad-BE int…
wive10 Oct 24, 2024
61ff16a
fix: 주석 삭제
wive10 Oct 25, 2024
ddce011
fix: front와의 통신에서 수정할 점 보안
wive10 Oct 29, 2024
cdf33f9
remove: 주석 및 로그
wive10 Oct 30, 2024
56c2584
refact: BookCreateException 생성
wive10 Oct 31, 2024
1607151
Merge pull request #54 from SmashStudy/feature/36
kimmin1kk Oct 31, 2024
e34b4c7
mod: 팀 DTO 수정
yejeii Oct 31, 2024
d33369a
add: 팀과 관련된 유저 DTO 생성
yejeii Oct 31, 2024
983cacb
mod: 컨트롤러 파라미터 수정
yejeii Oct 31, 2024
6906b79
mod: 팀 서비스 수정
yejeii Oct 31, 2024
71c90f9
add: 팀유저 서비스 생성
yejeii Oct 31, 2024
5dc3039
:wq
yejeii Oct 31, 2024
e06b47e
mod: 사용하지 않는 impot 삭제 수정
yejeii Oct 31, 2024
02e93e7
mod: 의미없는 주석 삭제
yejeii Oct 31, 2024
f156430
mod: String 형 변수 수정
yejeii Oct 31, 2024
d6e357a
Merge pull request #56 from SmashStudy/feature/43
kimmin1kk Nov 1, 2024
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
17 changes: 17 additions & 0 deletions .github/workflows/merge-stage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Merge Webhook Alert

on:
pull_request:
types: [closed]

jobs:
deploy:
if: github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'develop'
runs-on: ubuntu-latest
steps:
- name: Discord에 메시지 보내기 (develop 브랜치로 merge 됐을 때)
run: |
curl -X POST \
-H "Content-Type: application/json" \
-d "{\"content\": \":tada: '${{ github.event.pull_request.head.ref }}' 브랜치에서 develop 브랜치로 성공적으로 PR이 머지되었습니다!\n\n:bust_in_silhouette: 브랜치 작성자: ${{ github.event.pull_request.user.login }}\n:busts_in_silhouette: 머지한 사람: ${{ github.actor }}\n\n팀원 분들은 전부 Pull 받으세요~!!!\n```git pull origin develop```\"}" \
${{secrets.DISCORD_WEBHOOK_MERGE_URL}}
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,9 @@ out/

### custom ###
src/main/resources/application.yml
src/main/resources/samples/qna.sql
src/main/resources/samples/user.sql
src/main/resources/fb.json

### Mac Os ###
.DS_Store
45 changes: 42 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,62 @@ configurations {
}

repositories {
google()
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-mail'
testImplementation 'org.springframework.security:spring-security-test'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'io.springfox:springfox-swagger-ui:3.0.0'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'

compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'com.mysql:mysql-connector-j'

annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
annotationProcessor 'org.projectlombok:lombok'

testImplementation 'org.springframework.security:spring-security-test'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
implementation 'io.springfox:springfox-swagger-ui:3.0.0'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'

// firebase
implementation 'com.google.firebase:firebase-admin:9.2.0'
implementation 'com.google.firebase:firebase-database:20.1.0'

// aws
implementation platform('io.awspring.cloud:spring-cloud-aws-dependencies:3.1.1')
implementation("io.awspring.cloud:spring-cloud-aws-starter-s3:3.1.1")

// jwt
implementation 'io.jsonwebtoken:jjwt-api:0.11.5'
implementation 'io.jsonwebtoken:jjwt-impl:0.11.5'
implementation 'io.jsonwebtoken:jjwt-jackson:0.11.5'

// gson
implementation group: 'com.google.code.gson', name: 'gson', version: '2.8.9'

// UUID
implementation "com.fasterxml.uuid:java-uuid-generator:4.0.1"

// redis
implementation 'org.springframework.boot:spring-boot-starter-data-redis'

}

tasks.named('test') {

test {
useJUnitPlatform()
}

compileJava {
options.compilerArgs << '-parameters'
}
Empty file modified gradlew
100755 → 100644
Empty file.
5 changes: 4 additions & 1 deletion src/main/java/com/esquad/esquadbe/EsquadBeApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;

@SpringBootApplication
@SpringBootApplication(exclude = SecurityAutoConfiguration.class)
@EnableJpaAuditing
public class EsquadBeApplication {

public static void main(String[] args) {
Expand Down
13 changes: 0 additions & 13 deletions src/main/java/com/esquad/esquadbe/QuestionController.java

This file was deleted.

4 changes: 0 additions & 4 deletions src/main/java/com/esquad/esquadbe/UserController.java

This file was deleted.

168 changes: 168 additions & 0 deletions src/main/java/com/esquad/esquadbe/chat/controller/ChatController.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
package com.esquad.esquadbe.chat.controller;

import com.esquad.esquadbe.chat.dto.ChatEditMessage;
import com.esquad.esquadbe.chat.dto.ChatMessage;
import com.esquad.esquadbe.chat.exception.ChatAccessException;
import com.esquad.esquadbe.chat.exception.ChatException;
import com.esquad.esquadbe.chat.service.FirebaseService;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.ValueEventListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.security.Principal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;

@RestController
@RequestMapping("/api/chat")
public class ChatController {
@Autowired
private FirebaseService firebaseService;

@PostMapping("/send")
public ResponseEntity<Map<String, String>> sendMessage(@RequestBody ChatMessage chatMsg) {
Map<String, String> response = new HashMap<>();
try {
DatabaseReference roomRef = firebaseService.getReference("MESSAGES/" + chatMsg.getRoomId());
DatabaseReference messageRef = roomRef.push();
String newMessageId = messageRef.getKey();
chatMsg.setMessageId(newMessageId);

CompletableFuture<Void> future = new CompletableFuture<>();
messageRef.setValue(chatMsg, (error, ref) -> {
if (error != null) {
response.put("status", "error");
response.put("message", error.getMessage());
future.completeExceptionally(error.toException());
} else {
response.put("status", "success");
response.put("messageId", newMessageId);
future.complete(null);
}
});
future.join();
return ResponseEntity.ok(response);
} catch (Exception e) {
throw new ChatException();
}
}

@GetMapping("/messages/{roomId}")
public CompletableFuture<ResponseEntity<Map<String, Object>>> getMessages(@PathVariable String roomId) {
Map<String, Object> response = new HashMap<>();
CompletableFuture<ResponseEntity<Map<String, Object>>> futureResponse = new CompletableFuture<>();

DatabaseReference messagesRef = firebaseService.getReference("MESSAGES/" + roomId);
messagesRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<Map<String, Object>> messages = new ArrayList<>();
if (dataSnapshot.exists()) {
for (DataSnapshot child : dataSnapshot.getChildren()) {
Map<String, Object> message = (Map<String, Object>) child.getValue();
if (message != null) {
message.put("id", child.getKey());
messages.add(message);
}
}
response.put("messages", messages);
response.put("status", "success");
} else {
response.put("messages", new ArrayList<>());
response.put("status", "success");
}
futureResponse.complete(ResponseEntity.ok(response));
}

@Override
public void onCancelled(DatabaseError databaseError) {
throw new ChatException();
}
});
return futureResponse;
}

@PutMapping("/{roomId}/{messageId}")
public CompletableFuture<ResponseEntity<Map<String, String>>> updateMessage(
@PathVariable String roomId,
@PathVariable String messageId,
@RequestBody ChatEditMessage request,
Principal principal) {

Map<String, String> response = new HashMap<>();
CompletableFuture<ResponseEntity<Map<String, String>>> futureResponse = new CompletableFuture<>();

DatabaseReference messageRef = firebaseService.getReference("MESSAGES/" + roomId + "/" + messageId);
String userId = principal.getName();

messageRef.child("userId").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String originalUserId = dataSnapshot.getValue(String.class);

if (originalUserId != null && originalUserId.equals(userId)) {
messageRef.child("message").setValue(request.getNewMessage(), (error, ref) -> {
if (error != null) {
response.put("status", "error");
response.put("message", error.getMessage());
futureResponse.complete(ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(response));
} else {
response.put("status", "success");
futureResponse.complete(ResponseEntity.ok(response));
}
});
} else {
throw new ChatAccessException();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
throw new ChatException();
}
});
return futureResponse;
}

@DeleteMapping("/{roomId}/{messageId}")
public CompletableFuture<ResponseEntity<Map<String, String>>> deleteMessage(
@PathVariable String roomId,
@PathVariable String messageId,
Principal principal) {

DatabaseReference messageRef = firebaseService.getReference("MESSAGES/" + roomId + "/" + messageId);
CompletableFuture<ResponseEntity<Map<String, String>>> futureResponse = new CompletableFuture<>();
Map<String, String> response = new HashMap<>();

String userId = principal.getName();

messageRef.child("userId").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String originalUserId = dataSnapshot.getValue(String.class);

if (originalUserId != null && originalUserId.equals(userId)) {
firebaseService.deleteMessage(roomId, messageId); // 메시지 삭제
response.put("status", "success");
futureResponse.complete(ResponseEntity.ok(response));
} else {
response.put("status", "error");
response.put("message", "Unauthorized");
futureResponse.complete(ResponseEntity.status(HttpStatus.FORBIDDEN).body(response));
}
}

@Override
public void onCancelled(DatabaseError databaseError) {
throw new ChatAccessException();
}
});
return futureResponse;
}
}
16 changes: 16 additions & 0 deletions src/main/java/com/esquad/esquadbe/chat/dto/ChatEditMessage.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.esquad.esquadbe.chat.dto;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class ChatEditMessage {
private String userId;
private String newMessage;
}

22 changes: 22 additions & 0 deletions src/main/java/com/esquad/esquadbe/chat/dto/ChatMessage.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.esquad.esquadbe.chat.dto;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.time.LocalDate;

@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class ChatMessage {
private String roomId;
private String userId;
private String message;
private String type;
private String messageId;
private String status;
private String fileUrl;
private LocalDate timestamp;
}
23 changes: 23 additions & 0 deletions src/main/java/com/esquad/esquadbe/chat/dto/FirebaseProperties.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.esquad.esquadbe.chat.dto;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Data
@Component
@ConfigurationProperties(prefix = "firebase")
public class FirebaseProperties {
private String type;
private String projectId;
private String privateKeyId;
private String privateKey;
private String clientEmail;
private String clientId;
private String authUri;
private String tokenUri;
private String authProviderX509CertUrl;
private String clientX509CertUrl;
private String universeDomain;
private String databaseUrl;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.esquad.esquadbe.chat.exception;

import com.esquad.esquadbe.global.exception.RestApiException;

public class ChatAccessException extends RestApiException {
public ChatAccessException() {
super(ChatErrorCode.CHAT_NOT_CORRECT_ID);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.esquad.esquadbe.chat.exception;

import com.esquad.esquadbe.global.exception.ErrorCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;

// 채팅 예외 클래스
@Getter
@RequiredArgsConstructor
public enum ChatErrorCode implements ErrorCode{

CHAT_NOT_FOUND(HttpStatus.NOT_FOUND, "Chat Data not exists", "CHAT-0001"),
CHAT_NOT_CORRECT_ID(HttpStatus.FORBIDDEN, "Chat not correct id", "CHAT-0002"),;

private final HttpStatus httpStatus;
private final String message;
private final String code;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.esquad.esquadbe.chat.exception;

import com.esquad.esquadbe.global.exception.RestApiException;

public class ChatException extends RestApiException {
public ChatException() {
super(ChatErrorCode.CHAT_NOT_FOUND);
}
}
Loading