Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/entity delete #312

Merged
merged 1,258 commits into from
Apr 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1258 commits
Select commit Hold shift + click to select a range
8d99375
refactor(Login): 멤버 로그인 로직을 기능별로 모듈화
limehee Mar 16, 2024
5fd9f23
refactor(JobPosting): 채용 공고 목록 조회, 채용 공고 검색 API 통합 및 QueryDSL을 통해 처리하…
limehee Mar 17, 2024
a59f0b4
refactor(JobPosting): 채용 공고 등록 로직 개선
limehee Mar 17, 2024
e070cbc
refactor(Donation): 후원 정보, 후원 검색 API 통합 및 QueryDSL을 통해 처리하도록 변경
limehee Mar 17, 2024
d108087
refactor(Donation): 후원 생성 로직 간소화 및 수정/삭제 조건 검사 로직 메소드로 분리
limehee Mar 17, 2024
56c8f20
refactor(Comment): 댓글 생성 로직 간소화 및 조건 검사 로직 메소드로 분리
limehee Mar 17, 2024
098d7b4
refactor(Comment): 댓글 생성 로직 간소화
limehee Mar 17, 2024
0a7de79
refactor(Comment): 댓글 좋아요 및 소유자 확인 로직을 도메인으로 이전
limehee Mar 17, 2024
fbc583b
refactor(Comment): 댓글 좋아요 로직 수정
limehee Mar 17, 2024
a5d7cb0
refactor(Comment): 댓글 좋아요 메소드명 변경
limehee Mar 17, 2024
b063da5
refactor(Comment): 댓글 생성 로직 모듈화
limehee Mar 17, 2024
f409f43
refactor(Comment): 댓글 조회 로직 모듈화
limehee Mar 17, 2024
05251e1
refactor(Book): 도서 목록, 도서 검색 API 통합
limehee Mar 17, 2024
7745399
refactor(Book): 도서 조회 공통 로직 메소드로 분리
limehee Mar 17, 2024
0faf84b
refactor(BookLoanRecord): 불필요 예외 제거 및 메소드명 변경
limehee Mar 17, 2024
9032c16
refactor(Review): 메소드명 변경
limehee Mar 17, 2024
031d604
refactor(BookLoanRecord): 도서 대출 로직 일부를 도메인으로 이전
limehee Mar 17, 2024
85e2737
refactor(Review): 메소드명 변경
limehee Mar 17, 2024
5427690
refactor(BookLoanRecord): 도서 반납 로직 일부를 도메인으로 이전
limehee Mar 17, 2024
31428de
refactor(BookLoanRecord): 도서 연장 로직 일부를 도메인으로 이전
limehee Mar 17, 2024
cb4669d
refactor(Board): 게시글 좋아요 로직 일부를 도메인으로 이전
limehee Mar 17, 2024
97199d6
refactor(Board): 주석 제거
limehee Mar 17, 2024
34e04a1
refactor(Board): 게시글 생성 로직 일부를 도메인으로 이전 및 메소드 분리
limehee Mar 17, 2024
1bc866e
refactor(Board): 게시글 상세 조회 로직 일부를 도메인으로 이전 및 메소드 분리
limehee Mar 17, 2024
9b83af2
refactor(Board): 게시글 수정/삭제 권한 로직을 도메인으로 이전
limehee Mar 17, 2024
c430c08
refactor(Blog): 블로그 포스트 목록 조회, 블로그 포스트 검색 통합 및 QueryDSL을 통해 처리하도록 변경
limehee Mar 17, 2024
3684b64
refactor(Blog): 일부 서비스 로직을 도메인으로 이전
limehee Mar 17, 2024
95614d6
refactor(BlacklistIp): 블랙리스트 IP 추가 로직 개선
limehee Mar 17, 2024
4895b7a
refactor(Award): 수상 이력 검색 로직을 QueryDSL을 통해 처리하도록 변경
limehee Mar 17, 2024
71dffc4
refactor(Award): 수상 이력 등록 로직 간소화
limehee Mar 17, 2024
38ebdaf
refactor(Award): 수상 이력 수정/삭제 권한 로직을 도메인으로 이전
limehee Mar 17, 2024
fb7cec0
refactor(Application): 지원자 목록 조회 repository 코드 분리 및 path명 변경
limehee Mar 17, 2024
205e3d2
refactor(Application): 지원자 합격/취소 로직을 도메인으로 이전
limehee Mar 17, 2024
7c123f0
refactor(Application): 동아리 지원 API 로직 간소화 및 일부 로직 도메인으로 이전
limehee Mar 17, 2024
f6e2aa9
refactor(Application): 합격 여부 조회 로직 개선
limehee Mar 17, 2024
c9a221e
refactor(ActivityPhoto): 활동 사진 목록 조회, 공개된 활동 사진 목록 조회 API 통합 및 QueryD…
limehee Mar 17, 2024
d00a59b
refactor(ActivityPhoto): 활동 사진 등록 로직 개선
limehee Mar 17, 2024
89adc4e
refactor(ActivityPhoto): 활동 사진 고정/해제 로직 도메인으로 이전
limehee Mar 17, 2024
b749c89
refactor(toggle): 메소드명 변경
limehee Mar 17, 2024
17db480
refactor(Accuse): 신고 내역 조회, 유형/상태별 신고 내역 조회 API 통합 및 QueryDSL을 통해 처리하…
limehee Mar 17, 2024
ce1ff06
refactor(Accuse): 신고하기 및 신고 상태 변경 API 로직 개선
limehee Mar 17, 2024
aeb7795
refactor(QueryDSL): JPAQueryFactory을 스프링 빈으로 등록하여 주입받도록 변경
limehee Mar 17, 2024
2c04057
refactor(WorkExperience): 권한 검사 로직 도메인으로 이전 및 경력사항 생성 오류 수정
limehee Mar 17, 2024
bda0790
refactor(Schedule): 일정 생성 로직 개선
limehee Mar 17, 2024
47fcab3
refactor(Schedule): 일부 로직 도메인으로 이전
limehee Mar 17, 2024
71116e0
refactor(Schedule): 일정 조회 로직을 QueryDSL을 통해 처리하도록 변경
limehee Mar 17, 2024
9d5464b
refactor(Schedule): 일정 조회시 LocalDate를 입력받도록 변경
limehee Mar 17, 2024
01cc5c8
refactor(Schedule): 일부 로직을 도메인으로 이전
limehee Mar 17, 2024
882df78
refactor(Review): 일부 로직을 도메인으로 이전
limehee Mar 17, 2024
5bf5762
Merge remote-tracking branch 'origin/refactor/#276' into refactor/#276
limehee Mar 17, 2024
b4007cb
refactor(Schedule): 모집 공고 등록 로직 개선
limehee Mar 17, 2024
4bb10a2
refactor(Recruitment): 모집 공고 등록 로직 개선
limehee Mar 17, 2024
4d2e2ad
Merge remote-tracking branch 'origin/refactor/#276' into refactor/#276
limehee Mar 17, 2024
bc54dc1
refactor(Position): 직책 등록 로직 개선
limehee Mar 17, 2024
74334e8
refactor(Notification): 알림 삭제 권한 로직을 도메인으로 이전
limehee Mar 17, 2024
f7783c8
refactor(News): 메소드명 변경(of -> create)
limehee Mar 17, 2024
6885a45
refactor(MembershipFee): 회비 수정/삭제 권한 로직을 도메인으로 이전
limehee Mar 17, 2024
81e356e
refactor(MemberCloud): 클라우드 접근 권한 로직을 도메인으로 이전
limehee Mar 17, 2024
e03843a
refactor(Member): 일부 로직 도메인으로 이전
limehee Mar 17, 2024
7bb38f5
fix(Email): 계정 발급시 비밀번호가 보이지 않는 오류 수정
limehee Mar 17, 2024
9e46eff
refactor(Member): 비밀번호 생성 로직 verificationCodeService로 이동
limehee Mar 17, 2024
295c089
refactor(Authenticator): GoogleAuthenticator를 스프링 빈으로 등록하여 주입받도록 변경
limehee Mar 17, 2024
2e3c11f
refactor(Authenticator): Authenticator 정적 팩토리 메소드를 이용하여 인스턴스화 로직을 캡슐화
limehee Mar 17, 2024
cd87fe8
refactor(LoginAttemptLog): LoginAttemptLog 생성 로직 간소화
limehee Mar 17, 2024
0bd90a1
refactor(RedisToken): RedisToken 생성 로직 간소화
limehee Mar 17, 2024
069f52e
refactor(RedisToken): IP 비교 메소드 도메인으로 이전
limehee Mar 17, 2024
5eeaef6
refactor(Comment): 댓글 수정/삭제 권한 로직을 도메인으로 이전
limehee Mar 17, 2024
9de5d0e
refactor(ActivityPhoto): 업로드 파일 가져오는 로직 메소드로 분리
limehee Mar 17, 2024
6c73476
refactor(SharedAccount): 공동계정 생성 로직 간소화
limehee Mar 17, 2024
4ceb4a9
refactor(SharedAccountUsage): 공동 계정 이용 신청 로직 일부를 도메인으로 이전
limehee Mar 17, 2024
d16ace9
refactor(SharedAccountUsage): 조건 검사 메소드 분리 세분화
limehee Mar 17, 2024
f8c4c04
refactor(SharedAccountUsage): 공동 계정 이용 상태 변경 로직 일부를 도메인으로 이전
limehee Mar 17, 2024
6fbb9ec
refactor(SharedAccountUsage): 기능별 메소드 분리
limehee Mar 17, 2024
af75c46
refactor(ActivityGroup): 활동 생성 일부 로직을 도메인으로 이동
limehee Mar 17, 2024
8cb00d0
refactor(ActivityGroup): 일부 로직을 도메인으로 이동
limehee Mar 17, 2024
99b01f6
refactor(Validation): 컨트롤러에서 예외를 추가로 처리하지 않기로 변경
limehee Mar 17, 2024
9444a6c
refactor(Validation): 유효성 검사 로그 상세화
limehee Mar 17, 2024
5c4c3a8
refactor(Attendance): static 변수 및 불필요 메소드 제거
limehee Mar 17, 2024
8440f4a
refactor(Attendance): 기능별 메소드 분리
limehee Mar 17, 2024
f0aec8c
refactor(ActivityGroupReport): 기능별 메소드 분리
limehee Mar 17, 2024
5c1fbf1
refactor(ActivityGroupMember): 일부 로직을 도메인으로 이전
limehee Mar 17, 2024
636a92d
refactor(ActivityGroupMember): 활동 전체 목록 조회 최적화
limehee Mar 17, 2024
1ce036d
refactor(ActivityGroupMember): 활동 상태별 조회 조회 최적화
limehee Mar 17, 2024
0818816
refactor(ActivityGroupMember): 활동 상태별 조회 최적화
limehee Mar 17, 2024
8d398b6
Merge remote-tracking branch 'origin/refactor/#276' into refactor/#276
limehee Mar 17, 2024
770bba7
refactor(ActivityGroupMember): 일부 로직 도메인으로 이전
limehee Mar 17, 2024
5572e24
refactor(ActivityGroupBoard): 활동 그룹 게시판 생성 일부 로직 도메인으로 이전 및 메소드 분리
limehee Mar 17, 2024
993a716
refactor(ActivityGroupBoard): 활동 그룹 게시판 계층 구조적 조회 일부 로직 도메인으로 이전
limehee Mar 18, 2024
1d22803
refactor(ActivityGroupBoard): 나의 제출 과제 및 피드백 조회, 활동 그룹 게시판 수정/삭제 로직 최…
limehee Mar 18, 2024
8adc86b
refactor(ActivityGroupBoard): getChildBoards() 로직 간소화
limehee Mar 18, 2024
bd4f8df
refactor(ActivityGroupBoard): validateParentBoard() 로직 최적화
limehee Mar 18, 2024
20deef6
refactor(ActivityGroupBoard): 신청 멤버 상태 변경 일부 로직 도메인 이전
limehee Mar 18, 2024
b7a35de
refactor(ActivityGroupAdmin): 신청 멤버 상태 변경 일부 로직 도메인 이전
limehee Mar 18, 2024
93c8059
Merge remote-tracking branch 'origin/refactor/#276' into refactor/#276
limehee Mar 18, 2024
c222b2d
refactor(VerificationCode): 일부 로직 도메인 이전
limehee Mar 18, 2024
6e71b97
refactor(RedisIpAccessMonitor): 일부 로직 도메인 이전
limehee Mar 18, 2024
d10de4f
Merge branch 'develop' into refactor/#276
limehee Mar 18, 2024
0ded097
Merge pull request #300 from KGU-C-Lab/refactor/#276
limehee Mar 18, 2024
7207f69
Merge pull request #301 from KGU-C-Lab/develop
limehee Mar 18, 2024
ca98f45
refactor(Repository): Custom Repository에서 where 조건을 BooleanBuilder를 통…
limehee Mar 18, 2024
05909c5
Delete config directory
limehee Mar 18, 2024
53f9641
refactor(Optimize): 조회 API의 트랜젠션을 readOnly로 변경
limehee Mar 18, 2024
8f641c0
refactor(Validation): 비즈니스 로직에서 중앙집중적으로 유효성을 검사할 수 있도록 함, ExceptionHa…
limehee Mar 20, 2024
5dd092e
refactor(Validation): 도메인 지식에 대한 유효성 검사를 비즈니스 로직에서 하도록 변경
limehee Mar 21, 2024
fa6f06f
refactor(DB): updateTime -> updatedAt 칼럼명 변경 및 수정일자 갱신 누락 추가
limehee Mar 21, 2024
898754e
refactor(Entity): BaseEntity를 통해 생성 및 수정일자를 관리할 수 있도록 함
limehee Mar 21, 2024
45e8e60
refactor(DDD): 도메인 계층으로부터 객체 변환 로직을 분리하여 표현 계층(DTO)으로 이동
limehee Mar 22, 2024
80d61fc
refactor(FileUpload): UploadedFile 로직 분리 및 출석 QR 코드 생성 로직 개선
limehee Mar 22, 2024
e08e542
refactor(FileUpload): 파일 업로드 메소드 통합
limehee Mar 22, 2024
bff76dc
refactor(FileUpload): 파일 저장 메소드 개선
limehee Mar 22, 2024
eb0fa85
refactor(FileUpload): 파일 삭제 로직을 FileHandler로 이동
limehee Mar 22, 2024
a75dafa
refactor(Verification): 패키지명 변경
limehee Mar 22, 2024
971a1d5
refactor(AutoDeleteService): 파일 자동 삭제 로직 가독성 개선
limehee Mar 22, 2024
70b8c88
refactor(EncryptionUtil): EncryptionUtil 빈 주입 개선
limehee Mar 22, 2024
4dc448e
Merge pull request #302 from KGU-C-Lab/refactor/#276
limehee Mar 22, 2024
b315b23
refactor(API): URI Versioning 추가 (/api/{version})
limehee Mar 25, 2024
73a57b2
refactor(MembershipFee): 회비 상태 추가(대기/보류/승인/반려)
limehee Mar 26, 2024
3eb6f3c
refactor(MembershipFee): 회비 상태 추가(대기/보류/승인/반려)
limehee Mar 26, 2024
d6ddf94
refactor(memberServie): 프로필 사진 빈 문자열로 업데이트 시 기존 파일 삭제와 DB내 null 처리 #299
mingmingmon Mar 26, 2024
d1fb99f
refactor(autoDeleteService) : 파일 자동 삭제 시 DB에 등록되지 않은 unknown 파일 삭제 #299
mingmingmon Mar 26, 2024
2f97e01
fix(autoDeleteService): 스케쥴링 cron 설정 원래대로 수정 #299
mingmingmon Mar 26, 2024
823b152
refactor(Member): 프로필 사진 업데이트 리팩토링
limehee Mar 26, 2024
02c0bd3
refactor(Member): 프로필 사진 업데이트 리팩토링 #299
limehee Mar 26, 2024
5bbb902
Merge remote-tracking branch 'origin/refactor/file' into refactor/file
limehee Mar 26, 2024
71f9a79
refactor(DeleteFileRequestDto): 변수명 복구
limehee Mar 26, 2024
d4bd258
Merge pull request #303 from KGU-C-Lab/refactor/file
limehee Mar 26, 2024
ef0c316
refactor(ActivityGroup): 나의 활동 목록 조회 API 추가
limehee Mar 26, 2024
0e8b66d
refactor(BookLoanRecord): 도서 대출 내역 조회시 책 제목, 사진을 함께 반환하도록 변경
limehee Mar 27, 2024
6492ed7
refactor(MembershipFee): 회비 신청시 상태를 입력받지않고 PENDING을 기본값으로 설정
limehee Mar 28, 2024
825cb46
refactor(Book): 도서에 출판사 후기 URL 칼럼 추가(JSON 저장)
limehee Mar 29, 2024
6033363
refactor(MembershipFee): 회비에 계좌 칼럼 추가
limehee Mar 30, 2024
27cfdb7
fix(FileUpload): 파일 업로드시 게시글, 회비 등에 대해 구분자가 없어지면서 기존 파일이 삭제되는 문제 수정
limehee Mar 30, 2024
1b94ec6
refactor(MembershipFee): 회비 조회시 관리자에게만 계좌 정보가 보이도록 설정
limehee Mar 31, 2024
3cdcacd
refactor(MembershipFee): 회비 정보 조회 설명 추가
limehee Mar 31, 2024
79fb796
refactor(Book): 도서 상세 정보 조회시에만 리뷰 링크를 반환하도록 변경
limehee Apr 2, 2024
1452b60
fix(Book): 도서 목록 조회 페이지네이션 누락 수정
limehee Apr 2, 2024
1c69658
fix(Book): 도서 목록 조회 totalPages 미작동 문제 수정
limehee Apr 2, 2024
301728b
chore: Create README.md
limehee Apr 2, 2024
fe4d6ce
chore: Create CONTRIBUTING.md
limehee Apr 2, 2024
56ea35b
Update README.md
limehee Apr 2, 2024
a370d37
refactor(Board): Dto 필드명 상세화
limehee Apr 2, 2024
3c0bbeb
refactor(Board): 게시글 목록 조회 반환 정보 추가
limehee Apr 2, 2024
9fec5ec
Update README.md
limehee Apr 2, 2024
f3f863b
refactor(WorkExperience): 검색 API 엔드포인트 변경
limehee Apr 4, 2024
7c85425
refactor(DTO): 불필요한 Lombok 어노테이션 제거
limehee Apr 4, 2024
949140a
refactor(EqualsAndHashCode): 일부 Entity에서 저장할 때 데이터가 중복되던 문제 수정
limehee Apr 4, 2024
d2a0ab8
refactor(Constructor): Entity 생성자에 대한 접근 제한 설정
limehee Apr 4, 2024
37647bb
refactor(Util): 불필요한 어노테이션 제거
limehee Apr 4, 2024
b1f63cc
refactor(CompositeKey): 복합키 캡슐화
limehee Apr 4, 2024
299fdfb
refactor(DTO): ResponseDto 불변성을 위한 Setter 제거
limehee Apr 4, 2024
aaa09fa
refactor(ResponseModel): ResponseModel DDD에 맞게 재설계 및 그에 따른 관련 로직 수정
limehee Apr 4, 2024
8d43f38
refactor(RedisIpAccessMonitor): 비정상 접근 IP 기록 초기화시 초기화된 IP 리스트를 반환하도록 변경
limehee Apr 4, 2024
899c7bd
refactor(Email): 이메일 전송시 전송 완료된 이메일 주소를 반환하도록 변경
limehee Apr 4, 2024
ba8f046
refactor(BlacklistIp): 블랙리스트 IP 초기화시 초기화된 IP 리스트를 반환하도록 변경
limehee Apr 4, 2024
c7f54e0
refactor(Member): 멤버 비밀번호 재발급/요청시 멤버 ID를 반환하도록 변경
limehee Apr 4, 2024
dddd04e
refactor(Member): 내 프로필 조회시 재학 상태를 반환하도록 변경
limehee Apr 5, 2024
7cb91cd
refactor(Enum): 운영진 Enum값 수정
limehee Apr 5, 2024
7b28c70
refactor(Board): 게시글 카테고리 Enum으로 고정
limehee Apr 5, 2024
060882a
refactor(BlacklistIp): 슬랙 메시지 오타 수정
limehee Apr 5, 2024
611444a
refactor(BlacklistIp): 의심스러운 활동으로 인한 차단시 블랙리스트 추가 사유를 기록하도록 수정
limehee Apr 5, 2024
3b97b5d
fix(GeoIp): GeoIp DB를 불러오지 못할 경우 Unknown을 반환하도록 수정
limehee Apr 5, 2024
3b43f1f
refactor(Board): BoardCategory GRADUATE -> GRADUATED 변경
limehee Apr 5, 2024
ba5755a
refactor(Board): BoardCategory 정보를 소문자로 반환하도록 변경
limehee Apr 6, 2024
4b2e115
refactor(Job,News): 채용 공고, IT 뉴스 반환 정보에 생성일자 추가
limehee Apr 6, 2024
861af0b
feat(Login): 현재 로그인 중인 멤버 조회 API 추가
limehee Apr 7, 2024
b6866bd
refactor(Accuse): 확장성을 고려한 신고 시스템 재설계
limehee Apr 7, 2024
91ee985
refactor(Accuse): 신고하기 로직 리팩토링
limehee Apr 7, 2024
75dd9a7
refactor(Accuse): 신고 테이블 구조 및 신고 내역 조회 응답 변경, 누적 횟수 기준으로 정렬할 수 있도록 함.
limehee Apr 7, 2024
a8f2253
refactor(Accuse): 신고 시스템 재설계에 따른 신고 상태 변경 API 수정 및 리팩토링
limehee Apr 7, 2024
7f0152f
refactor(Board): 게시글 상세 조회시 익명 유저일 경우 권한 정보를 반환하지 않도록 변경
limehee Apr 8, 2024
cd9dfcd
refactor(Board): 게시글 상세 조회 및 댓글 조회시 작성자의 ID, 이름을 모두 반환하도록 변경
limehee Apr 8, 2024
7d9f050
feat(Schedule): 일정 중요도 및 조건별 검색 API 추가
limehee Apr 9, 2024
905911e
feat(Schedule): 일정 모아보기 API 추가
limehee Apr 9, 2024
69cce1d
feat(Board): 게시판 카테고리에 동아리 소식 추가
limehee Apr 10, 2024
fc1fc7a
ci: add spring boot gradle ci (#304)
gwansikk Apr 12, 2024
7fca39c
docs: add gradle ci badge (#304)
gwansikk Apr 12, 2024
91268d4
ci: update spring-boot-gradle-ci (#304)
gwansikk Apr 12, 2024
70b655f
Merge pull request #305 from KGU-C-Lab/feature/#304
limehee Apr 12, 2024
86b63aa
refactor(Actuator): 헬스 체크를 위한 권한 설정 변경
limehee Apr 12, 2024
680c83d
refactor(test): Test 환경 설정
limehee Apr 12, 2024
aa7dede
Merge pull request #306 from KGU-C-Lab/refactor/#299
limehee Apr 13, 2024
5f1324d
Merge remote-tracking branch 'origin/master' into develop
limehee Apr 13, 2024
36c9172
refactor(Schedule): 일정 조회시 기간 내 진행중인 일정 모든 일정에 대해 조회하도록 변경
limehee Apr 13, 2024
0718fe6
refactor(Book): 도서 대출 내역 조회시 대출자의 이름을 같이 반환하도록 수정
limehee Apr 13, 2024
f6bf9d7
fix(Member): 멤버 정보 수정시 Optional로 인해 발생하는 오류 수정
limehee Apr 13, 2024
5186e4d
feat(Book): 도서 연체자 조회 API 추가
limehee Apr 13, 2024
0dbd033
fix: 이메일 전송 시 html 파일 경로 지정용 ThymeleafConfig 추가 #299
mingmingmon Apr 13, 2024
8011385
chore: 배포 환경 설정
limehee Apr 13, 2024
5408762
Merge remote-tracking branch 'origin/master' into develop
limehee Apr 13, 2024
31a3284
chore: 배포 환경 변경(prod->stage)
limehee Apr 13, 2024
9ef123d
Merge remote-tracking branch 'origin/master' into develop
limehee Apr 13, 2024
b4ed3a6
chore: gradle build시 프로필을 유동적으로 사용할 수 있도록 변경
limehee Apr 13, 2024
72049b1
refactor(Board): 커뮤니티 게시글 카테고리별 조회시 writerId를 반환하도록 변경
limehee Apr 16, 2024
a9bdd30
refactor(Board): 커뮤니티 게시글 카테고리별 조회 엔드포인트 변경
limehee Apr 16, 2024
5de76c1
refactor(Board): 썸네일 이미지 URL 컬럼 추가
limehee Apr 16, 2024
cd9ca40
fix(Board): 썸네일 이미지 URL 업데이트 로직 누락 수정
limehee Apr 16, 2024
79ebe32
refactor(File): 게시글 사진 업로드 -> 게시글 파일 업로드 Operation 수정
limehee Apr 16, 2024
e233c13
refactor(Accuse): 자신의 콘텐츠에 대해 신고할 수 없도록 변경
limehee Apr 16, 2024
6265125
feat(Accuse): 나의 신고 내역 조회 API 추가
limehee Apr 16, 2024
8d9720b
feat(Book): 도서 대여 승인 제도 추가
limehee Apr 16, 2024
290704c
refactor(Book): 도서 대여 승인 제도 추가에 따른 도서 연체자 조회 로직 수정
limehee Apr 16, 2024
0748ad7
refactor(Book): 도서 대출 내역 조회시 대출 여부 대신 대출 상태를 기준으로 조회 가능하도록 변경
limehee Apr 16, 2024
56dc038
refactor: 유효성 검사 및 트랙젝션 누락 수정
limehee Apr 16, 2024
d20d225
feat(Book): 최대 도서 대여 개수 정책 추가
limehee Apr 16, 2024
8e00557
refactor(Book): 도서 대출 내역, 연체자 조회시 대출 상태를 같이 반환하도록 변경
limehee Apr 16, 2024
9add7db
refactor(Exception): 미사용 예외 삭제
limehee Apr 17, 2024
74eea42
refactor(Exception): 예외 재분류
limehee Apr 17, 2024
122953e
refactor(Book): 도서 대출 내역 조회시 borrowedAt이 없는 경우를 고려하여 createdAt을 두 번째 …
limehee Apr 17, 2024
274afda
refactor(Exception): 409 예외 처리 및 응답 변경
limehee Apr 17, 2024
18a3bee
fix(Book): 중복 도서 대출 요청 수정
limehee Apr 17, 2024
c8a6b93
refactor(Book): 대출 중인 도서도 대출 요청 가능하도록 변경
limehee Apr 17, 2024
23b8bd7
feat: Board soft delete 구현 #299
mingmingmon Apr 17, 2024
fe1d31d
refactor(Exception): ErrorResponse 분리
limehee Apr 17, 2024
8b37c64
refactor(Response): ResponseModel -> ApiResponse 이름 변경
limehee Apr 17, 2024
042c449
Merge branch 'refactor/#299' of https://github.com/KGU-C-Lab/clab-ser…
mingmingmon Apr 17, 2024
e94f56c
chore: Dockerfile 수정
limehee Apr 17, 2024
d173ede
chore: Dockerfile 수정(JDK 21 강제화)
limehee Apr 17, 2024
6b33a9b
chore: Dockerfile 롤백
limehee Apr 17, 2024
7774a9f
Merge branch 'develop' into feat/entityDelete
mingmingmon Apr 21, 2024
db86f55
fix: Board 관련 소프트 딜리트, 조회 로직 수정, 삭제한 Board 조회 api 작성 #299
mingmingmon Apr 24, 2024
408459c
fix: board 소프트 딜리트 @Where과 nativeQuery를 사용해 구현 #299
mingmingmon Apr 24, 2024
7b92791
fix: award 소프트 딜리트 구현, where 어노테이션 deprecated 이슈로 SQLRestriction 사용 #299
mingmingmon Apr 25, 2024
d83d5aa
fix: Blog 소프트 딜리트 구현 #299
mingmingmon Apr 25, 2024
d05b560
fix: Book 소프트 딜리트 구현 #299
mingmingmon Apr 25, 2024
3aa498f
fix: Donation 소프트 딜리트 구현 #299
mingmingmon Apr 25, 2024
f1a7885
fix : JobPosting 소프트 딜리트 구현 #299
mingmingmon Apr 25, 2024
724c369
fix: MembershipFee 소프트 딜리트 구현 #299
mingmingmon Apr 25, 2024
5874641
fix: News 소프트 딜리트 구현 #299
mingmingmon Apr 25, 2024
1e95e3f
fix: Notification 소프트 딜리트 구현 #299
mingmingmon Apr 25, 2024
8c80e57
fix: Position 소프트 딜리트 구현 #299
mingmingmon Apr 25, 2024
071f576
fix: Product 소프트 딜리트 #299
mingmingmon Apr 25, 2024
5c1bb1f
fix: Recruitment 소프트 딜리트 구현 #299
mingmingmon Apr 25, 2024
b033dde
fix: Review 소프트 딜리트 구현 #299
mingmingmon Apr 25, 2024
44322ba
fix: Schedule 소프트 딜리트 #299
mingmingmon Apr 25, 2024
9d6c070
fix: SharedAccount 소프트 딜리트 구현 #299
mingmingmon Apr 25, 2024
4cd037c
fix: WorkExperience 소프트 딜리트 구현 #299
mingmingmon Apr 25, 2024
f099f12
fix: Application 소프트 딜리트 방식 수정 및 Book 하드 딜리트 전환. 버그 발견 #299
mingmingmon Apr 26, 2024
4261048
feat: Comment 자체 소프트 딜리트 구현과 삭제된 댓글입니다를 구현할 수 있도록 응답 로직 수정 #299
mingmingmon Apr 26, 2024
806bc4d
feat(IPInfo): IPInfo 라이브러리에 누락된 Context 관련 파일 작성
limehee Apr 27, 2024
fafca31
refactor(IpAuthenticationFilter): 해외 접속시 국가 코드가 아닌 국가명이 출력되도록 변경
limehee Apr 27, 2024
ca728fd
fix: ActivityGroup 소프트 딜리트 작성 #299
mingmingmon Apr 27, 2024
5a600c3
fix: ActivityGroupBoard 소프트 딜리트 작성 #299
mingmingmon Apr 27, 2024
bd4e9c1
fix: ActivityGroupReport 소프트 딜리트 작성 #299
mingmingmon Apr 27, 2024
d516f26
fix: Book 커스텀 소프트 딜리트 재작성 #299
mingmingmon Apr 27, 2024
caaf926
feat(Slack): 보안 경고 알림에 클라이언트의 위치 정보 추가
limehee Apr 27, 2024
fc0ad12
refactor(LoginAttemptLog): 로그인 기록에 국가 정보 추가
limehee Apr 27, 2024
428082d
refactor(IpAuthenticationFilter): 로깅 강화
limehee Apr 28, 2024
3b421da
merge refactor/#299
limehee Apr 28, 2024
e5e18d5
refactor: 삭제된 데이터 조회에 대한 transactional read only 설정
limehee Apr 28, 2024
16b7bee
refactor: GeoIP2 제거
limehee Apr 28, 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
148 changes: 74 additions & 74 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,111 +1,111 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.1'
id 'io.spring.dependency-management' version '1.1.4'
id 'java'
id 'org.springframework.boot' version '3.2.1'
id 'io.spring.dependency-management' version '1.1.4'
}

group = 'page.clab'
version = '0.0.1-SNAPSHOT'

jar {
enabled = false
enabled = false
}

bootJar {
archivesBaseName = "clab"
archiveFileName = "clab.jar"
archiveVersion = "1.0.0"

if (project.hasProperty('prod')) {
archiveFileName = "clab-prod.jar"
} else if (project.hasProperty('stage')) {
archiveFileName = "clab-stage.jar"
} else {
archiveFileName = "clab.jar"
}
archivesBaseName = "clab"
archiveFileName = "clab.jar"
archiveVersion = "1.0.0"

if (project.hasProperty('prod')) {
archiveFileName = "clab-prod.jar"
} else if (project.hasProperty('stage')) {
archiveFileName = "clab-stage.jar"
} else {
archiveFileName = "clab.jar"
}
}

test {
systemProperty 'spring.profiles.active', findProperty('env') ?: 'dev'
systemProperty 'spring.profiles.active', findProperty('env') ?: 'dev'
}

java {
sourceCompatibility = '21'
sourceCompatibility = '21'
}

repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
mavenCentral()
maven { url 'https://jitpack.io' }
}

dependencies {
// Spring Project
implementation 'org.springframework.boot:spring-boot-starter-actuator' // 모니터링
implementation 'org.springframework.boot:spring-boot-starter-web' // 웹 MVC
implementation 'org.springframework.boot:spring-boot-starter-validation' // 유효성 검사
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' // 템플릿 엔진
implementation 'org.springframework.boot:spring-boot-starter-webflux' // WebFlux
developmentOnly 'org.springframework.boot:spring-boot-devtools' // 개발 도구

// Util
compileOnly 'org.projectlombok:lombok' // 롬복
annotationProcessor 'org.projectlombok:lombok' // 롬복
implementation 'com.google.code.gson:gson:2.10.1' // JSON 라이브러리
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0' // Swagger
implementation 'commons-io:commons-io:2.15.1' // Apache Commons IO
implementation 'com.google.guava:guava:33.0.0-jre' // Google Core Libraries For Java
implementation 'org.springframework.boot:spring-boot-starter-mail' // Spring Mail
implementation 'com.google.zxing:core:3.4.1' // QR 코드
implementation 'com.google.zxing:javase:3.4.1' // QR 코드
implementation 'com.slack.api:slack-api-client:1.38.0' // Slack API
implementation 'io.ipinfo:ipinfo-spring:0.3.1' // IPInfo


// DB
implementation 'org.postgresql:postgresql:42.7.1' // PostgreSQL JDBC Driver
implementation 'org.springframework.boot:spring-boot-starter-data-redis' // Redis
implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // Spring Data JPA
implementation 'org.springframework.boot:spring-boot-starter-validation' // Hibernate Validator
implementation 'org.hibernate.validator:hibernate-validator:8.0.1.Final' // Bean Validation
implementation 'jakarta.validation:jakarta.validation-api:3.0.2' // Jakarta Bean Validation

// QueryDSL
implementation 'com.querydsl:querydsl-jpa:5.1.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:5.1.0:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"

// Security
implementation 'org.springframework.boot:spring-boot-starter-security' // Spring Security
implementation 'com.warrenstrange:googleauth:1.5.0' // Google Authenticator
implementation 'io.jsonwebtoken:jjwt-api:0.11.5' // JWT 라이브러리
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5' // JWT 구현체
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.5' // JWT Jackson 모듈

// XSS Filter
implementation 'com.navercorp.lucy:lucy-xss-servlet:2.0.1' // Lucy XSS Servlet Filter
implementation 'com.navercorp.lucy:lucy-xss:1.6.3' // Lucy XSS Filter
implementation 'org.apache.commons:commons-text:1.11.0' // Apache Commons Text

// Test
testImplementation 'org.springframework.boot:spring-boot-starter-test' // Spring Boot Test
testImplementation 'org.springframework.security:spring-security-test' // Spring Security Test
// Spring Project
implementation 'org.springframework.boot:spring-boot-starter-actuator' // 모니터링
implementation 'org.springframework.boot:spring-boot-starter-web' // 웹 MVC
implementation 'org.springframework.boot:spring-boot-starter-validation' // 유효성 검사
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' // 템플릿 엔진
implementation 'org.springframework.boot:spring-boot-starter-webflux' // WebFlux
developmentOnly 'org.springframework.boot:spring-boot-devtools' // 개발 도구

// Util
compileOnly 'org.projectlombok:lombok' // 롬복
annotationProcessor 'org.projectlombok:lombok' // 롬복
implementation 'com.google.code.gson:gson:2.10.1' // JSON 라이브러리
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0' // Swagger
implementation 'commons-io:commons-io:2.15.1' // Apache Commons IO
implementation 'com.google.guava:guava:33.0.0-jre' // Google Core Libraries For Java
implementation 'org.springframework.boot:spring-boot-starter-mail' // Spring Mail
implementation 'com.google.zxing:core:3.4.1' // QR 코드
implementation 'com.google.zxing:javase:3.4.1' // QR 코드
implementation 'com.slack.api:slack-api-client:1.38.0' // Slack API
implementation 'io.ipinfo:ipinfo-spring:0.3.1' // IPInfo


// DB
implementation 'org.postgresql:postgresql:42.7.1' // PostgreSQL JDBC Driver
implementation 'org.springframework.boot:spring-boot-starter-data-redis' // Redis
implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // Spring Data JPA
implementation 'org.springframework.boot:spring-boot-starter-validation' // Hibernate Validator
implementation 'org.hibernate.validator:hibernate-validator:8.0.1.Final' // Bean Validation
implementation 'jakarta.validation:jakarta.validation-api:3.0.2' // Jakarta Bean Validation

// QueryDSL
implementation 'com.querydsl:querydsl-jpa:5.1.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:5.1.0:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"

// Security
implementation 'org.springframework.boot:spring-boot-starter-security' // Spring Security
implementation 'com.warrenstrange:googleauth:1.5.0' // Google Authenticator
implementation 'io.jsonwebtoken:jjwt-api:0.11.5' // JWT 라이브러리
runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.5' // JWT 구현체
runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.11.5' // JWT Jackson 모듈

// XSS Filter
implementation 'com.navercorp.lucy:lucy-xss-servlet:2.0.1' // Lucy XSS Servlet Filter
implementation 'com.navercorp.lucy:lucy-xss:1.6.3' // Lucy XSS Filter
implementation 'org.apache.commons:commons-text:1.11.0' // Apache Commons Text

// Test
testImplementation 'org.springframework.boot:spring-boot-starter-test' // Spring Boot Test
testImplementation 'org.springframework.security:spring-security-test' // Spring Security Test
}

tasks.named('test') {
useJUnitPlatform()
useJUnitPlatform()
}

def querydslDir = "$buildDir/generated/querydsl"

sourceSets {
main.java.srcDirs += [ querydslDir ]
main.java.srcDirs += [ querydslDir ]
}

tasks.withType(JavaCompile) {
options.generatedSourceOutputDirectory = file(querydslDir)
options.generatedSourceOutputDirectory = file(querydslDir)
}

clean.doLast {
file(querydslDir).deleteDir()
file(querydslDir).deleteDir()
}
52 changes: 52 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
version: '3.8'

services:
postgresql:
image: postgres
restart: always
environment:
POSTGRES_DB: postgres
POSTGRES_USER: clab
POSTGRES_PASSWORD: clab@1362!
ports:
- "4000:5432"
volumes:
- postgres-data:/var/lib/postgresql/data

redis:
image: redis
restart: always
command: redis-server --requirepass clab@redis1362!
ports:
- "4001:6379"
volumes:
- redis-data:/data

jenkins:
image: jenkins/jenkins:lts
user: root
restart: always
ports:
- "5010:8080"
- "5000:5000"
volumes:
- jenkins-data:/var/jenkins_home

openjdk21:
image: openjdk:21-jdk
command: "/bin/bash"
volumes:
- /var/jenkins_home/workspace/clab-server:/app

goofy_perlman:
image: openjdk:21-jdk
command: "/bin/bash"

volumes:
postgres-data:
redis-data:
jenkins-data:

networks:
default:
driver: bridge
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
import page.clab.api.domain.activityGroup.dto.request.ActivityGroupRequestDto;
import page.clab.api.domain.activityGroup.dto.request.ActivityGroupUpdateRequestDto;
import page.clab.api.domain.activityGroup.dto.response.ActivityGroupMemberWithApplyReasonResponseDto;
import page.clab.api.domain.activityGroup.dto.response.ActivityGroupResponseDto;
import page.clab.api.domain.award.dto.response.AwardResponseDto;
import page.clab.api.global.common.dto.PagedResponseDto;
import page.clab.api.global.common.dto.ApiResponse;
import page.clab.api.global.exception.PermissionDeniedException;
Expand Down Expand Up @@ -130,4 +132,16 @@ public ApiResponse<String> acceptGroupMember(
return ApiResponse.success(id);
}

@GetMapping("/deleted")
@Operation(summary = "[S] 삭제된 활동그룹 조회하기", description = "ROLE_SUPER 이상의 권한이 필요함")
@Secured({"ROLE_SUPER"})
public ApiResponse<PagedResponseDto<ActivityGroupResponseDto>> getDeletedActivityGroups(
@RequestParam(name = "page", defaultValue = "0") int page,
@RequestParam(name = "size", defaultValue = "20") int size
) {
Pageable pageable = PageRequest.of(page, size);
PagedResponseDto<ActivityGroupResponseDto> activityGroups = activityGroupAdminService.getDeletedActivityGroups(pageable);
return ApiResponse.success(activityGroups);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import page.clab.api.domain.activityGroup.dto.response.ActivityGroupBoardResponseDto;
import page.clab.api.domain.activityGroup.dto.response.ActivityGroupBoardUpdateResponseDto;
import page.clab.api.domain.activityGroup.dto.response.AssignmentSubmissionWithFeedbackResponseDto;
import page.clab.api.domain.award.dto.response.AwardResponseDto;
import page.clab.api.global.common.dto.PagedResponseDto;
import page.clab.api.global.common.dto.ApiResponse;
import page.clab.api.global.exception.PermissionDeniedException;
Expand Down Expand Up @@ -137,4 +138,16 @@ public ApiResponse<Long> deleteActivityGroupBoard(
return ApiResponse.success(id);
}

@GetMapping("/deleted")
@Operation(summary = "[S] 삭제된 활동 그룹 게시판 조회하기", description = "ROLE_SUPER 이상의 권한이 필요함")
@Secured({"ROLE_SUPER"})
public ApiResponse<PagedResponseDto<ActivityGroupBoardResponseDto>> getDeletedActivityGroupBoards(
@RequestParam(name = "page", defaultValue = "0") int page,
@RequestParam(name = "size", defaultValue = "20") int size
) {
Pageable pageable = PageRequest.of(page, size);
PagedResponseDto<ActivityGroupBoardResponseDto> activityBoards = activityGroupBoardService.getDeletedActivityGroupBoards(pageable);
return ApiResponse.success(activityBoards);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
import page.clab.api.domain.activityGroup.dto.request.ActivityGroupReportRequestDto;
import page.clab.api.domain.activityGroup.dto.request.ActivityGroupReportUpdateRequestDto;
import page.clab.api.domain.activityGroup.dto.response.ActivityGroupReportResponseDto;
import page.clab.api.global.common.dto.PagedResponseDto;
import page.clab.api.global.common.dto.ApiResponse;
import page.clab.api.global.common.dto.PagedResponseDto;
import page.clab.api.global.exception.PermissionDeniedException;

@RestController
Expand Down Expand Up @@ -90,4 +90,17 @@ public ApiResponse<Long> deleteAward(
return ApiResponse.success(id);
}


@GetMapping("/deleted")
@Operation(summary = "[S] 삭제된 활동보고서 조회하기", description = "ROLE_SUPER 이상의 권한이 필요함")
@Secured({"ROLE_SUPER"})
public ApiResponse<PagedResponseDto<ActivityGroupReportResponseDto>> getDeletedActivityGroupReports(
@RequestParam(name = "page", defaultValue = "0") int page,
@RequestParam(name = "size", defaultValue = "20") int size
) {
Pageable pageable = PageRequest.of(page, size);
PagedResponseDto<ActivityGroupReportResponseDto> activityGroupReports = activityGroupReportService.getDeletedActivityGroupReports(pageable);
return ApiResponse.success(activityGroupReports);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import page.clab.api.domain.activityGroup.dto.request.ActivityGroupRequestDto;
import page.clab.api.domain.activityGroup.dto.request.ActivityGroupUpdateRequestDto;
import page.clab.api.domain.activityGroup.dto.response.ActivityGroupMemberWithApplyReasonResponseDto;
import page.clab.api.domain.activityGroup.dto.response.ActivityGroupResponseDto;
import page.clab.api.domain.member.application.MemberService;
import page.clab.api.domain.member.domain.Member;
import page.clab.api.domain.notification.application.NotificationService;
Expand Down Expand Up @@ -91,11 +92,17 @@ public Long manageActivityGroup(Long activityGroupId, ActivityGroupStatus status
return activityGroup.getId();
}

@Transactional(readOnly = true)
public PagedResponseDto<ActivityGroupResponseDto> getDeletedActivityGroups(Pageable pageable) {
Page<ActivityGroup> activityGroups = activityGroupRepository.findAllByIsDeletedTrue(pageable);
return new PagedResponseDto<>(activityGroups.map(ActivityGroupResponseDto::toDto));
}

@Transactional
public Long deleteActivityGroup(Long activityGroupId) {
ActivityGroup activityGroup = getActivityGroupByIdOrThrow(activityGroupId);
List<GroupMember> groupMembers = activityGroupMemberService.getGroupMemberByActivityGroupId(activityGroupId);
List<GroupSchedule> groupSchedules = groupScheduleRepository.findAllByActivityGroupIdOrderByIdDesc(activityGroupId);
ActivityGroup activityGroup = getActivityGroupByIdOrThrow(activityGroupId);
GroupMember groupLeader = activityGroupMemberService.getGroupMemberByActivityGroupIdAndRole(activityGroupId, ActivityGroupRole.LEADER);

activityGroupMemberService.deleteAll(groupMembers);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
import page.clab.api.domain.activityGroup.dto.response.AssignmentSubmissionWithFeedbackResponseDto;
import page.clab.api.domain.activityGroup.dto.response.FeedbackResponseDto;
import page.clab.api.domain.activityGroup.exception.InvalidParentBoardException;
import page.clab.api.domain.award.domain.Award;
import page.clab.api.domain.award.dto.response.AwardResponseDto;
import page.clab.api.domain.member.application.MemberService;
import page.clab.api.domain.member.domain.Member;
import page.clab.api.domain.notification.application.NotificationService;
Expand Down Expand Up @@ -145,6 +147,12 @@ public Long deleteActivityGroupBoard(Long activityGroupBoardId) throws Permissio
return board.getId();
}

@Transactional(readOnly = true)
public PagedResponseDto<ActivityGroupBoardResponseDto> getDeletedActivityGroupBoards(Pageable pageable) {
Page<ActivityGroupBoard> activityGroupBoards = activityGroupBoardRepository.findAllByIsDeletedTrue(pageable);
return new PagedResponseDto<>(activityGroupBoards.map(ActivityGroupBoardResponseDto::toDto));
}

private ActivityGroupBoard getActivityGroupBoardByIdOrThrow(Long activityGroupBoardId) {
return activityGroupBoardRepository.findById(activityGroupBoardId)
.orElseThrow(() -> new NotFoundException("해당 게시글을 찾을 수 없습니다."));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,12 @@ public Long deleteReport(Long reportId) throws PermissionDeniedException {
return report.getId();
}

@Transactional(readOnly = true)
public PagedResponseDto<ActivityGroupReportResponseDto> getDeletedActivityGroupReports(Pageable pageable) {
Page<ActivityGroupReport> activityGroupReports = activityGroupReportRepository.findAllByIsDeletedTrue(pageable);
return new PagedResponseDto<>(activityGroupReports.map(ActivityGroupReportResponseDto::toDto));
}

public ActivityGroupReport getReportByIdOrThrow(Long reportId) {
return activityGroupReportRepository.findById(reportId)
.orElseThrow(() -> new NotFoundException("활동 보고서를 찾을 수 없습니다."));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.querydsl.QuerydslPredicateExecutor;
import org.springframework.stereotype.Repository;
import page.clab.api.domain.activityGroup.domain.ActivityGroupBoard;
Expand All @@ -21,4 +22,7 @@ public interface ActivityGroupBoardRepository extends JpaRepository<ActivityGrou

List<ActivityGroupBoard> findAllChildrenByParentId(Long activityGroupBoardId);

@Query(value = "SELECT a.* FROM activity_group_board a WHERE a.is_deleted = true", nativeQuery = true)
Page<ActivityGroupBoard> findAllByIsDeletedTrue(Pageable pageable);

}
Loading
Loading