Skip to content

Commit ab72d9e

Browse files
seongjae6751dueheeChoi-JJunhosongsunkook20HyeonsuLee
authored
hotfix: 조회시 프레임 없으면 생성(develop) (#699)
* fix : notification FK 회원 삭제 오류 수정 (#514) * fix : notification/notification_subscribe DELETE CASCADE로 변경 * chore : Front 요청으로 인한 회원가입 에러코드 409 추가 * chore : DB 생략 * fix: 에러 반환값 수정 (#517) * hotfix: 학생 회원 가입 시에 전화번호 형식 추가 허용 (#530) * chore: 회원가입 전화번호 형식 추가 허용 * chore: 전화번호 가운데 세자리도 되게 허용 * chore: 비밀번호 틀렸을시에 400 반환하는 것으로 수정 (#605) * develop -> main Merge (#652) * fix: dto @NotNull 어노테이션 추가 * fix: 테스트코드 수정 * fix : 품절 알림 문구 점(.) 삭제 (#599) * fix : 품절 알림 문구 점 삭제 * fix : 품절 알림 문구 점 삭제 * feat : put /admin/members/{id} api 추가 (#595) * feat : put /admin/members/{id} api 추가 * fix: trackName 체크 메서드 생성 * fix: track 변경 체크 로직 및 track 수정 로직 수정 * �feat: 버스 필터링 (#586) * feat: 노선 정보 캐싱 - 정류장을 지나는 노선 정보들 캐싱 * refactor: 필터링 위치 변경 - 버스 시간 조회시 필터링 * feat: 크롤링 추가 * feat: 테스트 추가 * refactor: 피드백 반영 * chore: 주석 추가 * refactor: 피드백 반영 - save -> saveAll로 변경 * feat : 학생, 사장님, 영양사 로그인 분기처리 (#563) * feat : 사장님 / 영양사 로그인 분기 처리 추가 * chore : StudentUpdateResponse의 gender 검증 변수 제거 * feat : 테스트 추가 * feat: 가입 신청한 사장님 페이지네이션 조회(어드민계정) (#539) * feat: 응답객체 생성 * feat: controller 생성 * refactor: 접근제어 변경 * feat: 요청 모델앤뷰 dto * feat: 응답 객체 * feat: repository 생성 * feat: shop_id와 shop_name이 있는 owner객체 생성 * feat: service * feat: 테스트 추가 * fix: 필요없는 코드 제거 * refactor: required 관련 수정 * refactor: 컨벤션 적용 * refactor: 로직 수정 * refactor: 로직 수정 * refactor: AdminShopRepository 제거 * refactor: controller api 수정 * refactor: 충돌 해결 * refactor: 충돌 해결 * refactor: 주석 추가 * refactor: 빌더 삭제 및 코드 개선 * refactor: 요청dto requiredMode 전부 적용 * refactor: 빌더 생성 * refactor: Enum위치 변경 및 빌더 삭제 * refactor: controller api implement 추가 * refactor: dto 메서드 스웨거에서 숨기기 * feat: POST /admin/members API 추가 (#541) * feat: POST /admin/members API 추가 * fix: @Auth 추가 및 테스트 수정 * chore: 공백 제거 * refactor: GET /shops api 성능최적화 (#549) * feat: swwagger 인증번호 발송 관련 api명세 추가 * feat: 마크업으로 변경 * feat: 레디스 캐싱 * feat: save메소드 추가 * feat: 캐시가 없으면 캐시에 데이터를 올린다 * refactor: 필요없는 설정 정리 * feat: 리뷰반영 --------- Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> * feat: 상점 사장님 휴대폰번호로 회원가입 api작성 (#564) * feat: 상점 사장님 휴대폰번호로 회원가입 api작성 * feat: 스웨거 이슈로 길어져버린 dto이름ㅠ * feat: 리뷰 반영 --------- Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> * 버스 openApi 에러 수정 (#565) * fix: openApi scheduled에서 try catch * fix: Exception catch로 변경 * chore : 사장님 로그인 api 작성 * feat : 로그인 API(학생, 사장님, 영양사) 분리 * chore : UserFixture 원경_사장님 수정 * chore : UserFixture 중복 사항 제거 * chore : UserFixture 오류 수정 * chore : 리뷰 반영(메소드 이름 변경) * chore : 리뷰 반영(전화번호 숨김 및 이메일 형식 삭제) * chore : 리뷰 반영(메소드 위치 변경 및 Response userType 삭제) * chore : 사장님 로그인 테스트 위치 변경 * feat : flyway 추가 * feat : 영양사 테이블 추가 및 로그인 로직 수정 * feat : 사장님 테이블 컬럼 추가 및 로그인 로직 수정 * test : 테스트 코드 수정 * test : 테스트 오류 수정을 위한 기존 request 수정 * chore : 리뷰 반영(이메일 형식 확인 삭제) * chore : flyway 변경(V16 수정 및 V18 추가) * chore : User email @NotNull 제거(email null 허용) * chore : Owner 핸드폰 회원가입 email null 값 허용 * chore : Test 수정 및 User email @column(nullable = false) 제거 * chore : 전화번호 관련 로직 "01000000000" 로 수정 및 테스트 수정 * test : Admin User 테스트 수정 --------- Co-authored-by: 김원경 <148550522+kwoo28@users.noreply.github.com> Co-authored-by: YunYongWoon <46861704+YunYongWoon@users.noreply.github.com> Co-authored-by: Hyeonsu Lee <127578418+20HyeonsuLee@users.noreply.github.com> Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> Co-authored-by: 허준기 <112807640+dradnats1012@users.noreply.github.com> * hotfix: 비밀번호 검증 api 비밀번호 틀렸을시에 400 반환하는 것으로 수정(develop) (#607) * fix : notification FK 회원 삭제 오류 수정 (#514) * fix : notification/notification_subscribe DELETE CASCADE로 변경 * chore : Front 요청으로 인한 회원가입 에러코드 409 추가 * chore : DB 생략 * fix: 에러 반환값 수정 (#517) * hotfix: 학생 회원 가입 시에 전화번호 형식 추가 허용 (#530) * chore: 회원가입 전화번호 형식 추가 허용 * chore: 전화번호 가운데 세자리도 되게 허용 * chore: 비밀번호 틀렸을시에 400 반환하는 것으로 수정 * chore: swagger 400 추가 --------- Co-authored-by: duehee <149302959+duehee@users.noreply.github.com> Co-authored-by: 최준호 <junho5336@gmail.com> Co-authored-by: 송선권 <songsunkook@gmail.com> * feat: POST /admin/members/{id}/undelete API 추가 (#600) * feat: Admin BCSDLab 트랙 API 구현 (#606) * feat: 기술스택 삭제 기능 구현 * test: admin으로 기술스택 제거 테스트 추가 * feat: admin 단일 트랙 조회 기능 추가 * test: admin으로 트랙 정보 단건 조회 테스트 추가 * feat: admin으로 트랙 생성 기능 추가 * test: admin으로 트랙 정보 생성 테스트 추가 * �feat: 버스 필터링 (#586) * feat: 노선 정보 캐싱 - 정류장을 지나는 노선 정보들 캐싱 * refactor: 필터링 위치 변경 - 버스 시간 조회시 필터링 * feat: 크롤링 추가 * feat: 테스트 추가 * refactor: 피드백 반영 * chore: 주석 추가 * refactor: 피드백 반영 - save -> saveAll로 변경 * feat : 학생, 사장님, 영양사 로그인 분기처리 (#563) * feat : 사장님 / 영양사 로그인 분기 처리 추가 * chore : StudentUpdateResponse의 gender 검증 변수 제거 * feat : 테스트 추가 * feat: 가입 신청한 사장님 페이지네이션 조회(어드민계정) (#539) * feat: 응답객체 생성 * feat: controller 생성 * refactor: 접근제어 변경 * feat: 요청 모델앤뷰 dto * feat: 응답 객체 * feat: repository 생성 * feat: shop_id와 shop_name이 있는 owner객체 생성 * feat: service * feat: 테스트 추가 * fix: 필요없는 코드 제거 * refactor: required 관련 수정 * refactor: 컨벤션 적용 * refactor: 로직 수정 * refactor: 로직 수정 * refactor: AdminShopRepository 제거 * refactor: controller api 수정 * refactor: 충돌 해결 * refactor: 충돌 해결 * refactor: 주석 추가 * refactor: 빌더 삭제 및 코드 개선 * refactor: 요청dto requiredMode 전부 적용 * refactor: 빌더 생성 * refactor: Enum위치 변경 및 빌더 삭제 * refactor: controller api implement 추가 * refactor: dto 메서드 스웨거에서 숨기기 * feat: POST /admin/members API 추가 (#541) * feat: POST /admin/members API 추가 * fix: @Auth 추가 및 테스트 수정 * chore: 공백 제거 * refactor: GET /shops api 성능최적화 (#549) * feat: swwagger 인증번호 발송 관련 api명세 추가 * feat: 마크업으로 변경 * feat: 레디스 캐싱 * feat: save메소드 추가 * feat: 캐시가 없으면 캐시에 데이터를 올린다 * refactor: 필요없는 설정 정리 * feat: 리뷰반영 --------- Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> * feat: 상점 사장님 휴대폰번호로 회원가입 api작성 (#564) * feat: 상점 사장님 휴대폰번호로 회원가입 api작성 * feat: 스웨거 이슈로 길어져버린 dto이름ㅠ * feat: 리뷰 반영 --------- Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> * 버스 openApi 에러 수정 (#565) * fix: openApi scheduled에서 try catch * fix: Exception catch로 변경 * chore : 사장님 로그인 api 작성 * feat : 로그인 API(학생, 사장님, 영양사) 분리 * chore : UserFixture 원경_사장님 수정 * chore : UserFixture 중복 사항 제거 * chore : UserFixture 오류 수정 * chore : 리뷰 반영(메소드 이름 변경) * chore : 리뷰 반영(전화번호 숨김 및 이메일 형식 삭제) * chore : 리뷰 반영(메소드 위치 변경 및 Response userType 삭제) * chore : 사장님 로그인 테스트 위치 변경 * feat : flyway 추가 * feat : 영양사 테이블 추가 및 로그인 로직 수정 * feat : 사장님 테이블 컬럼 추가 및 로그인 로직 수정 * test : 테스트 코드 수정 * test : 테스트 오류 수정을 위한 기존 request 수정 * chore : 리뷰 반영(이메일 형식 확인 삭제) * chore : flyway 변경(V16 수정 및 V18 추가) * chore : User email @NotNull 제거(email null 허용) * chore : Owner 핸드폰 회원가입 email null 값 허용 * chore : Test 수정 및 User email @column(nullable = false) 제거 * chore : 전화번호 관련 로직 "01000000000" 로 수정 및 테스트 수정 * test : Admin User 테스트 수정 --------- Co-authored-by: 김원경 <148550522+kwoo28@users.noreply.github.com> Co-authored-by: YunYongWoon <46861704+YunYongWoon@users.noreply.github.com> Co-authored-by: Hyeonsu Lee <127578418+20HyeonsuLee@users.noreply.github.com> Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> Co-authored-by: 허준기 <112807640+dradnats1012@users.noreply.github.com> * feat: admin으로 트랙 수정 기능 추가 * fix: legacy request의 불필요한 id 값 제거 * feat: 트랙명 중복 예외처리 추가 * test: admin 트랙 생성, 수정 중복 트랙명 예외 테스트 추가 * test: admin 트랙 수정 테스트 추가 * feat: admin으로 트랙 삭제 기능 추가 * test: admin 트랙 삭제 테스트 추가 * chore: 1차 피드백 반영 --------- Co-authored-by: 박성빈 <46699595+ImTotem@users.noreply.github.com> Co-authored-by: duehee <149302959+duehee@users.noreply.github.com> Co-authored-by: 김원경 <148550522+kwoo28@users.noreply.github.com> Co-authored-by: YunYongWoon <46861704+YunYongWoon@users.noreply.github.com> Co-authored-by: Hyeonsu Lee <127578418+20HyeonsuLee@users.noreply.github.com> Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> Co-authored-by: 허준기 <112807640+dradnats1012@users.noreply.github.com> * Feature: 어드민 복덕방 삭제 (#612) * feat: AdminLandApi 구현 * feat: AdminLandController * feat: AdminLandRepository * feat: AdminLandService * feat: Land * refactor: Admin권한 추가 * feat: 복덕방 삭제 테스트 코드 추가 * refactor: 복덕방 삭제 테스트 공백 추가 --------- Co-authored-by: Jang Jun Young <police0022@naver.com> * refactor: 호환성 유지하기 위한 오너 회원가입 휴대폰번호 양식 롤백 (#614) * refactor: 회원가입 휴대폰번호 양식 롤백 * refactor: 오너 회원가입 휴대폰번호 양식 테스트코드 롤백 * refactor: 리뷰 반영 --------- Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> * feat : coop_id 관련 flyway 추가 (#618) * feat : coop_id 관련 flyway 추가 * chore : 리뷰 반영(flyway 분리) * refactor: 시내버스 정류장 불일치 해결 (#601) * fix: 시내버스 노선 캐시 저장 로직 수정 * refactor: 정류장 추가 * refactor: 정류장 조회 로직 수정 * refactor: 테스트 수정 * fix : 품절 알림 처리 순서 수정 (#611) * fix : 품절 캐시 저장, 알림 발송 순서 수정 * fix : dining 응답 0 -> null 반환으로 수정 * refactor: sms회원가입 redis초기화 로직 변경 (#622) * refactor: sms회원가입 redi초기화 로직 변경 * refactor: eventListener 메소드 이름 변경 * refactor: 테스트 코드 변경 --------- Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> * fix: 상점 수정, 삭제시 운영 요일 형식 검증 (#624) * feat: 상점 운영시간 요일 형식 검증 추가 * feat: Inner Record에 @Valid추가 * refactor: 필요없는 어노테이션 삭제 --------- Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> * feat: 사업자번호, 아이디 중복검증 추가 (#610) * feat: 사업자등록번호 검증 추가 * feat: 전화번호 중복 검증 추가 * refactor: 전화번호 중복 사장님으로 이관 * refactor: phone_number -> account * test: 테스트 수정 * refactor: check -> exists * fix : Kcal가 null 일 경우 0을 반환하도록 롤백 (#626) * fix: CityBusRoute 저장시 null 제외 추가 (#629) * feat: 어드민권한 상점 관련 api작성 (#619) * feat: 컨트롤러 작성 * feat: 상점 메뉴관련 조회 api 구현 * feat: 상점 메뉴관련 조회 api 구현 2 * feat: 특정 상점 메뉴 조회 테스트코드 작성 * feat: 테스트코드 작성 * feat: 테스트코드 작성 * refactor: 불필요한 공백 제거 * refactor: 리뷰 반영 --------- Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> * feat: 어드민 복덕방 조회,수정,삭제취소 (#631) * feat: 복덕방 조회 컨트롤러 구현 * feat: 복덕방 조회 서비스 구현 * feat: 복덕방 조회 테스트 구현 * feat: 복덕방 수정,삭제취소 구현 * feat: 복덕방 수정,삭제취소 서비스 구현 * refactor: land 모델 수정 * refactor: land 테스트 케이스 추가 * refactor: 어드민 dto 수정 * feat: 어드민 수정, 삭제취소 테스트 구현 * refactor: 라인 포맷팅 * refactor: 테스트 코드 수정 * refactor: dto반환형식 변경 * refactor: 라인포맷팅 --------- Co-authored-by: Jang Jun Young <police0022@naver.com> * feat: 어드민 82~86,89,90,93~95 (#621) * feat: 컨트롤러 구현 * feat: 사장님 인증권한 허용 * feat: 사장님 인증권한 허용 * feat: 테스트 추가 * feat: 테스트 import문 사용 * feat: 학생 리스트 조회 구현 * feat: 어드민 특정 사장님 수정 * feat: 어드민 사장님 페이지네이션 * feat: 어드민 회원 삭제 * feat: 어드민 로그인 구현 * feat: 어드민 로그아웃 구현 * feat: 어드민 리프레쉬 구현 * feat: 어드민 회원 조회 * fix: 페이지네이션 오류 수정 * test: 테스트 구현 * test: 나머지 모든 테스트 구현 * chore: 개행 처리 * chore: 개행 처리 * chore: 개행 처리 * chore: 이상한 설명 수정 * feat: ModelAttribute 파라미터로 전달되게 변경 * refactor: 사장님 인증 shop에 owner_id 할당되게 변경 * feat: 회원 탈퇴 취소 API 구현 * refactor: 83~86 충돌 수정 * refactor: 사장님인증 후 OwnerShop redis삭제 추가 * refactor: 사장님인증 테스트 수정 * refactor: AdminStudentResponse 메서드 of -> from 변경 * refactor: shopId null체크 * refactor: GrantShop 로직 수정, 로그인 save()제거 * refactor: 응답객체 수정 * refactor: 충돌 수정 * refactor: 충돌 수정 * refactor: 테스트 수정 * refactor: 응답반환수정 --------- Co-authored-by: seongjae6751 <seongjae6751@naver.com> * feat: 어드민권한 상점, 카테고리 api작성 (#627) * fix : notification FK 회원 삭제 오류 수정 (#514) * fix : notification/notification_subscribe DELETE CASCADE로 변경 * chore : Front 요청으로 인한 회원가입 에러코드 409 추가 * chore : DB 생략 * fix: 에러 반환값 수정 (#517) * hotfix: 학생 회원 가입 시에 전화번호 형식 추가 허용 (#530) * chore: 회원가입 전화번호 형식 추가 허용 * chore: 전화번호 가운데 세자리도 되게 허용 * chore: 비밀번호 틀렸을시에 400 반환하는 것으로 수정 (#605) * feat: controller 작성 * feat: service, repository 작성 * test: 어드민 shop, category 테스트 작성 * refactor: 1차 피드백 반영 * fix: 버그 수정 --------- Co-authored-by: duehee <149302959+duehee@users.noreply.github.com> Co-authored-by: 최준호 <junho5336@gmail.com> Co-authored-by: 김성재 <103095432+seongjae6751@users.noreply.github.com> Co-authored-by: 송선권 <songsunkook@gmail.com> * refactor: ADMIN 권한 추가 (#638) * fix: 상점 생성,수정 / 메뉴 추가,수정 버그 해결 (#644) * feat: DTO수정 * feat: imageUrl이 null인경우를 위한 DTO 생성자 추가 * feat: 상점 운영시간 DTO validation 문구 추가 * feat: 상점 운영시간 DTO 개수 제한 수정 --------- Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> * feat: new timetable api 구현 (#615) * feat: flyway 추가 * refactor: flyway 수정 * feat: timetable frame api 중 post, get, delete 구현 (#592) * feat : 기본 Model 및 Repository 생성 * chore : isMain 추가 * feat: timetablesFrame post, get delete 기능 구현 * chore: 겹치는 로직 수정 및 일부 버그 수정 * feat: 회원 탈퇴시 timetableframe 및 timetable 수동 삭제 * feat: 삭제 전 검증 로직 추가 * chore: api 오타 수정 * chore: frame 빌더 파라미터 추가 * chore: snakecase로 dto 변경 * feat: lecture repo 메서드 추가 * test: timetable v2 test 코드 작성 * chore: 오타 수정 * feat: 삭제되는 frame이 main일때 다른 frame을 main으로 설정 * chore: 개행 제거 * chore: 개행 추가 * chore: 어색한 말 수정 * chore: 오타 수정 * chore: 변수명 및 개행 수정 * chore: 피드백 반영 * chore: 메서드 명 변경 --------- Co-authored-by: duehee <149302959+duehee@users.noreply.github.com> * feat: timetableFrame put, timetableLecture delete 구현 & reafactor: 기존 timetable delete, get 수정 (#594) * feat : 기본 Model 및 Repository 생성 * refactor: 기존 delete timetable 새로운 db와 연결 & v2 api 추가 * feat: tiemtable frame 수정 api 구현 * refactor: tiemtable frame 수정 api 반환값 dto 추가 * refactor: PUT timetable/frame에서 main으로 업데이트할 시 기존 main 테이블의 is_main을 false로 수정 * refactor: Get /timetables api 변경된 테이블 구조에 맞게 수정 * refactor: timeTable -> timetable로 변경 * refactor: deleteTimetableLecture() 유저 본인의 시간표에서 삭제하는지 검증 추가 * refactor: repository에서 main timetable을 가져오게 수정 * refactor: url 앞에 / 추가 & 기존에 없던 api url에 v2제거 * refactor: TimetableFrameUpdateRequest, TimetableFrameUpdateResponse에서 name Schema 수정 * refactor: TimetableFrameUpdateResponse에서 semester 대신 id를 반환하도록 수정 * refactor: timeTable -> timetable 이름 변경 * refactor: TimetableFrame에서 필요 없는 isMain()함수 제거 * refactor: LectureRepository에서 findByIdIn를 사용해 Lecture List를 가져오도록 수정 * refactor: TimetableLecture와 TimetableFrame에서 is_deleted=0으로 찾는 where 제거 * refactor: timetableFrame 수정 시 semester 변경 못하도록 수정 * fix: is_main 타입변경, snakecase적용되도록 수정 & test: timetableframe 수정 api, timetablelecture 삭제 api 테스트 작성 --------- Co-authored-by: duehee <149302959+duehee@users.noreply.github.com> * feat: GET/semester/check수정 & POST/timetables수정 & POST/v2/timetables/lecture 추가 (#596) * feat : 기본 Model 및 Repository 생성 * chore : isMain 추가 * feat: 시간표 생성 수정 및 추가 * feat: 강의시간표 응답 수정 * feat: 코드 오류 수정 * feat: API 수정 * feat: pr 수정 * feat: repository semester타입 수정 * fear : flyway 추가 * fear : flyway 추가 * fear : Lecture id 반환 추가 * fear : PUT /timetables 수정 및 /v2/timetables 추가 * feat: getTimetables API 수정 * refactor: PR 리뷰 반영 * fear : 리뷰 반영 * refactor : 코드 리팩터링 * refactor: 충돌 수정 * refactor: 충돌 수정 * refactor: 로직 수정 및 학점추가 * refactor: 학점 계산 로직 수정 * refactor: 오류 수정 * refactor: 코드 수정 --------- Co-authored-by: duehee <149302959+duehee@users.noreply.github.com> * refactor: flyway timetable_id -> frame_id 변경 * refactor: TimetableFrame에 @where(clause = is_deleted=0) 추가 * refactor: frame api의 url에 v2추가 * refactor: TimetableLectures create,update 문에 user 인증 추가 * refactor : TimetableUpdate에 id가 null인 경우 삭제 * refactor: swagger 수정 * refactor: v2 패키지로 이동 * fix: v2 api 이름에 v2 추가 * chore : 리뷰 반영(Repo 미사용 메소드 삭제) * chore : 리뷰 반영(isMain boolean으로 수정) * chore : 리뷰 반영(변수 추가 및 getIsMain() -> isMain() 수정) * chore : 리뷰 반영 * refactor: createTimetablesFrame에서 main 시간표 count 시 0부터 세도록 수정 * fix: createTimetablesFrame에서 이름 생성할 때 카운트 +1하도록 수정 * fix: createTimetablesFrame에서 카운트 +1할 때 괄호 추가 --------- Co-authored-by: kwoo28 <148550522+kwoo28@users.noreply.github.com> Co-authored-by: 김성재 <103095432+seongjae6751@users.noreply.github.com> Co-authored-by: duehee <149302959+duehee@users.noreply.github.com> * fix : flyway 버저닝 충돌 해결 (#646) * fix : 롤백 이후 flyway 오류 수정(timetable_id -> frame_id) (#648) * refactor: internalName 필수요구 제거 (#650) Co-authored-by: Jang Jun Young <police0022@naver.com> --------- Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> Co-authored-by: 최준호 <junho5336@gmail.com> Co-authored-by: Hwang HyeonSik <142300831+Choon0414@users.noreply.github.com> Co-authored-by: YunYongWoon <46861704+YunYongWoon@users.noreply.github.com> Co-authored-by: 박성빈 <46699595+ImTotem@users.noreply.github.com> Co-authored-by: duehee <149302959+duehee@users.noreply.github.com> Co-authored-by: 김원경 <148550522+kwoo28@users.noreply.github.com> Co-authored-by: 허준기 <112807640+dradnats1012@users.noreply.github.com> Co-authored-by: 김성재 <103095432+seongjae6751@users.noreply.github.com> Co-authored-by: 송선권 <songsunkook@gmail.com> Co-authored-by: 배진호 <72592302+BaeJinho4028@users.noreply.github.com> Co-authored-by: Jang-JunYoung <79901434+johnny19991006@users.noreply.github.com> Co-authored-by: Jang Jun Young <police0022@naver.com> Co-authored-by: seongjae6751 <seongjae6751@naver.com> Co-authored-by: Dahee Park <106418303+daheeParkk@users.noreply.github.com> * feat: 조회시 프레임 없으면 생성 * chore: 충돌중 잘못 합쳐진 것 복구 --------- Co-authored-by: duehee <149302959+duehee@users.noreply.github.com> Co-authored-by: 최준호 <junho5336@gmail.com> Co-authored-by: 송선권 <songsunkook@gmail.com> Co-authored-by: Hyeonsu Lee <127578418+20HyeonsuLee@users.noreply.github.com> Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> Co-authored-by: Hwang HyeonSik <142300831+Choon0414@users.noreply.github.com> Co-authored-by: YunYongWoon <46861704+YunYongWoon@users.noreply.github.com> Co-authored-by: 박성빈 <46699595+ImTotem@users.noreply.github.com> Co-authored-by: 김원경 <148550522+kwoo28@users.noreply.github.com> Co-authored-by: 허준기 <112807640+dradnats1012@users.noreply.github.com> Co-authored-by: 배진호 <72592302+BaeJinho4028@users.noreply.github.com> Co-authored-by: Jang-JunYoung <79901434+johnny19991006@users.noreply.github.com> Co-authored-by: Jang Jun Young <police0022@naver.com> Co-authored-by: Dahee Park <106418303+daheeParkk@users.noreply.github.com>
1 parent baeb24e commit ab72d9e

File tree

2 files changed

+48
-2
lines changed

2 files changed

+48
-2
lines changed

src/main/java/in/koreatech/koin/domain/timetable/service/TimetableService.java

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
import in.koreatech.koin.domain.timetableV2.repository.SemesterRepositoryV2;
2121
import in.koreatech.koin.domain.timetableV2.repository.TimetableFrameRepositoryV2;
2222
import in.koreatech.koin.domain.timetableV2.repository.TimetableLectureRepositoryV2;
23+
import in.koreatech.koin.domain.user.model.User;
24+
import in.koreatech.koin.domain.user.repository.UserRepository;
2325
import in.koreatech.koin.global.auth.exception.AuthorizationException;
2426
import lombok.RequiredArgsConstructor;
2527

@@ -32,6 +34,7 @@ public class TimetableService {
3234
private final TimetableLectureRepositoryV2 timetableLectureRepositoryV2;
3335
private final TimetableFrameRepositoryV2 timetableFrameRepositoryV2;
3436
private final SemesterRepositoryV2 semesterRepositoryV2;
37+
private final UserRepository userRepository;
3538

3639
public List<LectureResponse> getLecturesBySemester(String semester) {
3740
List<Lecture> lectures = lectureRepositoryV2.findBySemester(semester);
@@ -82,8 +85,19 @@ public TimetableResponse updateTimetables(Integer userId, TimetableUpdateRequest
8285

8386
public TimetableResponse getTimetables(Integer userId, String semesterRequest) {
8487
Semester semester = semesterRepositoryV2.getBySemester(semesterRequest);
85-
TimetableFrame timetableFrame = timetableFrameRepositoryV2.getMainTimetableByUserIdAndSemesterId(userId,
86-
semester.getId());
88+
User user = userRepository.getById(userId);
89+
90+
TimetableFrame timetableFrame = timetableFrameRepositoryV2.findByUserIdAndSemesterIdAndIsMainTrue(userId,
91+
semester.getId()).orElse(
92+
TimetableFrame
93+
.builder()
94+
.user(user)
95+
.semester(semester)
96+
.name("시간표1")
97+
.isMain(true)
98+
.isDeleted(false)
99+
.build());
100+
87101
return getTimetableResponse(userId, timetableFrame);
88102
}
89103

src/test/java/in/koreatech/koin/acceptance/TimetableApiTest.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,38 @@ void getTimeTables() {
276276
));
277277
}
278278

279+
@Test
280+
@DisplayName("시간표를 조회한다. - 시간표 프레임 없으면 생성")
281+
void getTimeTablesAfterCreate() {
282+
// given
283+
User user = userFixture.준호_학생().getUser();
284+
String token = userFixture.getToken(user);
285+
Semester semester = semesterFixture.semester("20192");
286+
287+
// when & then
288+
var response = RestAssured
289+
.given()
290+
.header("Authorization", "Bearer " + token)
291+
.when()
292+
.param("semester", semester.getSemester())
293+
.get("/timetables")
294+
.then()
295+
.statusCode(HttpStatus.OK.value())
296+
.extract();
297+
298+
JsonAssertions.assertThat(response.asPrettyString())
299+
.isEqualTo(String.format("""
300+
{
301+
"semester": "20192",
302+
"timetable": [
303+
],
304+
"grades": 0,
305+
"total_grades": 0
306+
}
307+
"""
308+
));
309+
}
310+
279311
@Test
280312
@DisplayName("학생이 가진 시간표의 학기를 조회한다.")
281313
void getStudentCheckSemester() {

0 commit comments

Comments
 (0)