From ea23f00a429eca01e9e28eae9e3af8a238132a1e Mon Sep 17 00:00:00 2001 From: Junhyeong Kim Date: Sun, 19 May 2024 17:13:22 +0900 Subject: [PATCH] prod (#280) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: 공지사항 수정, 삭제, 태그 기능 추가 (#3) * fix: ExceptionHandler 추가 * feat: updateNotice 추가, valid 추가 * feat: deleteNotice 추가 * feat: enrollTag 기능 추가, noticeTag 연관 엔티티 추가 * feat: 공지사항 작성할 때 태그 생성 및 수정 * fix: 로컬 db 없앰 * fix: pr 리뷰 수정 * fix: pr 리뷰 수정 * fix: noticeTag assign * feat: 구성원(교수) 생성 및 조회 API 구현 (#8) * feat: 교수 엔티티 및 DTO 설계 * feat: 교수 생성 및 조회 * Docs: Swagger 추가 (#7) * Docs: Add swagger dependency * Docs: Add basic config for swagger * Docs: Add basic configuration for swagger. * feat: 페이지네이션+검색 기능 추가 (#5) * feat: isPublic, isSlide, isPinned 추가 * feat: queryDsl 적용 위해 gradle 추가 fix: javax -> jakarta 변경 * feat: queryDsl 도입 * feat: 키워드+태그 검색 추가 * feat: search query에 isDeleted, isPublic 추가 및 isPinned 우선순위 설정 * fix: requestBody -> requestParam 수정 * feat: 페이지네이션 추가 * fix: 키워드 booleanBuilder 추가, application.yaml 수정 * fix: searchNotice readOnly 추가 * fix: SearchRequest 삭제 * fix: NoticeDto tags 추가 * fix: pr 리뷰 수정 / feat: 검색 기능 보강 및 수정 * fix:코드 수정 * fix: SearchResponse isPinned 추가 * fix: SearchResponse에 total 추가 * fix: 페이지 개수 수정 * fix: searchNotice queryDsl 오류 수정 * fix: local 설정 변경 * CICD: 배포 자동화 (#6) * CICD: Change expose port and added image tag * CICD: Change ddl-auto to create in prod profile for test * CICD: Added Deploy github action * CICD: Merge jobs to one job * Fix: Change checkout order to first step * CICD: Add context for docker build action * Fix: Change spring profile arg position * CICD: Change openjdk version to 17 * CICD: Change docker compose build image tag to latest * CICD: Change to use ghcr repository. * Fix: change list to string in docker push tags. * Fix: Change registry to ghcr.io * Fix: change env to pass to github action instead of ssh export command * Fix: unwrap bracket. * Fix: wrap Profile with "" * CICD: Add .env file * CICD: Change prod ddl-auto to create (for developing), and add TODO comment. * CICD: Remove cicd/deploy branch for condition. * feat: 구성원(교수) 수정 및 삭제 API (#9) * feat: 교수 조회시 최종학력이 앞으로 오게끔 정렬 * feat: 교수 수정 및 삭제 API * feat: 학력과 경력 엔티티 필드 변경, 수정 API 구현 * feat: 구성원(행정직원) CRUD API (#10) * feat: 행정직원 엔티티 및 DTO 설계 * feat: 행정직원 CRUD * feat: 교수 조회시 이름순 정렬 * fix: 교수 연구 분야 Set -> List 로 변경 * feat: 행정직원 주요업무 업데이트 구현 * feat: news 패키지 추가, 디벨롭 및 프론트에 맞게 엔티티 변경 (#12) * feat: news 패키지 생성 * feat: readNews 생성, news 패키지 추가로 인한 명칭 변경 * feat: createNews, enrollTag(새소식) 추가, news 패키지로 인한 명칭 추가 변경 * feat: updateNews, deleteNews 추가 * fix: searchNotice 관련 명칭 변경 * feat: searchNews 추가 * fix: develop 브랜치 반영, 프론트 요구사항 반영 * feat: readNotice, readNews에 이전글 다음글 추가 * 태그 업데이트 코드 리팩터링중 * refactor: 코드 수정, 이전제목 추가 * fix: 게시글 하나일때 read 가능 * fix: prevNext null 없애기 * fix: 이전글 다음글 null 수정 * fix: main에서 develop으로 pr (#16) * feat: merge develop to main (#13) * feat: 공지사항 생성, 공지사항 읽기 기능 추가 (#1) * :sparkles: 패키지 및 엔티티 생성 * :sparkles: BaseTimeEntity 생성, PostEntity 기본 내용 작성 * :sparkles: PostController 생성 및 기본 내용 작성 * :sparkles: postService 생성 * :sparkles: Exceptions.kt 생성 * :sparkles: postDto 생성 * :sparkles: postRepository 생성 및 기본 내용 작성 * :green_heart: application.yaml 로컬 환경에서 작동하도록 설정 * feat: createPost 기능 생성 * refactor: 리뷰 주신 거 수정 * refactor: post -> notice 수정 등 * chore: .idea 디렉토리 삭제 * chore: PR 템플릿 생성 (#2) * feat: 로컬 db용 docker-compose 파일 추가 및 application.yaml 수정 (#4) * feat: 공지사항 수정, 삭제, 태그 기능 추가 (#3) * fix: ExceptionHandler 추가 * feat: updateNotice 추가, valid 추가 * feat: deleteNotice 추가 * feat: enrollTag 기능 추가, noticeTag 연관 엔티티 추가 * feat: 공지사항 작성할 때 태그 생성 및 수정 * fix: 로컬 db 없앰 * fix: pr 리뷰 수정 * fix: pr 리뷰 수정 * fix: noticeTag assign * feat: 구성원(교수) 생성 및 조회 API 구현 (#8) * feat: 교수 엔티티 및 DTO 설계 * feat: 교수 생성 및 조회 * Docs: Swagger 추가 (#7) * Docs: Add swagger dependency * Docs: Add basic config for swagger * Docs: Add basic configuration for swagger. * feat: 페이지네이션+검색 기능 추가 (#5) * feat: isPublic, isSlide, isPinned 추가 * feat: queryDsl 적용 위해 gradle 추가 fix: javax -> jakarta 변경 * feat: queryDsl 도입 * feat: 키워드+태그 검색 추가 * feat: search query에 isDeleted, isPublic 추가 및 isPinned 우선순위 설정 * fix: requestBody -> requestParam 수정 * feat: 페이지네이션 추가 * fix: 키워드 booleanBuilder 추가, application.yaml 수정 * fix: searchNotice readOnly 추가 * fix: SearchRequest 삭제 * fix: NoticeDto tags 추가 * fix: pr 리뷰 수정 / feat: 검색 기능 보강 및 수정 * fix:코드 수정 * fix: SearchResponse isPinned 추가 * fix: SearchResponse에 total 추가 * fix: 페이지 개수 수정 * fix: searchNotice queryDsl 오류 수정 * fix: local 설정 변경 * CICD: 배포 자동화 (#6) * CICD: Change expose port and added image tag * CICD: Change ddl-auto to create in prod profile for test * CICD: Added Deploy github action * CICD: Merge jobs to one job * Fix: Change checkout order to first step * CICD: Add context for docker build action * Fix: Change spring profile arg position * CICD: Change openjdk version to 17 * CICD: Change docker compose build image tag to latest * CICD: Change to use ghcr repository. * Fix: change list to string in docker push tags. * Fix: Change registry to ghcr.io * Fix: change env to pass to github action instead of ssh export command * Fix: unwrap bracket. * Fix: wrap Profile with "" * CICD: Add .env file * CICD: Change prod ddl-auto to create (for developing), and add TODO comment. * CICD: Remove cicd/deploy branch for condition. * feat: 구성원(교수) 수정 및 삭제 API (#9) * feat: 교수 조회시 최종학력이 앞으로 오게끔 정렬 * feat: 교수 수정 및 삭제 API * feat: 학력과 경력 엔티티 필드 변경, 수정 API 구현 * feat: 구성원(행정직원) CRUD API (#10) * feat: 행정직원 엔티티 및 DTO 설계 * feat: 행정직원 CRUD * feat: 교수 조회시 이름순 정렬 * fix: 교수 연구 분야 Set -> List 로 변경 * feat: 행정직원 주요업무 업데이트 구현 * feat: news 패키지 추가, 디벨롭 및 프론트에 맞게 엔티티 변경 (#12) * feat: news 패키지 생성 * feat: readNews 생성, news 패키지 추가로 인한 명칭 변경 * feat: createNews, enrollTag(새소식) 추가, news 패키지로 인한 명칭 추가 변경 * feat: updateNews, deleteNews 추가 * fix: searchNotice 관련 명칭 변경 * feat: searchNews 추가 * fix: develop 브랜치 반영, 프론트 요구사항 반영 * feat: readNotice, readNews에 이전글 다음글 추가 * 태그 업데이트 코드 리팩터링중 * refactor: 코드 수정, 이전제목 추가 * fix: 게시글 하나일때 read 가능 * fix: prevNext null 없애기 * fix: 이전글 다음글 null 수정 --------- Co-authored-by: Jo Seonggyu Co-authored-by: 우혁준 (HyukJoon Woo) * hotfix: 사용하지않는 Dto 및 엔티티 삭제 (#14) --------- Co-authored-by: Junhyeong Kim Co-authored-by: 우혁준 (HyukJoon Woo) * feat: seminar 패키지 추가 (#17) * feat: createSeminar, readSeminar, updateSeminar 추가 * feat: deleteSeminar, searchSeminar 추가 * fix: distinct 삭제 * hotfix: 불필요한 dto 삭제 (#20) * hotfix: 불필요한 dto 삭제 * build.gradle 수정 * fix: 이미지 uri 필드 추가 및 프론트 요구사항 반영 (#21) * feat: 이미지 uri 필드 추가 및 isActive 대신 status 추가 * fix: 행정직원 전체 조회 응답에서 task 삭제 * fix: 교수진 페이지 응답 수정 * feat: introduction 패키지, undergraduate 패키지 추가 (#22) * feat: createUndergraduate, readUndergraduate 추가 * feat: readAllCourses, createCourse, readCourse 추가 * introduction 패키지 추가 * fix: dto에서 postType 삭제 * fix: postType pathVariable->requestBody 수정, 오타 수정 * fix: 프론트와 협의하여 이름 등 변경 * feat: academics 패키지 대학원도 가능하도록 추가 * feat: 장학제도 세부 장학금 create, read 추가 * fix: 수정 * fix:수정 * feat: admissions, research 패키지 추가 (#23) * feat: admissions-학부 에서 create, read 추가 * feat: admissions-대학원도 작성 가능하도록 추가 * feat: createResearch 추가 * feat: createLab 추가 * fix: 다른 패키지에 맞게 수정 * research-groups, research-centers에서 read, update 추가 * fix: admissions, research에서 프론트와 협의하여 이름 등 수정 * fix: 오타 수정 * fix: enum 추가, pr 리뷰 반영 * feat: oidc 로그인 (#27) * feat: oidc 로그인 * feat: TaskEntity name 추가 * feat: 배포 설정 * feat: 유저 정보에 학번 추가, 로그인 시 sub claim 확인 * feat: 배포 테스트 위해 redirect-uri 변경 * fix: groups claim 소문자로 수정 * feat: idsnucse 다운 되었을때 에러 처리 * feat: idsnucse 다운 되었을때 에러 처리 * feat: cors 설정 (#30) * fix: cors 추가 설정 (#32) * feat: cors 설정 * feat: cors 설정 * fix: CORS (#34) * feat: cors 설정 * feat: cors 설정 * feat: cors 설정 * fix: about, academics, admissions 패키지 수정 (#25) * fix: admissions, about 컨트롤러 변경 * fix: academics 컨트롤러 수정 * 커밋중 * fix: pr 리뷰 반영 * feat: readMain 추가 * pr 리뷰 반영 * feat: 일반 예약 및 정기 예약 API (#28) * feat: oidc 로그인 * feat: TaskEntity name 추가 * feat: 배포 설정 * feat: 유저 정보에 학번 추가, 로그인 시 sub claim 확인 * feat: 배포 테스트 위해 redirect-uri 변경 * fix: groups claim 소문자로 수정 * feat: 예약 엔티티 및 DTO 설계 * feat: 일반 예약 및 정기 예약 * feat: 예약 조회 API (#39) * feat: 권한 관리 위해 커스텀 어노테이션 생성 * feat: 예약 단건, 주별, 월별 조회 API * fix: 로컬 DB 설정 수정 * feat: 유저 조회 중복 쿼리 방지 * feat: 예약 응답에 recurrenceId 추가 * feat: 동시 예약 방지 * fix: 시큐리티 로그 다시 로컬에서만 보이도록 변경 * feat: 목데이터 날라가지 않도록 ddl-auto 수정 * feat: about, member, news, seminar 메인 이미지 업로드 추가 (#38) * feat: uploadImage 추가 * feat: about, member 사진 업로드 추가 * feat: news, seminar 사진 업로드 추가 * refactor: imageEntity 추가 리팩토링 * fix: gif 삭제 * fix: application.yaml 수정 * fix: newsService 태그 -> 이미지로 순서 변경 * fix: pr 리뷰 수정 * fix: extension 없애고, mainImage로 바꾸고, uuid 없애기 * fix: var 삭제 --------- Co-authored-by: Junhyeong Kim * CICD: Change deploy port to 8080 (#40) * [Merge] (#41) (#42) * feat: 공지사항 생성, 공지사항 읽기 기능 추가 (#1) * :sparkles: 패키지 및 엔티티 생성 * :sparkles: BaseTimeEntity 생성, PostEntity 기본 내용 작성 * :sparkles: PostController 생성 및 기본 내용 작성 * :sparkles: postService 생성 * :sparkles: Exceptions.kt 생성 * :sparkles: postDto 생성 * :sparkles: postRepository 생성 및 기본 내용 작성 * :green_heart: application.yaml 로컬 환경에서 작동하도록 설정 * feat: createPost 기능 생성 * refactor: 리뷰 주신 거 수정 * refactor: post -> notice 수정 등 * chore: .idea 디렉토리 삭제 * chore: PR 템플릿 생성 (#2) * feat: 로컬 db용 docker-compose 파일 추가 및 application.yaml 수정 (#4) * feat: 공지사항 수정, 삭제, 태그 기능 추가 (#3) * fix: ExceptionHandler 추가 * feat: updateNotice 추가, valid 추가 * feat: deleteNotice 추가 * feat: enrollTag 기능 추가, noticeTag 연관 엔티티 추가 * feat: 공지사항 작성할 때 태그 생성 및 수정 * fix: 로컬 db 없앰 * fix: pr 리뷰 수정 * fix: pr 리뷰 수정 * fix: noticeTag assign * feat: 구성원(교수) 생성 및 조회 API 구현 (#8) * feat: 교수 엔티티 및 DTO 설계 * feat: 교수 생성 및 조회 * Docs: Swagger 추가 (#7) * Docs: Add swagger dependency * Docs: Add basic config for swagger * Docs: Add basic configuration for swagger. * feat: 페이지네이션+검색 기능 추가 (#5) * feat: isPublic, isSlide, isPinned 추가 * feat: queryDsl 적용 위해 gradle 추가 fix: javax -> jakarta 변경 * feat: queryDsl 도입 * feat: 키워드+태그 검색 추가 * feat: search query에 isDeleted, isPublic 추가 및 isPinned 우선순위 설정 * fix: requestBody -> requestParam 수정 * feat: 페이지네이션 추가 * fix: 키워드 booleanBuilder 추가, application.yaml 수정 * fix: searchNotice readOnly 추가 * fix: SearchRequest 삭제 * fix: NoticeDto tags 추가 * fix: pr 리뷰 수정 / feat: 검색 기능 보강 및 수정 * fix:코드 수정 * fix: SearchResponse isPinned 추가 * fix: SearchResponse에 total 추가 * fix: 페이지 개수 수정 * fix: searchNotice queryDsl 오류 수정 * fix: local 설정 변경 * CICD: 배포 자동화 (#6) * CICD: Change expose port and added image tag * CICD: Change ddl-auto to create in prod profile for test * CICD: Added Deploy github action * CICD: Merge jobs to one job * Fix: Change checkout order to first step * CICD: Add context for docker build action * Fix: Change spring profile arg position * CICD: Change openjdk version to 17 * CICD: Change docker compose build image tag to latest * CICD: Change to use ghcr repository. * Fix: change list to string in docker push tags. * Fix: Change registry to ghcr.io * Fix: change env to pass to github action instead of ssh export command * Fix: unwrap bracket. * Fix: wrap Profile with "" * CICD: Add .env file * CICD: Change prod ddl-auto to create (for developing), and add TODO comment. * CICD: Remove cicd/deploy branch for condition. * feat: 구성원(교수) 수정 및 삭제 API (#9) * feat: 교수 조회시 최종학력이 앞으로 오게끔 정렬 * feat: 교수 수정 및 삭제 API * feat: 학력과 경력 엔티티 필드 변경, 수정 API 구현 * feat: 구성원(행정직원) CRUD API (#10) * feat: 행정직원 엔티티 및 DTO 설계 * feat: 행정직원 CRUD * feat: 교수 조회시 이름순 정렬 * fix: 교수 연구 분야 Set -> List 로 변경 * feat: 행정직원 주요업무 업데이트 구현 * feat: news 패키지 추가, 디벨롭 및 프론트에 맞게 엔티티 변경 (#12) * feat: news 패키지 생성 * feat: readNews 생성, news 패키지 추가로 인한 명칭 변경 * feat: createNews, enrollTag(새소식) 추가, news 패키지로 인한 명칭 추가 변경 * feat: updateNews, deleteNews 추가 * fix: searchNotice 관련 명칭 변경 * feat: searchNews 추가 * fix: develop 브랜치 반영, 프론트 요구사항 반영 * feat: readNotice, readNews에 이전글 다음글 추가 * 태그 업데이트 코드 리팩터링중 * refactor: 코드 수정, 이전제목 추가 * fix: 게시글 하나일때 read 가능 * fix: prevNext null 없애기 * fix: 이전글 다음글 null 수정 * fix: main에서 develop으로 pr (#16) * feat: merge develop to main (#13) * feat: 공지사항 생성, 공지사항 읽기 기능 추가 (#1) * :sparkles: 패키지 및 엔티티 생성 * :sparkles: BaseTimeEntity 생성, PostEntity 기본 내용 작성 * :sparkles: PostController 생성 및 기본 내용 작성 * :sparkles: postService 생성 * :sparkles: Exceptions.kt 생성 * :sparkles: postDto 생성 * :sparkles: postRepository 생성 및 기본 내용 작성 * :green_heart: application.yaml 로컬 환경에서 작동하도록 설정 * feat: createPost 기능 생성 * refactor: 리뷰 주신 거 수정 * refactor: post -> notice 수정 등 * chore: .idea 디렉토리 삭제 * chore: PR 템플릿 생성 (#2) * feat: 로컬 db용 docker-compose 파일 추가 및 application.yaml 수정 (#4) * feat: 공지사항 수정, 삭제, 태그 기능 추가 (#3) * fix: ExceptionHandler 추가 * feat: updateNotice 추가, valid 추가 * feat: deleteNotice 추가 * feat: enrollTag 기능 추가, noticeTag 연관 엔티티 추가 * feat: 공지사항 작성할 때 태그 생성 및 수정 * fix: 로컬 db 없앰 * fix: pr 리뷰 수정 * fix: pr 리뷰 수정 * fix: noticeTag assign * feat: 구성원(교수) 생성 및 조회 API 구현 (#8) * feat: 교수 엔티티 및 DTO 설계 * feat: 교수 생성 및 조회 * Docs: Swagger 추가 (#7) * Docs: Add swagger dependency * Docs: Add basic config for swagger * Docs: Add basic configuration for swagger. * feat: 페이지네이션+검색 기능 추가 (#5) * feat: isPublic, isSlide, isPinned 추가 * feat: queryDsl 적용 위해 gradle 추가 fix: javax -> jakarta 변경 * feat: queryDsl 도입 * feat: 키워드+태그 검색 추가 * feat: search query에 isDeleted, isPublic 추가 및 isPinned 우선순위 설정 * fix: requestBody -> requestParam 수정 * feat: 페이지네이션 추가 * fix: 키워드 booleanBuilder 추가, application.yaml 수정 * fix: searchNotice readOnly 추가 * fix: SearchRequest 삭제 * fix: NoticeDto tags 추가 * fix: pr 리뷰 수정 / feat: 검색 기능 보강 및 수정 * fix:코드 수정 * fix: SearchResponse isPinned 추가 * fix: SearchResponse에 total 추가 * fix: 페이지 개수 수정 * fix: searchNotice queryDsl 오류 수정 * fix: local 설정 변경 * CICD: 배포 자동화 (#6) * CICD: Change expose port and added image tag * CICD: Change ddl-auto to create in prod profile for test * CICD: Added Deploy github action * CICD: Merge jobs to one job * Fix: Change checkout order to first step * CICD: Add context for docker build action * Fix: Change spring profile arg position * CICD: Change openjdk version to 17 * CICD: Change docker compose build image tag to latest * CICD: Change to use ghcr repository. * Fix: change list to string in docker push tags. * Fix: Change registry to ghcr.io * Fix: change env to pass to github action instead of ssh export command * Fix: unwrap bracket. * Fix: wrap Profile with "" * CICD: Add .env file * CICD: Change prod ddl-auto to create (for developing), and add TODO comment. * CICD: Remove cicd/deploy branch for condition. * feat: 구성원(교수) 수정 및 삭제 API (#9) * feat: 교수 조회시 최종학력이 앞으로 오게끔 정렬 * feat: 교수 수정 및 삭제 API * feat: 학력과 경력 엔티티 필드 변경, 수정 API 구현 * feat: 구성원(행정직원) CRUD API (#10) * feat: 행정직원 엔티티 및 DTO 설계 * feat: 행정직원 CRUD * feat: 교수 조회시 이름순 정렬 * fix: 교수 연구 분야 Set -> List 로 변경 * feat: 행정직원 주요업무 업데이트 구현 * feat: news 패키지 추가, 디벨롭 및 프론트에 맞게 엔티티 변경 (#12) * feat: news 패키지 생성 * feat: readNews 생성, news 패키지 추가로 인한 명칭 변경 * feat: createNews, enrollTag(새소식) 추가, news 패키지로 인한 명칭 추가 변경 * feat: updateNews, deleteNews 추가 * fix: searchNotice 관련 명칭 변경 * feat: searchNews 추가 * fix: develop 브랜치 반영, 프론트 요구사항 반영 * feat: readNotice, readNews에 이전글 다음글 추가 * 태그 업데이트 코드 리팩터링중 * refactor: 코드 수정, 이전제목 추가 * fix: 게시글 하나일때 read 가능 * fix: prevNext null 없애기 * fix: 이전글 다음글 null 수정 --------- * hotfix: 사용하지않는 Dto 및 엔티티 삭제 (#14) --------- * feat: seminar 패키지 추가 (#17) * feat: createSeminar, readSeminar, updateSeminar 추가 * feat: deleteSeminar, searchSeminar 추가 * fix: distinct 삭제 * hotfix: 불필요한 dto 삭제 (#20) * hotfix: 불필요한 dto 삭제 * build.gradle 수정 * fix: 이미지 uri 필드 추가 및 프론트 요구사항 반영 (#21) * feat: 이미지 uri 필드 추가 및 isActive 대신 status 추가 * fix: 행정직원 전체 조회 응답에서 task 삭제 * fix: 교수진 페이지 응답 수정 * feat: introduction 패키지, undergraduate 패키지 추가 (#22) * feat: createUndergraduate, readUndergraduate 추가 * feat: readAllCourses, createCourse, readCourse 추가 * introduction 패키지 추가 * fix: dto에서 postType 삭제 * fix: postType pathVariable->requestBody 수정, 오타 수정 * fix: 프론트와 협의하여 이름 등 변경 * feat: academics 패키지 대학원도 가능하도록 추가 * feat: 장학제도 세부 장학금 create, read 추가 * fix: 수정 * fix:수정 * feat: admissions, research 패키지 추가 (#23) * feat: admissions-학부 에서 create, read 추가 * feat: admissions-대학원도 작성 가능하도록 추가 * feat: createResearch 추가 * feat: createLab 추가 * fix: 다른 패키지에 맞게 수정 * research-groups, research-centers에서 read, update 추가 * fix: admissions, research에서 프론트와 협의하여 이름 등 수정 * fix: 오타 수정 * fix: enum 추가, pr 리뷰 반영 * feat: oidc 로그인 (#27) * feat: oidc 로그인 * feat: TaskEntity name 추가 * feat: 배포 설정 * feat: 유저 정보에 학번 추가, 로그인 시 sub claim 확인 * feat: 배포 테스트 위해 redirect-uri 변경 * fix: groups claim 소문자로 수정 * feat: idsnucse 다운 되었을때 에러 처리 * feat: idsnucse 다운 되었을때 에러 처리 * feat: cors 설정 (#30) * fix: cors 추가 설정 (#32) * feat: cors 설정 * feat: cors 설정 * fix: CORS (#34) * feat: cors 설정 * feat: cors 설정 * feat: cors 설정 * fix: about, academics, admissions 패키지 수정 (#25) * fix: admissions, about 컨트롤러 변경 * fix: academics 컨트롤러 수정 * 커밋중 * fix: pr 리뷰 반영 * feat: readMain 추가 * pr 리뷰 반영 * feat: 일반 예약 및 정기 예약 API (#28) * feat: oidc 로그인 * feat: TaskEntity name 추가 * feat: 배포 설정 * feat: 유저 정보에 학번 추가, 로그인 시 sub claim 확인 * feat: 배포 테스트 위해 redirect-uri 변경 * fix: groups claim 소문자로 수정 * feat: 예약 엔티티 및 DTO 설계 * feat: 일반 예약 및 정기 예약 * feat: 예약 조회 API (#39) * feat: 권한 관리 위해 커스텀 어노테이션 생성 * feat: 예약 단건, 주별, 월별 조회 API * fix: 로컬 DB 설정 수정 * feat: 유저 조회 중복 쿼리 방지 * feat: 예약 응답에 recurrenceId 추가 * feat: 동시 예약 방지 * fix: 시큐리티 로그 다시 로컬에서만 보이도록 변경 * feat: 목데이터 날라가지 않도록 ddl-auto 수정 * feat: about, member, news, seminar 메인 이미지 업로드 추가 (#38) * feat: uploadImage 추가 * feat: about, member 사진 업로드 추가 * feat: news, seminar 사진 업로드 추가 * refactor: imageEntity 추가 리팩토링 * fix: gif 삭제 * fix: application.yaml 수정 * fix: newsService 태그 -> 이미지로 순서 변경 * fix: pr 리뷰 수정 * fix: extension 없애고, mainImage로 바꾸고, uuid 없애기 * fix: var 삭제 --------- * CICD: Change deploy port to 8080 (#40) --------- Co-authored-by: 우혁준 (HyukJoon Woo) Co-authored-by: Jo Seonggyu * feat: 장학제도 GET API 및 장학제도 페이지 응답 수정 (#44) * feat: 장학제도 GET API * feat: 장학제도 메인페이지 GET API 응답 수정 * feat: custom metadata 설정 + 리다이렉트 엔드포인트 변경 (#45) * feat: yml 파일에 custom metadata endpoint 추가 * feat: 로그인/로그아웃 성공 리다이렉트 엔드포인트 변경 * feat: attachments 패키지 추가, news와 seminar request에 attachments 추가 (#43) * feat: attachments 추가, news request에 attachments 추가 * feat: seminar request에 attachments 추가 * fix: mappedBy 추가 + bringAttachments null 없앰 * fix: 경로 분리 * fix: isDeleted false로 수정 --------- Co-authored-by: Junhyeong Kim * feat: Top Conference List GET API (#47) * feat: Top Conference List GET API * feat: db에서 가져올때 정렬 * feat: 파일 서빙, 다운로드, 삭제 API (#48) * feat: 파일 서빙, 다운로드, 삭제 API * fix: extension 중복, 경로 수정 * feat: 공지사항 글쓴이 추가 (#49) * CI/CD: Https 적용 및 백엔드, 데이터베이스, 프록시 서버 배포 분리 (#50) * Config: Add gitignore for caddy files. * CICD: Add caddy config file * CICD: Seperate docker compose file for db and backend server. * CICD: Docker Compose file for caddy proxy server. * CICD: Add path condition for only act when source file has changed. * CICD: Add workflow for deploying database changes. * CICD: Add workflow for proxy server changes. * Refactor: Add /api/v1 in front of all endpoints (except swagger-ui) * Refactor: Add v1 to Main Image url. * Refactor: change backend, frontend, login redirect uri to get from env. * CICD: Add url to .env * Fix: Change job name of database workflow, fix indent level. * Fix: Remove duplicated restcontroller mapping. * Fix: Set reverse proxy for swagger-ui/* for swagger. * Docs: Set swagger to only scan /api/** * Fix: add caddy to reverse api-docs/* for springdoc. * Fix: Add login uris for reverse proxying to backend server. * CICD: Remove testing branch condition. * CICD: Add logout uri to reverse proxy to backend server. * CICD: Remove test branch * fix: 프론트랑 협의하여 내용 변경 + news, seminar에 image, attachments update 추가 (#51) * feat: attachments 추가, news request에 attachments 추가 * feat: seminar request에 attachments 추가 * feat: about request에 attachments 추가 * feat: academics request에 attachments 추가 * fix: isPinned 삭제 * fix: image -> mainImage 변경, about에 greetings 추가 * fix: news, seminar update 수정 * fix: 전체적으로 image -> mainImage 변경 * fix: research 패키지 프론트에 맞춰 협의 (#52) * fix: professor, staff에 uploadImage 추가 * fix: research에서 isPublic 제거, feat: lab에서 attachments 추가 * fix: attachments -> attachmentResponses 변경 * feat: LabProfessorResponse 추가 * fix: pdf를 list가 아닌 단일항목으로 수정 * feat: readLab 추가 * feat: ResearchLabReponse 추가 및 주석 삭제 * fix: researchDetail에 사진, 첨부파일 업로드 추가 * fix: pr 리뷰 수정 * fix: 오타 수정 * [Refactor] 로그인, file uri 배포 환경에 맞게 수정 (#53) * Refactor: Change mapping of file to append /api/v1 in front. * Refactor: Change login, logout redirect uri * fix: https 적용 관련 로그인 수정 (#56) * fix: notice 패키지 프론트에 맞게 협의 (#54) * fix: professor, staff에 uploadImage 추가 * fix: research에서 isPublic 제거, feat: lab에서 attachments 추가 * fix: attachments -> attachmentResponses 변경 * feat: LabProfessorResponse 추가 * fix: pdf를 list가 아닌 단일항목으로 수정 * feat: readLab 추가 * feat: ResearchLabReponse 추가 및 주석 삭제 * fix: researchDetail에 사진, 첨부파일 업로드 추가 * feat: notice에 attachments 추가 * fix: fix_with_front1 변경 사항에 맞게 수정 * feat: isImportant 추가 * feat: NoticeSearchDto에 hasAttachment 추가 * fix: update에서 attachmetnts가 null일 때 빈 목록 반환 * feat: 공지사항 선택 고정해제, 선택 삭제 추가 * fix: news, seminar에 isImportant 추가 * fix: pr 리뷰 수정 * fix: 수정했던거 다시 복구 * feat: 신임교수초빙 (#59) * feat: 행정실 권한 체크 API (#60) * [CICD] mainImage, attachment 경로 mount 설정 (#55) * CICD: Add mainImage, attachment directory for mounting * CICD: Add volumes to mount with server directory. (for attachment) * [Feat] 예전 url과 비슷하게 이전 파일(사진)들 접근할 수 있도록 controller 생성 (#58) * Config: Add oldFiles path for properties. * Feat: Add deprecated file controller for getting old files temporarily. * CICD: Add volume mounting for old files. * CICD: Add dir to mount for old files. * Refactor: Change api to /sites/default/files/{PATH} * CICD: Add reverse proxy for old file serving. * fix: 예약 dto에 지도교수, 반복 횟수 추가 (#61) * fix: 로그아웃 엔드포인트 변경 (#64) * fix: 로그아웃 엔드포인트 변경 * fix: 로그아웃 성공 리다이렉트 엔드포인트 변경 * [Fix] Notice, News Description TEXT type으로 변환 (#65) * Fix: Change notice and news entity description type as TEXT. * Fix: Change to mediumtext * fix: newsSearchResponse, seminarSearchResponse 수정 (#66) * fix: newsSearchResponse 수정 * fix: SeminarSearchResponse 수정 * fix: 오타수정 * fix: 파일 업로드 경로 통일 (#68) * fix: 갯수만 fetch하도록 최적화 (#70) * Fix: Change type of additionalNote column on SeminarEntity to "TEXT" (#71) * fix: academics 패키지 프론트에 맞춰 협의, admin 패키지 추가 (#69) * fix: professor, staff에 uploadImage 추가 * fix: research에서 isPublic 제거, feat: lab에서 attachments 추가 * fix: attachments -> attachmentResponses 변경 * feat: LabProfessorResponse 추가 * fix: pdf를 list가 아닌 단일항목으로 수정 * feat: readLab 추가 * feat: ResearchLabReponse 추가 및 주석 삭제 * fix: researchDetail에 사진, 첨부파일 업로드 추가 * feat: notice에 attachments 추가 * fix: fix_with_front1 변경 사항에 맞게 수정 * feat: isImportant 추가 * feat: NoticeSearchDto에 hasAttachment 추가 * fix: update에서 attachmetnts가 null일 때 빈 목록 반환 * feat: 공지사항 선택 고정해제, 선택 삭제 추가 * fix: news, seminar에 isImportant 추가 * fix: pr 리뷰 수정 * fix: 수정했던거 다시 복구 * fix: course response 수정 * feat: academics에서 연도별로 주는 response 추가 * feat: academics YearResponses 추가 * fix: createScholarship 합치기 * fix: scholarship 패키지의 내용을 academics 하위로 옮김 * feat: createScholarshipDetail 추가 * fix: 필수 교양과목 response 변경 * feat: admin 패키지에서 readAllSlides 추가 * feat: admin 패키지 readAllImportants 추가 * feat: admin 패키지 중요안내 추가 * Refactor: HTML로부터 텍스트 추출 함수 Utils로 이동 (#73) * Feat: Add cleanTextFromHtml. * Refactor: Remove private clean method, replace to Utils.cleanTextFromHtml. * Refactor: Remove unused imports. * Feat: Add plain text description for notice (#74) * Feat: Add cleanTextFromHtml. * Refactor: Remove private clean method, replace to Utils.cleanTextFromHtml. * Refactor: Remove unused imports. * Feat: Add plainTextDescription. * Feat: Add plainTextDescription in createNotice. * Feat: add updating plainTextDescription when updating description. * fix: admissions 패키지 프론트에 맞게 협의 (#76) * fix: admissions 프론트에 맞게 협의 * fix: seminarEntity time 삭제 * fix: admissionsEntity pageName 추가 * fix: 불필요한 파일 삭제 * 커밋 * fix: 이전 글 다음 글만 fetch 하도록 쿼리 최적화 (#75) * fix: 이전 글 다음 글만 fetch 하도록 쿼리 최적화 * fix: distinct 수정 * fix: 쿼리 최적화 * fix: total Long 타입으로 수정 * CI/CD: Test 설정 (#77) * Config: Add kotest, mockk, h2 db for testing. * Config: Add test profile. * Config: Add testconfig for jpaqueryfactory. * CICD: Add build, test workflow * Fix: Revert local datasource url change. * [Test] Notice create, update 시 plainTextDescription 동작 테스트 (#78) * Config: Add test profile. * Test: Add Tests for Create, Update Notice, in perspective of plainTextDescription * Fix: Change life cycle hook resolution to container. * [Feat] Seminar plain text field 추가 (#79) * Feat: Add plain text column for description, introduction, additionalnote. * Feat: Add description, introduction, additionalnote for dto -> entity. * Feat: Change to update plain description, introduction, additional note. * Feat: Use plainTextDesription for searchdto. * Test: Test for create, update of plain texts. * Test: Fix seminar service test. * Feat: News plain text field 추가 (#80) * Feat: Add plainTextDescription field for news entity * Feat: Add to create, and update plainTextDescription. * Feat: Change to use plainTextDescription when making newssearchdto. * Test: Test for create/update plainTextDescription. * Feat: 구성원 검색 위한 table 추가. (#81) * Feat: MemberSearchEntity 추가. * Feat: MemberSearchRepository 추가 * Feat: MemberSearchService 추가 * Feat: ProfessorEntity, StaffEntity에 MemberSearch 추가. * Feat: ProfessorStatus에 한글 값 추가. * Feat: professor create, update 시 memberSearch도 반영하도록 추가. * Feat: seminar create, update 시 memberSearch도 반영하도록 추가. * Test: ProfessorService 테스트 추가. * Test: StaffServiceTest 추가. * fix: 새소식 세미나 쿼리 수정 (#82) * refactor: 유틸 패키지 생성 및 FixedPageRequest 분리 * feat: 새소식 세미나 이전 다음 글 및 total 쿼리 최적화 * fix: pageNum 값으로 usePageBtn 값 설정 * fix: import 경로 수정 * fix: local db port 3306 * 중복 삭제 * fix: prod endpoint https로 변경 * fix: main 프론트에 맞게 협의, notice 태그 enum 추가 (#83) * fix: mainResponse 다시 작성 * feat: TagInNoticeEnum 추가 * feat: notice enum 추가 * fix: 코드 수정 * fix: isPublic -> isPrivate으로 정리 (#86) * fix: rebase 정리 * fix: 오타 수정 * feat: 로컬 로그인 테스트용 엔드포인트로 임시 변경 (#87) * Feat: 구성원 검색 API 추가 (#85) * Feat: Add mysql custom dialect with MATCH AGAINST BOOLEAN MODE function. * CICD: Add config for mysql db * CICD: Add volumes for config file. * CICD: Add db_config for condition for db deploy * Feat: Add search top, and search query. * Feat: Add DTOs * Feat: Add Controller for member search only top, and page. * Feat: Add dialect config for application.yaml * Feat: Add controller for member search. * Refactor: Change exception message to korean. --------- Co-authored-by: Jo Seonggyu * fix: 세미나 시간 타입 변경 (#91) * fix: 세미나 시간 LocalDateTime으로 변경 * test: 테스트 수정 * fix: 태그 항목 수정 (#92) * fix: news tag 추가 (#90) * fix: news tag 추가 * fix: 일반인은 isPrivate = false인 것만, 직원은 모든 게시글 보여주기 * feat: 졸업생 창업 진로, 졸업생 진로 response 추가 (#94) * fix: news tag 추가 * fix: 일반인은 isPrivate = false인 것만, 직원은 모든 게시글 보여주기 * feat: about 졸업생 read 추가 * fix: 오타 수정 * fix: conference 주소 추가 (#95) * Feat: 연구 탭 통합검색 위한 Table 생성. (#97) * Feat: Add Controller for member search only top, and page. * Feat: Add ResearchSearchEntity, and entry for conference, research, lab entity. * Feat: For research create/update, lab create, add updating researchsearch. * Feat: Add empty repository and service for ResearchSearch * Fix: Fix typo, import library. * Feat: Lab Update API 추가 (#98) * Feat: Add Controller for member search only top, and page. * Feat: Add ResearchSearchEntity, and entry for conference, research, lab entity. * Feat: For research create/update, lab create, add updating researchsearch. * Feat: Add empty repository and service for ResearchSearch * Feat: Add update method for labentity. * Feat: Add update lab service. * Feat: Add update lab controller. * Test: Add ResearchServiceTest. * Feat: Add deleteAttachment (marking) * Fix: Add typo, add import library. * Feat: Conference page 수정 API (#99) * Feat: Add Controller for member search only top, and page. * Feat: Add ResearchSearchEntity, and entry for conference, research, lab entity. * Feat: For research create/update, lab create, add updating researchsearch. * Feat: Add empty repository and service for ResearchSearch * Feat: Add update method for labentity. * Feat: Add update lab service. * Feat: Add update lab controller. * Test: Add ResearchServiceTest. * Feat: Add Conference Repository. * Feat: add conferenc eentity method for create, update entity. * Feat: Change variables to mutable. * Feat: Add id in conferencedto. * Feat: Add to sort the conferenceList. * Feat: Add deleteAttachment (marking) * Feat add service to modify conference page (create, modify, delete conferences) * Feat: Add api for modify conference page. * Test: Add test for conference service. --------- Co-authored-by: Junhyeong Kim * fix: 파일 관련 수정 (#100) * fix: 업로드 파일 사이즈 제한 * fix: 원본 첨부파일 이름으로 응답 * refactor: 세미나 업데이트 시 삭제할 첨부파일 id만 받도록 변경 * fix: 파일 api 경로 수정 * fix: deleteAttachment * fix: GET notice 권한 관련 로직 수정 (#101) * Refactor: Extract Full Text Query Template to CommonRepository (#102) * Feat: Extract full text search template to common repository. * Feat: Change full text search to use extracted repository. * Feat: Add for 4 elements. --------- Co-authored-by: Junhyeong Kim * Feat: Notice Seminar News Search to Full Text Query (#105) * Feat: Extract full text search template to common repository. * Feat: Change full text search to use extracted repository. * Feat: Add for 4 elements. * Feat: Add more args cnt. * Feat: Change keyword boolean builder to full text. * Feat: Change keyword boolean builder to full text. * Feat: Change keyword boolean builder to full text. * Hotfix: Change mount volume. (#103) * feat: api 권한 설정 (#84) * fix: GET notice 권한 관련 로직 수정 (#109) * fix: 필요한 column만 select (#111) * refactor: 공지 태그 응답 한국어로 변경 및 리팩토링 (#113) * refactor: 공지 태그 응답 한국어로 수정 및 리팩토링 * refactor: 새소식 태그 리팩토링 * fix: NewsRepository * fix: 공지 새소식 PATCH 로직 수정 (#114) * fix: 공지 새소식 PATCH 로직 수정 * test: 테스트 수정 * fix: news 엔티티에 날짜 추가 (#115) * Feat: 검색 결과에서 keyword 위치, 적절한 substring 추출 위한 method 추가 (#116) * Feat: Add utils substringAroundKeyword * Test: Add test for Utils.kt * fix: total 더미 값 + pageNum null일때만 더미 값 주기 (#117) * fix: 예약 조회 권한 분리 및 응답 단순화 (#119) * fix: 예약 단건 조회 권한 분리 * feat: 월별,주별 조회용 SimpleReservationDto * fix: 로그인 리다이렉트 엔드포인트 복구 (#121) * feat: migrateAbout, migrateFutureCareers 추가 (#118) * feat: AboutRequest, migrateAbout 추가 * feat: future-careers 마이그레이션 추가 * feat: request 패키지 추가 * fix: AboutRequest 간소화 * fix: future-careers description aboutEntity에 저장 * feat: about 패키지 마이그레이션 추가 (#120) * feat: AboutRequest, migrateAbout 추가 * feat: future-careers 마이그레이션 추가 * feat: request 패키지 추가 * fix: 불필요한 dto 삭제 * feat: migrateStudentClubs 추가 * feat: migrateFacilities 추가 * feat: migrateDirections 추가 * fix: 불필요한 dto 삭제 * fix: request 패키지 삭제 * fix: 오타 수정 * fix: news, notice에 titleForMain 추가 (#125) * fix: 소식3총사 titleForMain 데이터 생성 * fix: 테스트에 titleForMain 추가 * Revert "fix: 테스트에 titleForMain 추가" This reverts commit e824ad34e60e0785f1d4c4e187776d4b8bf53dfa. * fix: 테스트에 titleForMain 추가 * fix: seminar titleForMain 추가 * fix: seminar test titleForMain 추가 * feat: LocalDateTime 응답 마지막에 Z 추가 (#126) * refactor: deleteIds request 내부로 이동 (#127) * refactor: deleteIds request 내부로 이동 * test: 테스트 수정 * fix: 확장자 중복 버그 (#128) * feat: 관리자는 새소식, 세미나 목록에서 비공개 글 확인 가능 (#129) * feat: research, member 패키지 migrate 추가 (#130) * feat: migrateProfessors 추가 * feat: migrateResearchDetail 추가 * feat: migrateLabs 추가 * fix: migrate 엔티티 description에 mediumText 추가 * feat: migrateStaff 추가 * fix: 빠진거 수정 * fix: 중복 패키지 삭제 * fix: 너무 안긴거 text로 수정 * fix: noticeSearchDto에도 private 추가 (#131) * fix: noticeSearchDto에도 private 추가 * fix: json 추가 * fix: 수정 및 추가 * fix: 수정 * Fix: 키워드 추출 함수 수정 (#122) * Fix: Fix IndexOutOfBoundException, change to return index based on substring. * Fix: Change to check index exclude case, and set front, back index to better contains keyword. * Test: Update Test. * Feat: 통합검색 Notice API 구현 (#123) * Feat: Add dtos for notice total search. * Feat: Add repository for notice total search. * Feat: Add service, controller for notice total search * Feat: News 통합 검색 API 구현 (#124) * Feat: Add dto for total search of news. * Feat: Add repository for total search. * Feat: Add service, controller for news total search. * Fix: Fix conflict issues. * fix: 기존 objectMapper 설정 오버라이드 (#132) * feat: 파일 업로드 컨트롤러 구현 (#133) * Feat: Change titleForMain column to TEXT type. (#134) Co-authored-by: Junhyeong Kim * hotfix: mixed content issue (#136) * hotfix: loginPage to https (#139) * hotfix: mixed content issue * hotfix: loginPage * fix: false로 수정 (#141) * fix: 이전 다음 글에서 비공개 글 제외 (#143) * fix: 이전 다음글 비공개 제외 * fix: prev-next * CBT 위해서 예약 GET 권한체크 주석처리 * Feat: 뉴스 날짜로 정렬 (#144) * Feat: Change date field to NOT NULLABLE. * Feat: Change to sort by date, not createdat. * Test: Fix test. * Test: Move news test dir. --------- Co-authored-by: Junhyeong Kim * Feat: Add description for slide. (#146) * style: ktlint (#145) * style: ktlint * Feat: change to ktlint_disabled_rules * Refactor: fix to lint using ktlint. * Refactor: After merge. * Fix: After merge. * Refactor: ReReLint --------- Co-authored-by: huGgW * fix: 텍스트 인코딩 (#147) * fix: content-dispostion * fix: 텍스트 인코딩 * fix: 강제 다운로드 * style: ktlint --------- Co-authored-by: 우혁준 (HyukJoon Woo) * Update ktlint-check.yml * fix: 중요 안내 (#149) * fix: 삭제된 글 중요 안내에서 보이지 않도록 수정 * fix: 중요 안내 최대 2개만 보내도록 + plainTextDescription * style: ktlint * fix: 첨부파일 다운로드 (#154) * Feat: 관리자 슬라이드에 total 추가, refactoring (#153) * Feat: Change dto name, and add total to AdminSlidesResponse. * Feat: Add pageSize as parameter. * Feat: move readAllSlides to news repository, add total query. * Feat: Extract getNewsEntityByIdOrThrow * Feat: Move readAllSlides and unSlideManyNews logic handling to news service. * Comment: Add comment for refactoring. * Test: Add test for read all slides. * Refactor: Linting. * Feat: Change pageNum to start at 1. --------- Co-authored-by: Junhyeong Kim * fix: 세미나 isYearLast 로직 수정 (#155) * fix: 세미나 isYearFirst 로직 수정 * fix: isYearLast로 재변경 및 로직 수정 * fix: 이전글 다음 글 isDelete,isPrivate 조건 추가 (#151) * fix: 이전글 다음 글 isDelete 추가 * fix: ktlint 수정 --------- Co-authored-by: 우혁준 (HyukJoon Woo) Co-authored-by: Junhyeong Kim * fix: 메인 공지 정렬 (#158) * fix: 예약 조회 권한 수정 (#157) * Feat: 통합검색 정렬 최신순 (#156) * Feat: Admin Important에 pagination 추가, total 추가. (#159) * fix: titleForMain이 없어도 isImportant 등록 가능 (#160) Co-authored-by: 우혁준 (HyukJoon Woo) * fix: em.close() 추가 (#162) * fix: em.close() 추가 * fix: total에도 추가 * feat: migrateConference 추가 (#164) * feat: migrateConferences 추가 * fix: 수정 * fix: 수정 * fix: 검색 추가 * fix: createConferenceDto 삭제 * CICD: Add blocking backend api except frontend. (#166) * CICD: Add blocking backend api except frontend. * CICD: Remove login, logout, file api from blacklist. * CICD: Change to just block swagger apis. * fix: group 변경 반영 (#167) * refactor: 실제 스누씨 서버 연동 (#168) * refactor: local-test 중복 항목 공통으로 처리하고 prod에서 오버라이드 * feat: 스누씨 실서버용 환경 변수 설정 * refactor: 로그인 페이지 통합 및 CORS 설정 변경 * fix: CORS * feat: migrateAdmissions 추가 (#165) * fix: migrateAdmissions 추가 * fix: 잘못 쓴거 수정 --------- Co-authored-by: Junhyeong Kim * Feat: Increase speakerurl size (#170) * fix: 로컬에서도 idsnucse로 연결 (#174) * fix: 로컬에서도 idsnucse 바라보게끔 변경 * fix: test에서 idsnucse 접근 x * Revert "fix: test에서 idsnucse 접근 x" This reverts commit cf526452abdc629b433efe701c9fd6ff60893f1e. * Fix: move local security settings to local, not global. * Fix: Disable SecurityConfig on "test" profile --------- Co-authored-by: huGgW * feat: Research 검색 (#175) * fix: 로컬에서도 idsnucse 바라보게끔 변경 * feat: enable async. * Feat: create professor event. * Feat: Publish event on professor modification. * Feat: Update research search when listen professor event. * Test: ResearchSearchService listen professor event * fix: test에서 idsnucse 접근 x * Revert "fix: test에서 idsnucse 접근 x" This reverts commit cf526452abdc629b433efe701c9fd6ff60893f1e. * Fix: fixed event listener logic * Feat: Add search api for research. * Test: Fix test. * Fix: move local security settings to local, not global. * Fix: Disable SecurityConfig on "test" profile --------- Co-authored-by: leeeryboy * feat: staff 검색 기능 추가 (#176) * Feat: 학사 및 교과 검색 기능 추가 (#177) * Revert "fix: test에서 idsnucse 접근 x" This reverts commit cf526452abdc629b433efe701c9fd6ff60893f1e. * Fix: move local security settings to local, not global. * Feat: AcademicsStudentType에 값 지정. * Feat: AcademicsSearchEntity 추가 * Feat: 각 entity에 search 관계 추가 * Feat: 각 entity create하는 서비스 method에 search entity도 생성하도록 추가. * Feat: Add academicsSearchRepository * Feat: Add dto for search * Refactor: Make name field of academics non null * Feat: Add exchangePageNum to utils. * Feat: Add academics search service * Feat: Add search api for academics. * Feat: add validation code for utils.exchangePageNum * Test: Add testcode for exchangePageNum * REfactor: Add transactional readonly for readGeneralStudies * fix: apply newacademics to use after saved cached entity. * fix: fix to add target enitity when create of search entity is called. * refactor: add default values for nullable values. * Temp: test code, should be fixed h2 issue. --------- Co-authored-by: leeeryboy * Fix: Research 검색에서 html 태그 없이 검색되도록 설정 (#178) * Fix: Change createContent to remove html tags on description. * Test: Update to check removing html tags. * Feat/add language field (#180) * feat: 엔티티, dto에 language 추가 * feat: read에 language 추가 * fix: ktlint 수정 * fix: languageRepository 삭제, 함수 enum 클래스로 이동 * fix: language pathVariable -> requestParam 변경 && engName 추가 삭제 * fix: dto 소문자로 return하기 enum 함수로 넣어주기 * fix: requestParam defaultValue 추가 * Refactor: Admission 언어 추가 및 리팩터링 진행 (#182) * Feat: Move type to type dir, and add main type enum. * Refactor: Add request body for create, and changed migrate elem body. * Feat: Change pagename -> name, add language and mainType column, add unique constraints. * Refactor: Remove unused request dto. * Refactor: Change AdmissionsDto by adding columns, to be able to used as pure dto. * Feat: Change to more specific search query. * Feat: Change multiple methods to few methods, by using mainType. * Feat: Change to few controller by using mainType, and use request bodies instead of dto. * Test: AdmissionsServiceTest * Fix: Add mapping path variable. * Fix: Fix replacing logic. * feat: academics 패키지에 language field 추가 (#181) * feat: 엔티티, dto에 language 추가 * feat: read에 language 추가 * feat: academics에 language field 추가 * fix: ktlint 수정 * feat: course 엔티티에 language field 추가 * feat: readCourse에 language parameter 추가 * fix: languageRepository 삭제, 함수 enum 클래스 이동, academicsEntity name 속성 nullable 추가 * fix: requestParam+defaultValue 추가, * fix: academics name nullable 없앰 * feat: staff에 language, migration 방법 추가 (#183) * feat: staffEntity에 language 추가 * feat: branch 이름 변경 * fix: branch origin 이름 변경 * feat: staff 읽기, 수정에서 language 속성 추가 * feat: migrateStaffImage 추가 * fix: StaffServiceTest 수정 * Feat: Admission 검색 (#184) * Feat: Add korean, english section name. * Feat: add searchContent column for saving index. * Feat: Add search query repository method. * Feat: Define dto of search result element. * Feat: Add search Top Admission method, and add migrate method creating search content. * Feat: Add search top admissions method to controller. * Test: Add test for Admission Service. * Refactor: Remove Location Entity (#186) * feat: member/research 패키지 이미지와 첨부파일 마이그레이션 코드 작성 (#185) * feat: migrateProfessorImage 추가 * feat: migrateResearchImageAndAttachments 추가 * feat: migrateStaffImage 추가 * feat: migrateLabPdf 추가 * feat: about에서 이미지랑 첨부파일 추가 (#187) * feat: migrateProfessorImage 추가 * feat: migrateResearchImageAndAttachments 추가 * feat: migrateStaffImage 추가 * feat: migrateLabPdf 추가 * feat: about에서 이미지랑 첨부파일 추가 * feat: dev 로그인 (#188) * dev서버 로그인 바이패스 * style: ktlint * fix: mock auth config 분리 * fix: uri 수정 --------- Co-authored-by: 우혁준 (HyukJoon Woo) * fix: professor language 추가 (#189) * fix: professor language 추가 * feat: professor 테스트 추가 * feat: professor language 다른 테스트에도 추가 * feat: 테스트 알맞게 수정 * Feature: About 검색 추가 (#192) * Feat: Change to create search content. * Feat: Add search query method. * Feat: Add create, migrate to create searchContent, and add search method. * Feat: add search api * COMMENT: add fix comment for aboutservicetest. * Refactor: Move dtos to ee directory. * Feat: Add validation for number, pagesize, pagenum * feat: research 패키지에 language 추가 (#194) * fix: professor language 추가 * feat: professor 테스트 추가 * feat: professor language 다른 테스트에도 추가 * feat: 테스트 알맞게 수정 * feat: researchDetail에 language 추가 * feat: lab에 language 추가 * fix: about, admission migrate search todo 추가 * Refactor: Admission 검색 리펙터링 (#193) * Refactor: Merge queries into one. * Refactor: Add page search method. * Refactor: Add total count. * Refactor: change to search page or search top. * feat: academics 패키지 마이그레이션 추가 (#195) * fix: professor language 추가 * feat: professor 테스트 추가 * feat: professor language 다른 테스트에도 추가 * feat: 테스트 알맞게 수정 * feat: researchDetail에 language 추가 * feat: lab에 language 추가 * fix: about, admission migrate search todo 추가 * fix: course migrate 추가 * fix: conference, scholarship language 추가 * fix: migrate academics, scholarship 추가 * fix: migrate academics attachments 추가 --------- Co-authored-by: 우혁준 (HyukJoon Woo) * fix: ktlint 정리 * fix: ktlint 정리 2 * fix: 실수로 삭제한 코드 복구 * Refactor: Member Search (#197) * feat: professor 테스트 추가 * feat: 테스트 알맞게 수정 * fix: about, admission migrate search todo 추가 * Fix: Add commented authentication. * Feat: Add language field to search entity * Feat: Add language in search condition, remove duplicated exchangePageNum, Merge search queries * Feat: Change res body dir, merge two seperate body into one, add language field * Feat: Change return body, repository method useing. * Feat: Add language query parameter, change response body. * Test: Check language of search. * Refactor: Change res body results key as "results" * Refactor: Remove unneeded transactional on interface. --------- Co-authored-by: DESKTOP-USQPRVG\gram * feat: getMapping에 language requestParam 추가 (#198) * fix: academics 패키지 get에 language 추가 * fix: professor 패키지 get에 language 추가 * fix: research 패키지 get에 language 추가 * feat: academics 패키지 이름에 맞게 변경 (#199) * feat: add readDegreeRequirements * feat: readGeneralRequirements 삭제, readDegreeRequirements 추가 * feat: AcademicsEntity time 칼럼 삭제 --------- Co-authored-by: 우혁준 (HyukJoon Woo) * Refactor: academics search (#200) * Refactor: research search (#201) * fix: pageSize 추가 (#203) * fix: pageSize 쿼리 파라미터 추가 * 함수 인자에서 defaultValue 지정 * fix: 인증 로직 수정 (#206) * fix: mock-login 위해서 인증 로직 수정 * add v1 to uri * fix: migrateConferences에서 authenticatedStaff 삭제 (#204) * fix: simpleProfessorDto에서 status 추가 (#205) * fix: readDegreeRequirements에 파일 보이도록 추가 (#209) * fix: StudentClubDto에 engName 추가 (#210) * fix: researchEntity에 websiteURL 추가 (#211) * fix: researchEntity에 websiteURL 추가 * fix: ProfessorServiceTest 수정 * Fix: `exchangepageNum`에서 total이 0일 경우 케이스 추가. (#213) * Fix: Add condition that when total is 0 return pageNum as 1 * Refactor: Rename method name to be more clear. * Refactor: Remove not needed duplicated conditional check. * Test: Add test for exchangeValidPageNum for checking when total = 0 * fix: readGeneralStudiesRequirements 추가 (#212) * fix: readGeneralStudiesRequirements 추가 * fix: readGeneralStudiesRequirements 프론트 협의사항에 따라 수정 * fix: DegreeRequirementsDto description 삭제 * AcademicsPostType 타입 이름 주석 추가 * Fix: Notice 비밀글 표시 안되도록 수정 (#216) * Feat: Add FindByIdAndIsPrivateFalse * Fix: Change totalSearchNotice to get isStaff and hide private when not a staff. * Fix: Change searchTotalNotice and readNotice to consider isStaff. * Fix: Change totalSearchNotice and readNotice to check authentication and get staff info. * fix: readFutureCareers에 description 수정 (#214) Co-authored-by: 우혁준 (HyukJoon Woo) * fix: 파일 크기 100MB로 늘림 * Feat: Research 검색 결과 research 타입 상세화 (#218) * Refactor: Remove unused method * Comment: Add comment * Feat: Add specific research types to enum * Feat: Change to give more specified enum when it is research related column. * Refactor: Remove unused LAB entry from Research. * fix: pdf 타입 AttachmentResponse로 변경 (#220) * Feat: Add more type to academic. (#221) * Fix: Change partialDescription to give with searchContent. (without html, all fields) (#222) * fix: 단건 조회 & 통합 검색 권한 체크 (#217) * fix: private 단건 조회 권한 체크 * Fix: Notice 비밀글 표시 안되도록 수정 (#216) * Feat: Add FindByIdAndIsPrivateFalse * Fix: Change totalSearchNotice to get isStaff and hide private when not a staff. * Fix: Change searchTotalNotice and readNotice to consider isStaff. * Fix: Change totalSearchNotice and readNotice to check authentication and get staff info. * fix: newsTotalSearch 권한 체크 * style: ktlint --------- Co-authored-by: 우혁준 (HyukJoon Woo) * Fix: Formatting issue. * Fix: Add studentType for all academic search result. (#224) * Config: Spring Boot 3.2, Java 21로 업그레이드, Virtual Thread 적용 (#223) * Fix: add join condition for news total search (#226) * Feat: Spring Boot 서버에서 Error 발생 시 Slack으로 로그 전송 기능 추가 (#228) * Dependency: Add slack appender * Config: Add slack appender for sending error log to slack. * Config: Add slack api info when making env file. * Feat: Add to logging error for SQLIntegrityConstraintViolationException and RESTClientException * Config: Update gradle wrapper * feat: 학부 총괄 행정직원 맨 앞으로 이동 (#232) * feat: 한글 이름 우선순위 정렬 (#235) * feat: 한글 이름 우선순위 정렬 * refactor: 유틸 함수 분리 * Feat: 게시물 제외 통합검색에 사용되는 field들 refersh하는 API 추가 (#236) * Feat: Add refresh search event * Feat: Add api for trigger refresh search indexes. * Feat: Add refresh search event listener for about entity. * Feat: Add refresh search event listener for academics entity. * Feat: Add refresh search event listener for admission entity. * Feat: Add refresh search event listener for member entity. * Feat: Add refresh search event listener for research entity. * Fix: Change transactional propagation as REQUIRES_NEW for about's refresh event listener. * style: ktlint --------- Co-authored-by: Junhyeong Kim Co-authored-by: leeeryboy * delete image thumbnail logic (#237) * Fix: Fill "mappedBy" information for remove about_attachments table. (#239) * CICD: 배포, 개발계 분리 적용 (#238) * CICD: Add dev deployment workflow * Refactor: Remove unused comments * Config: Add dev profile * CICD: Add ssh port for production deploy environment * Config: Change slack message format to more readable * fix: course 띄어쓰기 그대로 유지 (#241) * prod에서 mock-login 삭제 (#242) * feat: mock login api only for profile dev * feat: delete mock login api in prod * fix: 교수 정렬 (#243) * Refactor: Move languagetype from properties from enums (#244) Co-authored-by: Jo Seonggyu * fix: stat year 2050년까지 확장 (#245) * fix: stat year 2050년까지 확장 * fix: 쿼리 수정 * fix: adjust max thread and pool size (#246) * Feat: 공지, 새소식, 세미나 정렬 옵션 추가 (#247) * Refactor: Move languagetype from properties from enums * Feat: Add sort order type for content search (notice, news, seminar) * Feat: Add sort option for news search. * Feat: Add sort option for notice search. * Feat: Add sort option for seminar search. * Fix: Handle for empty keyword. --------- Co-authored-by: Junhyeong Kim * CICD: env 파일 분리, 서버 docker image tag 분리 (#248) * CICD: Seperate docker image tag of prod, dev, rename env * CICD: Change env name of db * CICD: Change env name of proxy * CICD: Remove unused latest tag --------- Co-authored-by: Junhyeong Kim * feat: 개인정보 동의 여부 기록 (#250) Co-authored-by: 우혁준 (HyukJoon Woo) * Fix: fix merge conflict * Fix: give 0.0 to score when keyword is null or empty on notice. (#254) * CICD: Disable auto https redirect. (#256) * CICD: Revert to enable redirect * fix: sort labs (#258) * fix: idsnucse prod 설정 분리 (#260) * fix: idsnucse prod * fix: 환경변수 이름 * Config: Disable migrate on profile prod. (#262) * Config: Disable migrate on profile prod. * Config: Disable refresh search on profile prod. * fix: adjust max thread and pool size (#264) * Feat: 검색 refresh api 로컬에서 접근 가능하도록 변경 (#265) * Feat: Change refresh search api available at prod profile * Config: Block refresh api from proxy. * Config: Remove unused reverse proxy of swagger, api docs. * fix: sort seminar (#267) Co-authored-by: 우혁준 (HyukJoon Woo) * fix: 교양 교과과정 변경 내역 삭제 (#268) * Config: 로그 파일 저장 추가, 항목 추가 (#266) * Config: Add async file log appender for dev, prod env * Config: Set log to show servlet, security, sql info for all profile. * CICD: Mount log directory. * Fix: Fix property * Fix: Extract and set log file name and base property for all profiles. * Update docker-compose-backend.yml (#269) * fix: subtract 9 hours to start to convert it to UTC (#270) * fix: readDegreeRequirements response 행정실 요구사항에 맞게 수정 (#272) * fix: readDegreeRequirements response 행정실 요구사항에 맞게 수정 * fix: 주석 삭제 * Feat: 검색 refresh api 로컬에서 접근 가능하도록 변경 * tcl 관련 수정 (#274) * fix: 인정 IF 필드 추가 * fix: code 없는 컨퍼런스 후순위로 조정 * test 수정 * 영문 페이지 LastName 기준 정렬 (#276) * TCL 코드, 인정IF 삭제 및 이름 순 정렬 (#278) * TCL 코드, 인정IF 삭제 및 이름 순 정렬 * style: ktlint * test 수정 * style: ktlint * feat: id list api for seo (#279) --------- Co-authored-by: Jo Seonggyu Co-authored-by: 우혁준 (HyukJoon Woo) Co-authored-by: DESKTOP-USQPRVG\gram --- .../conference/database/ConferenceEntity.kt | 7 +---- .../database/ConferencePageEntity.kt | 2 +- .../core/conference/dto/ConferenceDto.kt | 8 ++---- .../core/conference/dto/ConferencePage.kt | 2 +- .../csereal/core/news/api/NewsController.kt | 5 ++++ .../core/news/database/NewsRepository.kt | 5 ++++ .../csereal/core/news/service/NewsService.kt | 6 +++++ .../core/notice/api/NoticeController.kt | 5 ++++ .../core/notice/database/NoticeRepository.kt | 4 +++ .../core/notice/service/NoticeService.kt | 6 +++++ .../research/database/ResearchSearchEntity.kt | 1 - .../core/seminar/api/SeminarController.kt | 5 ++++ .../seminar/database/SeminarRepository.kt | 4 +++ .../core/seminar/service/SeminarService.kt | 6 +++++ .../service/ConferenceServiceTest.kt | 27 +++++-------------- 15 files changed, 57 insertions(+), 36 deletions(-) diff --git a/src/main/kotlin/com/wafflestudio/csereal/core/conference/database/ConferenceEntity.kt b/src/main/kotlin/com/wafflestudio/csereal/core/conference/database/ConferenceEntity.kt index e25c230a..db934b05 100644 --- a/src/main/kotlin/com/wafflestudio/csereal/core/conference/database/ConferenceEntity.kt +++ b/src/main/kotlin/com/wafflestudio/csereal/core/conference/database/ConferenceEntity.kt @@ -12,10 +12,8 @@ class ConferenceEntity( var language: LanguageType, var isDeleted: Boolean = false, - var code: String, var abbreviation: String, var name: String, - var ackIf: Int?, @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "conference_page_id") @@ -31,16 +29,13 @@ class ConferenceEntity( conferencePage: ConferencePageEntity ) = ConferenceEntity( language = languageType, - code = conferenceDto.code, abbreviation = conferenceDto.abbreviation, name = conferenceDto.name, - conferencePage = conferencePage, - ackIf = conferenceDto.ackIf + conferencePage = conferencePage ) } fun update(conferenceDto: ConferenceDto) { - this.code = conferenceDto.code this.abbreviation = conferenceDto.abbreviation this.name = conferenceDto.name } diff --git a/src/main/kotlin/com/wafflestudio/csereal/core/conference/database/ConferencePageEntity.kt b/src/main/kotlin/com/wafflestudio/csereal/core/conference/database/ConferencePageEntity.kt index 1fb9915b..f6896a49 100644 --- a/src/main/kotlin/com/wafflestudio/csereal/core/conference/database/ConferencePageEntity.kt +++ b/src/main/kotlin/com/wafflestudio/csereal/core/conference/database/ConferencePageEntity.kt @@ -12,7 +12,7 @@ class ConferencePageEntity( var author: UserEntity, @OneToMany(mappedBy = "conferencePage", cascade = [CascadeType.ALL], orphanRemoval = true) - @OrderBy("code ASC") + @OrderBy("name ASC") val conferences: MutableSet = mutableSetOf() ) : BaseTimeEntity() { diff --git a/src/main/kotlin/com/wafflestudio/csereal/core/conference/dto/ConferenceDto.kt b/src/main/kotlin/com/wafflestudio/csereal/core/conference/dto/ConferenceDto.kt index 555a8acf..ade80227 100644 --- a/src/main/kotlin/com/wafflestudio/csereal/core/conference/dto/ConferenceDto.kt +++ b/src/main/kotlin/com/wafflestudio/csereal/core/conference/dto/ConferenceDto.kt @@ -8,20 +8,16 @@ data class ConferenceDto( @JsonInclude(JsonInclude.Include.NON_NULL) val id: Long? = null, val language: String, - val code: String, val abbreviation: String, - val name: String, - val ackIf: Int? + val name: String ) { companion object { fun of(conferenceEntity: ConferenceEntity): ConferenceDto { return ConferenceDto( id = conferenceEntity.id, language = LanguageType.makeLowercase(conferenceEntity.language), - code = conferenceEntity.code, abbreviation = conferenceEntity.abbreviation, - name = conferenceEntity.name, - ackIf = conferenceEntity.ackIf + name = conferenceEntity.name ) } } diff --git a/src/main/kotlin/com/wafflestudio/csereal/core/conference/dto/ConferencePage.kt b/src/main/kotlin/com/wafflestudio/csereal/core/conference/dto/ConferencePage.kt index be5e5465..c58a313d 100644 --- a/src/main/kotlin/com/wafflestudio/csereal/core/conference/dto/ConferencePage.kt +++ b/src/main/kotlin/com/wafflestudio/csereal/core/conference/dto/ConferencePage.kt @@ -17,7 +17,7 @@ data class ConferencePage( author = conferencePageEntity.author.name, conferenceList = conferencePageEntity.conferences.map { ConferenceDto.of(it) - }.sortedWith(compareBy { it.code.isBlank() }.thenBy { it.code }) + }.sortedBy { it.name } ) } } diff --git a/src/main/kotlin/com/wafflestudio/csereal/core/news/api/NewsController.kt b/src/main/kotlin/com/wafflestudio/csereal/core/news/api/NewsController.kt index d998834b..5cf0dc23 100644 --- a/src/main/kotlin/com/wafflestudio/csereal/core/news/api/NewsController.kt +++ b/src/main/kotlin/com/wafflestudio/csereal/core/news/api/NewsController.kt @@ -123,4 +123,9 @@ class NewsController( newsService.enrollTag(tagName["name"]!!) return ResponseEntity("등록되었습니다. (tagName: ${tagName["name"]})", HttpStatus.OK) } + + @GetMapping("/ids") + fun getAllIds(): ResponseEntity> { + return ResponseEntity.ok(newsService.getAllIds()) + } } diff --git a/src/main/kotlin/com/wafflestudio/csereal/core/news/database/NewsRepository.kt b/src/main/kotlin/com/wafflestudio/csereal/core/news/database/NewsRepository.kt index c0eef4e2..b1fc6aa5 100644 --- a/src/main/kotlin/com/wafflestudio/csereal/core/news/database/NewsRepository.kt +++ b/src/main/kotlin/com/wafflestudio/csereal/core/news/database/NewsRepository.kt @@ -19,6 +19,7 @@ import com.wafflestudio.csereal.core.resource.mainImage.database.QMainImageEntit import com.wafflestudio.csereal.core.resource.mainImage.service.MainImageService import org.springframework.data.domain.Pageable import org.springframework.data.jpa.repository.JpaRepository +import org.springframework.data.jpa.repository.Query import org.springframework.stereotype.Repository import java.time.LocalDateTime @@ -32,6 +33,9 @@ interface NewsRepository : JpaRepository, CustomNewsRepository fun findFirstByIsDeletedFalseAndIsPrivateFalseAndCreatedAtGreaterThanOrderByCreatedAtAsc( timestamp: LocalDateTime ): NewsEntity? + + @Query("SELECT n.id FROM news n") + fun findAllIds(): List } interface CustomNewsRepository { @@ -121,6 +125,7 @@ class NewsRepositoryImpl( sortBy == ContentSearchSortType.DATE || keyword.isNullOrEmpty() -> newsEntityQuery.orderBy( newsEntity.createdAt.desc() ) + else /* sortBy == RELEVANCE */ -> newsEntityQuery }.fetch() diff --git a/src/main/kotlin/com/wafflestudio/csereal/core/news/service/NewsService.kt b/src/main/kotlin/com/wafflestudio/csereal/core/news/service/NewsService.kt index b0f42a11..dd08cce7 100644 --- a/src/main/kotlin/com/wafflestudio/csereal/core/news/service/NewsService.kt +++ b/src/main/kotlin/com/wafflestudio/csereal/core/news/service/NewsService.kt @@ -39,6 +39,7 @@ interface NewsService { fun searchTotalNews(keyword: String, number: Int, amount: Int, isStaff: Boolean): NewsTotalSearchDto fun readAllSlides(pageNum: Long, pageSize: Int): AdminSlidesResponse fun unSlideManyNews(request: List) + fun getAllIds(): List } @Service @@ -197,6 +198,11 @@ class NewsServiceImpl( } } + @Transactional(readOnly = true) + override fun getAllIds(): List { + return newsRepository.findAllIds() + } + fun getNewsEntityByIdOrThrow(newsId: Long): NewsEntity { return newsRepository.findByIdOrNull(newsId) ?: throw CserealException.Csereal404("존재하지 않는 새소식입니다.(newsId: $newsId)") diff --git a/src/main/kotlin/com/wafflestudio/csereal/core/notice/api/NoticeController.kt b/src/main/kotlin/com/wafflestudio/csereal/core/notice/api/NoticeController.kt index 110fdcd0..94b95a0f 100644 --- a/src/main/kotlin/com/wafflestudio/csereal/core/notice/api/NoticeController.kt +++ b/src/main/kotlin/com/wafflestudio/csereal/core/notice/api/NoticeController.kt @@ -135,4 +135,9 @@ class NoticeController( noticeService.enrollTag(tagName["name"]!!) return ResponseEntity("등록되었습니다. (tagName: ${tagName["name"]})", HttpStatus.OK) } + + @GetMapping("/ids") + fun getAllIds(): ResponseEntity> { + return ResponseEntity.ok(noticeService.getAllIds()) + } } diff --git a/src/main/kotlin/com/wafflestudio/csereal/core/notice/database/NoticeRepository.kt b/src/main/kotlin/com/wafflestudio/csereal/core/notice/database/NoticeRepository.kt index 0277a82f..dbf1a2f2 100644 --- a/src/main/kotlin/com/wafflestudio/csereal/core/notice/database/NoticeRepository.kt +++ b/src/main/kotlin/com/wafflestudio/csereal/core/notice/database/NoticeRepository.kt @@ -15,6 +15,7 @@ import com.wafflestudio.csereal.core.notice.dto.NoticeTotalSearchElement import com.wafflestudio.csereal.core.notice.dto.NoticeTotalSearchResponse import org.springframework.data.domain.Pageable import org.springframework.data.jpa.repository.JpaRepository +import org.springframework.data.jpa.repository.Query import org.springframework.stereotype.Component import java.time.LocalDateTime @@ -29,6 +30,9 @@ interface NoticeRepository : JpaRepository, CustomNoticeRepo fun findFirstByIsDeletedFalseAndIsPrivateFalseAndCreatedAtGreaterThanOrderByCreatedAtAsc( timestamp: LocalDateTime ): NoticeEntity? + + @Query("SELECT n.id FROM notice n") + fun findAllIds(): List } interface CustomNoticeRepository { diff --git a/src/main/kotlin/com/wafflestudio/csereal/core/notice/service/NoticeService.kt b/src/main/kotlin/com/wafflestudio/csereal/core/notice/service/NoticeService.kt index 47f43121..a929d997 100644 --- a/src/main/kotlin/com/wafflestudio/csereal/core/notice/service/NoticeService.kt +++ b/src/main/kotlin/com/wafflestudio/csereal/core/notice/service/NoticeService.kt @@ -40,6 +40,7 @@ interface NoticeService { fun unpinManyNotices(idList: List) fun deleteManyNotices(idList: List) fun enrollTag(tagName: String) + fun getAllIds(): List } @Service @@ -200,4 +201,9 @@ class NoticeServiceImpl( ) tagInNoticeRepository.save(newTag) } + + @Transactional(readOnly = true) + override fun getAllIds(): List { + return noticeRepository.findAllIds() + } } diff --git a/src/main/kotlin/com/wafflestudio/csereal/core/research/database/ResearchSearchEntity.kt b/src/main/kotlin/com/wafflestudio/csereal/core/research/database/ResearchSearchEntity.kt index 46c287ea..397c73c5 100644 --- a/src/main/kotlin/com/wafflestudio/csereal/core/research/database/ResearchSearchEntity.kt +++ b/src/main/kotlin/com/wafflestudio/csereal/core/research/database/ResearchSearchEntity.kt @@ -77,7 +77,6 @@ class ResearchSearchEntity( fun createContent(conference: ConferenceEntity) = StringBuilder().apply { appendLine(conference.name) - appendLine(conference.code) appendLine(conference.abbreviation) }.toString() } diff --git a/src/main/kotlin/com/wafflestudio/csereal/core/seminar/api/SeminarController.kt b/src/main/kotlin/com/wafflestudio/csereal/core/seminar/api/SeminarController.kt index 15f43926..da8bba14 100644 --- a/src/main/kotlin/com/wafflestudio/csereal/core/seminar/api/SeminarController.kt +++ b/src/main/kotlin/com/wafflestudio/csereal/core/seminar/api/SeminarController.kt @@ -96,4 +96,9 @@ class SeminarController( ) { seminarService.deleteSeminar(seminarId) } + + @GetMapping("/ids") + fun getAllIds(): ResponseEntity> { + return ResponseEntity.ok(seminarService.getAllIds()) + } } diff --git a/src/main/kotlin/com/wafflestudio/csereal/core/seminar/database/SeminarRepository.kt b/src/main/kotlin/com/wafflestudio/csereal/core/seminar/database/SeminarRepository.kt index 12211f0d..75b71699 100644 --- a/src/main/kotlin/com/wafflestudio/csereal/core/seminar/database/SeminarRepository.kt +++ b/src/main/kotlin/com/wafflestudio/csereal/core/seminar/database/SeminarRepository.kt @@ -11,6 +11,7 @@ import com.wafflestudio.csereal.core.seminar.dto.SeminarSearchDto import com.wafflestudio.csereal.core.seminar.dto.SeminarSearchResponse import org.springframework.data.domain.Pageable import org.springframework.data.jpa.repository.JpaRepository +import org.springframework.data.jpa.repository.Query import org.springframework.stereotype.Component import java.time.LocalDateTime @@ -24,6 +25,9 @@ interface SeminarRepository : JpaRepository, CustomSeminarR fun findFirstByIsDeletedFalseAndIsPrivateFalseAndCreatedAtGreaterThanOrderByCreatedAtAsc( timestamp: LocalDateTime ): SeminarEntity? + + @Query("SELECT s.id FROM seminar s") + fun findAllIds(): List } interface CustomSeminarRepository { diff --git a/src/main/kotlin/com/wafflestudio/csereal/core/seminar/service/SeminarService.kt b/src/main/kotlin/com/wafflestudio/csereal/core/seminar/service/SeminarService.kt index 625bfe5c..796c1c6b 100644 --- a/src/main/kotlin/com/wafflestudio/csereal/core/seminar/service/SeminarService.kt +++ b/src/main/kotlin/com/wafflestudio/csereal/core/seminar/service/SeminarService.kt @@ -33,6 +33,7 @@ interface SeminarService { ): SeminarDto fun deleteSeminar(seminarId: Long) + fun getAllIds(): List } @Service @@ -136,4 +137,9 @@ class SeminarServiceImpl( seminar.isDeleted = true } + + @Transactional(readOnly = true) + override fun getAllIds(): List { + return seminarRepository.findAllIds() + } } diff --git a/src/test/kotlin/com/wafflestudio/csereal/core/conference/service/ConferenceServiceTest.kt b/src/test/kotlin/com/wafflestudio/csereal/core/conference/service/ConferenceServiceTest.kt index 5c46056e..5f5e9303 100644 --- a/src/test/kotlin/com/wafflestudio/csereal/core/conference/service/ConferenceServiceTest.kt +++ b/src/test/kotlin/com/wafflestudio/csereal/core/conference/service/ConferenceServiceTest.kt @@ -78,27 +78,21 @@ class ConferenceServiceTest( listOf( ConferenceEntity( language = LanguageType.KO, - code = "code1", name = "name1", abbreviation = "abbreviation1", - conferencePage = conferencePage, - ackIf = 1 + conferencePage = conferencePage ), ConferenceEntity( language = LanguageType.KO, - code = "code2", name = "name2", abbreviation = "abbreviation2", - conferencePage = conferencePage, - ackIf = 1 + conferencePage = conferencePage ), ConferenceEntity( language = LanguageType.KO, - code = "code3", name = "name3", abbreviation = "abbreviation3", - conferencePage = conferencePage, - ackIf = 1 + conferencePage = conferencePage ) ) ) @@ -113,17 +107,13 @@ class ConferenceServiceTest( val modifiedConference = ConferenceDto( id = conferences.first().id, language = "ko", - code = "code0", name = "modifiedName", - abbreviation = "modifiedAbbreviation", - ackIf = 1 + abbreviation = "modifiedAbbreviation" ) val newConference = ConferenceDto( language = "ko", - code = "code9", name = "newName", - abbreviation = "newAbbreviation", - ackIf = 1 + abbreviation = "newAbbreviation" ) val conferenceModifyRequest = ConferenceModifyRequest( deleteConferenceIdList = listOf(deleteConferenceId), @@ -135,32 +125,27 @@ class ConferenceServiceTest( Then("Conference가 수정되어야 한다.") { val newConferencePage = conferencePageRepository.findAll().first() - val newConferences = newConferencePage.conferences.sortedBy { it.code } + val newConferences = newConferencePage.conferences.sortedBy { it.name } newConferences.size shouldBe 3 newConferences.first().apply { - code shouldBe modifiedConference.code name shouldBe modifiedConference.name abbreviation shouldBe modifiedConference.abbreviation researchSearch?.content shouldBe """ modifiedName - code0 modifiedAbbreviation """.trimIndent() } newConferences[1].apply { - code shouldBe conferences.last().code name shouldBe conferences.last().name abbreviation shouldBe conferences.last().abbreviation } newConferences.last().apply { - code shouldBe newConference.code name shouldBe newConference.name abbreviation shouldBe newConference.abbreviation researchSearch?.content shouldBe """ newName - code9 newAbbreviation """.trimIndent()