Conversation
* feat: 상점 생성 기능 추가 * feat: 상점등록을 하기 위해 연관된 model정의 * feat: shop과 관련된 repository, exception작성 * feat: 1차 테스트 완료 * feat: 사장님 상점 생성 기능 구현 * feat: 특정상점조회 API구현 * refactor: 특정상점조회 테스트코드 수정 * chore: import경로 오류 수정 * chore: pull충돌 해결 * refactor: saveAll제거 * feat: 스웨거 설명 추가 * refactor: Builder생성자 접근제어 변경 * refactor: ShopResponse 적팩메이름 of로 변경 * refactor: ShopResponse 적팩메이름 of로 변경
… feature/111-dinings
… feature/111-dinings
… feature/111-dinings
… feature/111-dinings
songsunkook
left a comment
There was a problem hiding this comment.
다들 고생하셨습니다!
조금만 수정 부탁드려요
|
|
||
| import in.koreatech.koin.global.exception.DuplicationException; | ||
|
|
||
| public class SubscribeNotFoundException extends DuplicationException { |
There was a problem hiding this comment.
R
상속하는 예외 클래스가 적절하지 않은 것 같습니다!
There was a problem hiding this comment.
DataNotFoundException을 상속받도록 수정했습니다!
| created_at datetime NOT NULL, | ||
| updated_at datetime NOT NULL, | ||
| subscribe_type VARCHAR(255) NOT NULL, | ||
| user_id BIGINT NOT NULL, |
There was a problem hiding this comment.
R
이거 fk 설정중에 에러날수도 있을 것 같아요!
| user_id BIGINT NOT NULL, | |
| user_id BIGINT UNSIGNED NOT NULL, |
There was a problem hiding this comment.
There was a problem hiding this comment.
user_id가 unsigned int로 되어있어서 일단 user_id와 같게 수정했습니다!
나중에 두 개를 같이 unsigned bigint로 수정하는게 좋을 것 같아요
| created_at datetime NOT NULL, | ||
| updated_at datetime NOT NULL, | ||
| subscribe_type VARCHAR(255) NOT NULL, | ||
| user_id BIGINT NOT NULL, |
There was a problem hiding this comment.
| .when() | ||
| .post("/notification") | ||
| .then() | ||
| .log().all() |
| .when() | ||
| .post("/notification") | ||
| .then() | ||
| .log().all() |
There was a problem hiding this comment.
C
.log().all()은 로컬에서 디버깅용으로 사용하고 푸시할 때는 지워주세요
22
| .header("Authorization", "Bearer " + userToken) | ||
| .when() | ||
| .delete("/notification") | ||
| .then().log().all() |
There was a problem hiding this comment.
C
.log().all()은 로컬에서 디버깅용으로 사용하고 푸시할 때는 지워주세요
333
| .param("type", NotificationSubscribeType.SHOP_EVENT) | ||
| .when() | ||
| .delete("/notification/subscribe") | ||
| .then().log().all() |
There was a problem hiding this comment.
C
.log().all()은 로컬에서 디버깅용으로 사용하고 푸시할 때는 지워주세요
4444
songsunkook
left a comment
There was a problem hiding this comment.
리뷰 반영 확인했습니다! 고생하셨습니당 👍
src/main/resources/db/migration/V5__add_notification_subscribe_table.sql
Show resolved
Hide resolved
Choi-JJunho
left a comment
There was a problem hiding this comment.
고생하셨습니다~
테스트 통과랑 자잘한 부분은 수정했습니다
* test: TestContainer 적용 (#27) * test: TestContainer 적용 * test: TestContainer MySQL 버전 5.7로 변경 * test: RestAssured port 선언조건 추가 * feat: POST /user/login API 구현 (#50) * feat: User Entity 추가 * test: /user/login 인수테스트 작성 * feat: 로그인 뼈대코드 구성 * feat: testcontainer 도입 * test: TestContainer 적용 * test: TestContainer MySQL 버전 5.7로 변경 * test: RestAssured port 선언조건 추가 * feat: 사용자 로그인 구현 * feat: 사용자 마지막 로그인한 날짜 추가 * test: ActiveProfiles 설정 추가 * build: 토큰 값 minute 주석 추가 * refactor: refreshToken 만료일자 14일로 수정 * build: 불필요한 설정파일 제거 * refactor: 예외처리부 추가 * test: 학교 메일로 테스트케이스 수정 * refactor: 반환값 accessToken임을 명시 * feat: 상점 메뉴 조회 API 구현 (#112) * refactor: 전체 패키지 구조 변경 (#114) * refactor: 패키지 구조 변경 * refactor: DTO 레코드로 변경 * refactor: 상점 도메인 패키지 구조 변경 * refactor: 패키지 표현 변경 * feat: GET /lands API 구현 (#148) * feat : 도메인 생성 * faet : controller 구현 * feat : response DTO 생성 * feat : 전체 조회 service 구현 * feat : 전체 조회 repository 생성 * feat : Domain 생성 * test : 인수 테스트 작성 * refactor : 하위 패키지 중 domain을 model로 수정 * refactor : DTO 클래스에 JsonNaming 어노테이션 사용 * refactor : Column 어노테이션 안에 필요없는 내용 제거 * refactor : 복덕방 리스트 조회 메서드에 Transaction(readOnly=true)가 적용되도록 수정 * refactor : 리스트 원소로 사용하던 LandResponse의 이름을 LandListItemResponse로 수정 * feat: 사용자 인증 구현 (#149) * feat: 사용자 인증 구현 * refactor: ArgumentResolver 이름 변경 * refactor: CustomException 적용 * refactor: 예외상황 명시하도록 순서 변경 * refactor: 상수추출 * refactor: 미사용 생성자 제거 * chore: 패키지 변경 * refactor: 미사용 어노테이션 제거 * refactor: 오타수정 * refactor: 오류메시지 구체화 * refactor: 미사용 메서드 제거 * �feat: GET /dept, GET /depts 구현 (#147) * refactor: 패키지 구조 변경 * refactor: DTO 레코드로 변경 * refactor: 상점 도메인 패키지 구조 변경 * feat: 학과 조회 관련 틀 작성 * feat: 학과명 열거형 추가 * feat: 학과 조회 초안 작성 * feat: 학과 조회 정상 동작 * refactor: 열거형 제거 최대한 도입해보려 시도했으나 `@Enumerated(EnumType.STRING)`으로는 불가능한 구조인 것으로 판단하여 제거 (DB에 한글로 저장되어 있어서 enum과 매핑하려면 한글 열거형이 필요해보임) ERROR DETAIL: "No enum constant in.koreatech.koin.domain.dept.domain.DeptType.기계공학부" * rename: 정적 팩토리 메서드 네이밍 수정 * test: 인수 테스트 추가 * fix: 정상 동작하도록 수정 (복합키 매핑 이전) * refactor: 복합키 매핑 * remove: 미사용 코드 제거 * feat: GET /depts 구현 * test: GET /depts 테스트 작성 * rename: 도메인명 수정 Dept -> DeptInfo * fix: DeptInfoRepository Key 수정 * refactor: service 코드 간소화 * fix: GET /dept 응답 메시지 자료형 수정 * refactor: 트랜잭션 적용 * rename: 변수명 수정 * refactor: 응답 객체 자료형 수정 * refactor: 개행 컨벤션 준수 * rename: DTO 네이밍 수정 * refactor: 개행 컨벤션 준수 * refactor: 메서드 네이밍 수정 * test: 테스트 인자 상수화 * test: 코드 간소화 * fix: Repository ID 제네릭 수정 * refactor: Static Import로 변경 Response 클래스들에 붙은 SnakeCaseStrategy.class를 static import하여 가독성 향상 * test: GET /depts 테스트 코드 수정 1. 기존에 연관관계를 테스트하지 않던 코드 수정 2. 반복문을 제거하고 일일이 매핑하도록 수정 * refactor: DB에서 enum으로 구조 변경 cc. #152 * rename: 메서드명 컨벤션 준수 * rename: 컨트롤러 메서드명 컨벤션 준수 * refactor: 존재하지 않을 시 응답 코드 변경 * style: enum 개행 조정 * remove: DB 미사용으로 인한 불필요 코드 제거 --------- Co-authored-by: Invidam <hansupark0208@gmail.com> * feat: logout 구현 (#154) * feat: accessToken 재발급 (#155) * feat: logout 구현 * feat: accessToken 재발급 구현 * fix: 응답 수정 및 테스트 수정 * refactor: 사용자 인증 요구사항 제거 * refactor: 리프레시토큰 userId 구분 * �feat: 게시글 목록 조회 구현 (#158) * feat: 골격 작성 * feat: 엔티티 작성 * feat: repository 작성 * feat: service 작성 * feat: response 작성 * feat: DB 조회 로직 작성 * feat: Jsoup 의존성 추가 * feat: 응답 내용 추가 1. article.is_notice 2. article.contentSummary 3. board.is_notice 4. board.children (must null) * feat: 예외처리 작성 * refactor: 페이징 관련 정보 클래스 분리 * fix: soft delete된 게시판 or 게시글은 조회 안되도록 수정 * fix: 1페이지 조회 안되는 버그 수정 * fix: 누락된 응답 추가 (summary) * fix: 최신글부터 조회하도록 수정 * test: 테스트 코드 작성 * move: ErrorResponseWrapper 위치 변경 * refactor: 코딩 컨벤션 준수 * refactor: 문자열 파싱 메서드 리팩토링 * test: 예외상황 테스트 추가 * feat: 메뉴 카테고리 목록 조회 (#153) * feat: 메뉴 카테고리 조회 기능 구현 * refactor: 응답 DTO 생성 로직 수정 * refactor: cascade 처리 방식 변경 refactor: cascade 처리 방식 변경 * test: 테스트 문맥 변경 * feat: 복덕방 단일 조회 (#156) * feat : controller 구현 * feat : repository에 id로 조회 기능 생성 * feat : service에 조회 기능 구현 * feat : 응답 DTO 구현 * refactor : domain 필드 자료형 변경 * refactor : stream 라인 변경 * refactor : 코드 축약 * test : 단일 조회 테스트 작성 * refactor : 에러 메시지 구체적으로 수정 * refactor : 기존 응답 구조와 동일하도록 수정 * test : 테스트에 이미지 추가 * refactor:� findByXXX -> getByXXX (#164) * refactor: default method 활용한 getByXXX 메소드 추가 * style: 공벡 제거 * refactor: 복덕방에도 적용 * refactor: DataNotFoundException으로 묶어서 관리 * feat: 게시글 단일 조회 (#173) * feat: 골격 작성 * feat: Repository 메서드 추가 * feat: 응답 객체 작성 * feat: Comment 도메인 엔티티 작성 * feat: 초안 완성 * fix: 로그인된 사용자 정보 습득 절차 수정 1. 비로그인 유저의 요청도 받도록 수정 2. 올바르지 않은 토큰 입력 시 권한 없음으로 진행되도록 수정 * rename: 응답 객체 변수명 수정 * refactor: 내용 요약 정보 최신화 시기 변경 기존: getter 호출 시마다 로직 수행하여 추출 변경: jpa 엔티티 로드 후 1회 로직 수행 * refactor: 유저 인증 정보 전달 방식 수정 기존: 컨트롤러단에서 @RequestHeader로 받아 전달 변경: 서비스단에서 RequestContextHolder로 습득 * feat: 게시글 조회 기록 저장 및 조회수 변동 구현 유저의 게시글 조회가 조회수 증가로 이어지는 간격을 1시간으로 설정 * fix: 게시글 조회 관련 버그 수정 기존에 게시글 조회 이력이 남아있는데 만료 시간이 지난 경우, 기존 내역을 업데이트해줘야 하나 새로 저장을 시도하여 구문 에러가 발생함. 위 상황에는 기존 내역을 업데이트하는 로직을 추가함으로써 문제 해결 * fix: 게시글 목록 조회 버그 수정 문제: 최대 페이지 초과 시 404 에러가 발생하지 않음. 원인: 예외처리 로직을 별도 함수로 분리했으나 기존 함수를 사용중이었음 해결: 예외처리가 적용된 함수로 호출문 변경 * fix: 조회 기록 Builder에 만료시간 기입 * test: 신규 테스트 추가 및 기존 테스트 수정 * other: 학과 조회 자료형 수정 학과 코드: Long -> String * refactor: 코드스타일 개선 * rename: 메서드 네이밍 수정 * refactor: 빈 게시글 목록 조회 예외처리 제거 * refactor: IP 주소 습득 로직 분리 * test: 예외 제거에 따른 테스트 수정 * refactor: 연관관계 방식으로 로직 및 테스트 수정 * refactor: ArticleViewLog의 FK를 연관관계로 매핑 * refactor: Auth 어노테이션 활용하도록 변경 (#175) * refactor: Auth 어노테이션 활용하도록 변경 * refactor: IPAddress Interceptor 추가 * chore: auth global 패키지로 이동 * style: 로깅 디테일 * refactor: 불필요한 UserType 제거 * docs: add swagger config (#176) * refactor: Auth 어노테이션 활용하도록 변경 * refactor: IPAddress Interceptor 추가 * docs: swagger 추가 * chore: auth global 패키지로 이동 * style: 로깅 디테일 * refactor: 불필요한 UserType 제거 * refactor: Parameter Path 수정 * feat: 버전 단일 조회 (#168) * feat: request dto 작성 * feat: 엔티티 작성 * feat: response dto 작성 * feat: 서비스 작성 * feat: 컨트롤러 작성 * feature: 기존 코드 제거 및 테스트 코드 추가 * feat: 리뷰 적용 * feat: VersionType 피드백 적용 및 Exception Test Case 추가 * feat: 공백 컨벤션 수정 & No newline at end of file 적용 * feat: 회원 탈퇴 구현 (#178) * feat: 회원 탈퇴 구현 * refactor: 줄바꿈 * feat: 인기 게시글 목록 조회 (#181) * feat: API 골격 작성 * feat: Redis 접근 기능 구 * feat: 만료 체크 로직 자동화 * feat: 인기 많은 게시글 출력 로직 작성 1. 모든 로그 조회 2. 조회수 내림차순 정렬 3. Limit로 자르기 4. 결과 반환 * refactor: 스케줄러 관심사 분리 * feat: 최근 조회된 게시글 수가 10개 미만이면 최신 게시글과 병합 * fix: 응답 객체 필드명 수정 * test: 테스트 작성 * refactor: 조회수 검증 로직 개선 * docs: 응답 객체 설명 추가 * test: 불필요한 콘솔 출력 제거 * refactor: redis 대신 mysql을 사용하도록 수정 * test: 테스트 수정 * feat: 사장님 정보 조회 (#182) * feat: 도메인 엔티티 생성 * feat: 응답 객체 초안 작성 * feat: 도메인 클래스 작성 * feat: API 작성 1. 경로 수정(다른 API로 착각하고 작업중이었어서 수정) 2. 연관관계 매핑 3. API 로직 작성 * test: 테스트 작성 * refactor: 접근제어자 수정 * docs: 응답 객체 문서 주석 추가 * refactor: 트랜잭션 추가 * refactor: 예외처리 보완 * refactor: 양방향 연관관계 제거 * refactor: 잘못 기입된 Setter 제거 * refactor: 기본생성자 접근제어 추가 * refactor: 소프트딜리트된 대상은 제외 * refactor: 기본생성자 접근제어 추가 * style: 컨벤션 준수 * rename: 메서드명 변경 * feat: 사장님 자신의 모든 상점 조회 (#183) * feat: 도메인 엔티티 생성 * feat: 응답 객체 초안 작성 * feat: 도메인 클래스 작성 * feat: API 작성 1. 경로 수정(다른 API로 착각하고 작업중이었어서 수정) 2. 연관관계 매핑 3. API 로직 작성 * test: 테스트 작성 * feat: API 작성 * test: 테스트 작성 * refactor: 트랜잭션 적용 * docs: 응답 객체 문서 주석 추가 * fix: 버그 수정 * refactor: 읽기 전용 트랜잭션으로 수정 * refactor: 개행 컨벤션 준수 * feat: 사장님 회원가입 인증번호 전송 요청 (#184) * feat : owner controller 구현 * refactor: 기존 url에 맞게 수정 * feat: 이메일 관련 도메인 생성 & 검증 기능 구현 * feat: 중복 이메일인지 검증하는 기능 구현 * feat : AwsSesConfig 작성 * feat : SesMailSender 작성 * feat: 메일폼 작성 & 템플릿 가져오는 기능 구현 * feat: 메일 보내는 기능 구현 * feat: 메일 보낼 수 있는지 검사 * feat: OwnerInVerification 작성 * feat: redis에 저장 * fix: 타임리프 가져오는 에러 해결 * fix: 메일 전송 에러 해결 * refactor: mail form loader 설정 코드 메서드로 분리 * fix: 중복 이메일 검증 오류 해결 * feat: slack에 알림 보내는 기능 구현 * feat: 스웨거 작성 * refactor: 예외처리 수정 * feat: 슬랙 test url 작성 * feat: 레디스에 있는 사장님 정보 조회 구현 * test: 회원가입 인증번호 전송 요청 테스트 작성 * style: 클래스&메서드명 수정 * style: global의 commaon 패키지를 domain 패키지로 수정 * test: 테스트 메서드명 수정 * refactor: 인증번호 랜덤 생성을 따로 구현 * refactor: Aws SES 서울 리전으로 수정 * refactor: 이메일 검증 로직 수정 * fix: AWS SES 기존 Region으로 수정 * refactor: 스프링 이벤트 적용해서 슬랙 알림 전송하도록 수정 * refactor: 메일폼 가져오는 라이브러리 thymeleaf로 변경 * test: 슬래 전송 실패해도 200으로 응답하는 테스트로 수정 * test: 사장님 회원가입 인증번호 전송 요청 이벤트 발생 시 슬랙 전송 이벤트가 발생하는지 확인하는 테스트 * refactor: EmailAddress 객체 정적 팩토리 메서드를 사용하도록 수정 * refactor: OwnerInVerification 팩토리 메서드명 수정 * refactor: noticeEmailVerification()에서 코드 줄임 * refactor: 사용하지 않는 코드 제거 * test: MockBean을 SpyBean으로 수정 * test: MockBean 위치 변경 * test: application test yml에 thymeleaf 경로 설정 추가 * test: test/resources/mail/owner메일폼 추가 * test: test/resources/owner메일폼 제거 * test: MockBean 위치 AcceptanceTest로 변경 * style: record 변수 선언 세로로 위치 변경 * style: OwnerInVerification의 AccessLevel static import로 수정 * style: User 생성자 인수 일정하게 나열 * refactor: User 생성자 private으로 수정 * style: 모든 AccessLevel을 static import로 수정 * style: Owner, OwnerAttachment Doamin 위치 domain 패키지에서 model패키지로 수정 * refactor: aws ses 최신 버전으로 수정 * fix: 버전 매핑 에러 수정 (#191) * fix: 버그 수정 * refactor: 예외 수정 * test: 테스트 분리 * feat: 버전 최신화 메서드 작성 * refactor: 응답 간결화 및 버그 수정 * feat: 이메일 중복 체크 (#194) * feat: 이메일 중복 체크 구현 * feat: 이메일 중복 테스트 구현 * chore: application-test.yml 수정 - datasource 추가 * chore: application-test.yml 수정 - datasource 삭제 * refactor: ModelAttribute 적용 - @RequestParam -> @ModelAttribute * feat: 이메일 중복 테스트 추가 - 이메일을 보내지 않으면 400 - 잘못된 이메일 형식이면 400 * style: 라인 포맷팅 * feat : 강의 목록 조회(학기별) (#192) * feat : Lecture 클래스 생성 * feat : LectureApi 클래스 생성 * feat : LectureController 클래스 생성 * feat : LectureRepository 클래스 생성 * feat : LectureResponse DTO 생성 * feat : LectureService 클래스 생성 * feat : LectureApiTest 테스트 생성 후 통과 * refactor : 리뷰 반영 * refactor : classTime 반환타입 Integer[]로 변경 * refactor : 리뷰 반영 * refactor : Integer[]배열 List<Long>으로 변경 * refactor : TimeTable로 네이밍 변경 * refactor : 리뷰 반영 * feat: 버스 남은 시간 조회 - 셔틀버스, 등하교 버스 (#185) * feat: API 골격 작성 * feat: mongoDB 의존성 추가 * feat: 응답 객체 작성 * feat: 예외 추가 * feat: 엔티티 작성 * feat: 미운행인 버스 필터링 * feat: enum 추가 * feat: 남은 시간 계산 로직 작성 * feat: 가장 최근 버스까지 남은 시간 응답 구현 * feat: 미운행 요일 제외 로직 추가 * feat: 버스 정거장 검증로직 적용 및 중복되는 시간 제외 * refactor: enum 객체를 사용하도록 수정 * refactor: 등하교 방향 기준 탐색에서 정류장 탐색으로 로직 변경 * remove: 미사용 코드 제거 BusCourse.isRunning() * refactor: 테스트 mocking 위해 Clock 사용하도록 수정 * test: 테스트컨테이너 mongoDB 추가 * test: 셔틀 버스 조회 테스트 추가 * docs: API 문서에 파라미터 정보 명시 * remove: 불필요 주석 제거 * refactor: 누락된 Transactional 추가 * fix: mocking 변수 선언부 이동 * remove: 불필요 주석 제거 * refactor: 도착 시각 패턴 불일치 시 예외처리 * refactor: 반복문을 stream으로 변환 * refactor: 엔티티 필드로 List 사용 시 미리 초기화 * refactor: String 비교 시 NPE 예방 * refactor: 불필요한 매핑 메서드 제거 * refactor: 변수 분리 * rename: 변수명 수정 * refactor: Builder 생성자 접근제어자 수정 * refactor: enum 필드 간소화 * fix: 미사용 예외 사용하도록 수정 * feat: 출발지와 도착지가 일치할 경우 예외 처리 * refactor: IllegalArgumentException 예외 응답 수정 * feat : 학기 조회(전학기) (#196) * feat : Semester get API 구현 완료 * chore : 리뷰 반영 코드 위치 수정 / 패키지 이름 변경 * style : 라인 포매팅 및 클래스 삭제 * test : 테스트 코드 수정 * feat : 사장님 식당 생성, 특정 상점 조회 API구현 (#199) * feat: 상점 생성 기능 추가 * feat: 상점등록을 하기 위해 연관된 model정의 * feat: shop과 관련된 repository, exception작성 * feat: 1차 테스트 완료 * feat: 사장님 상점 생성 기능 구현 * feat: 특정상점조회 API구현 * refactor: 특정상점조회 테스트코드 수정 * chore: import경로 오류 수정 * chore: pull충돌 해결 * refactor: saveAll제거 * feat: 스웨거 설명 추가 * refactor: Builder생성자 접근제어 변경 * refactor: ShopResponse 적팩메이름 of로 변경 * refactor: ShopResponse 적팩메이름 of로 변경 * feat: 닉네임 중복 체크 (#189) * refactor: 회원 탈퇴 반환타입 수정 * feat: 중복 데이터 예외 처리 추가 * feat: 닉네임 중복 예외 처리 추가 * feat: 닉네임 중복 체크 구현 * feat: 닉네임 중복 테스트 * refactor: 예외 처리 수정 * refactor: 닉네임 중복 로직 수정 * feat: 닉네임 중복 중복아닐때, 제약조건위반시 테스트 추가 * refactor: 파라미터 valid 적용 * refactor: 전역 데이터 중복 예외 제거(이미 전에 누가 만들었음) * feat: 충돌 해결 * refactor: 코멘트 반영 수정 * feat : 식단 Api 구현 (#193) * feat : 충돌 해결 * chore : VersionException 제거 * chore : SnakeCaseStrategy import static 수정 * refactor : 엔티티 id int -> Long 수정 * feat : 사장님 식당 생성, 특정 상점 조회 API구현 (#199) * feat: 상점 생성 기능 추가 * feat: 상점등록을 하기 위해 연관된 model정의 * feat: shop과 관련된 repository, exception작성 * feat: 1차 테스트 완료 * feat: 사장님 상점 생성 기능 구현 * feat: 특정상점조회 API구현 * refactor: 특정상점조회 테스트코드 수정 * chore: import경로 오류 수정 * chore: pull충돌 해결 * refactor: saveAll제거 * feat: 스웨거 설명 추가 * refactor: Builder생성자 접근제어 변경 * refactor: ShopResponse 적팩메이름 of로 변경 * refactor: ShopResponse 적팩메이름 of로 변경 * feat : 커스텀 예외처리 추가 * chore : 충돌 해결 * chore : 테스트 정보 수정 * chore : 파라미터 설명 추가 * refactor : menu String -> List 수정 * fix : 테이블명 수정 * refactor : 현재시간에 대한 테스트를 위해 clock 모킹 추가 * remove : 사용하지 않는 예외 삭제 * chore : 테스트코드 public 제외, 불필요한 공백 삭제 --------- Co-authored-by: Hyeonsu Lee <127578418+20HyeonsuLee@users.noreply.github.com> * feat : 특정상점 전체메뉴조회 api작성 (#208) * feat: 특정 상점 모든 메뉴조회 api 작성 * feat: 특정 상점 모든 메뉴조회 api 테스트코드 작성 * feat: 코드리뷰사항 반영 1 차 * feat: 코드 리뷰사항 반영 2차 * feat : BCSD Lab 활동 api구현 (#207) * feat: bcsd lab 활동 가져오기 1차 테스트 통과 * refactor: 반환 값을 리스트에서 맵으로 변경 * refactor: activitiy api 반환값 맵으로 변경 * refactor: controller가 ActivityApi를 구현하게 변경 * chore: 불필요한 문자 제거 * style: 서비스 로직 최적화 * chore: 불필요한 코드 삭제 * chore: 충돌 해결 * chore: 불필요한 문자 제거 * chore: 1차 코드 리뷰 피드백 적용 * chore: 테스트 정보 주정 * style: 테스트에 param 적용 * chore: 줄 바꿈 수정 * style: 반환 타입 을 dto로 변경 * style: 컨트롤러 변수의 반환타입을 명시적으로 변경 * chore: 피드백 반영 * chore: 테스트 코드 내용 추가 * chore: ActivitiesResponseList Dto이름 변경 * feat: Presigned URL 구현 (#210) * feat: Enum Converter 추가 * style: 변수명 변경 * style: 불필요한 주석 제거 * refactor: Controller 테스트 제거 * refactor: 예외 수정 * chore: 패키지 구분 * refactor: 외부 API로 구분 * style: 공백제거 * test: 테스트 수정 * refactor: 변수명 변경 * refactor: fileName 포함하도록 수정 * refactor: request dto swagger 설명 추가 * refactor: passwordEncoder 활용하도록 수정 (#211) * fix: 특정 상점 전체메뉴조회 응답 객체 미스매치 수정 (#214) * feat: 특정 상점 모든 메뉴조회 api 작성 * feat: 특정 상점 모든 메뉴조회 api 테스트코드 작성 * feat: 코드리뷰사항 반영 1 차 * feat: 코드 리뷰사항 반영 2차 * fix: menus응답 수정 * chore: 충돌 해결 * chore: 충돌 해결 * chore: 응답 필드 이름 수정 * chore: 응답 필드 이름 수정 * feat: 시간표 기능 구현 (#212) * feat: 시간표 조회 기능 추가 * feat: 시간표 생성 기능 추가 * feat: 시간표 수정/삭제 기능 추가 * fix: 시간표 수정 변경 * refactor: 리뷰 반영 1차 * refactor: 리뷰 반영 2차 * refactor: 리뷰 반영 3차 * refactor: UpdateTimeTableRequest 이름 수정 UpdateTimeTableRequest -> TimeTableUpdateRequest * refactor: 리뷰 반영 5차 * refactor: 리뷰 반영 6차 * feat: 파일 단건 업로드 구현 (#227) * feat: 파일 단건 업로드 구현 * refactor: swagger 문서 추가 * refactor: swagger 설명 추가 * refactor: 미사용 변수 제거 * refactor: 파일 최대크기 설정 변경 * refactor: 필드주입방싱을 생성자주입 방식으로 변경 * feat: 파일 다중 업로드 구현 (#229) * feat: 파일 다중 업로드 구현 * docs: swagger 수정 * feat: 영양사 권한 추가 (#231) * feat: 영양사 권한 추가 * fix: 후행쉼표 추가 * fix: 복덕방 전제 조회 응답 객체 미스매치 수정 (#215) * chore: LandListItemResponse dto이름 LandsResponse로 변경 * fix: 반환값 list에서 key value형태로 변경 * fix: UploadServiceTest 수정 * style: 라인 포맷팅 * chore: ActivityResponse 예시 수정 * style: dto를 일반 클래스에서 record클래스로 수정 * style: ActivitiesResponse dto를 일반 클래스에서 record클래스로 수정 * feat: FCM 설정 (#232) * refactor: 상점 Entity 연관관계 설정 (#237) * feat: shop연관관계 수정 * refactor: 서비스레이어 dto변환 로직 제거 * feat: 상점사장님이 특정 상점을 조회하는 api작성 (#240) * feat: 상점조회 api작성 * chore: 라인포맷팅 * chore: 권한이 없는 사장님이 특정 상점 조회 테스트 코드 분리 --------- Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> * feat : 영양사 품절 정보 입력 (#238) * feat : Dining 클래스에 soldOut 컬럼 추가 * feat : DiningResponse DTO에 soldOut 컬럼 추가 * feat : flyway DB에 sold_out 컬럼 추가 * feat : SoldOutRequest DTO 클래스 추가(메뉴아이디, 품절여부) * feat : CoopDiningController, CoopDiningApi 클래스 추 * feat : CoopDiningService 클래스 추가 * feat : DiningRepository 품절여부 변경 메서드 추가, 테스트용 메서드 추 * feat : 영양사 품절 요청 테스트, 권한 확인 테스트 추 * feat : 기존 테스트 동작하도록 수정 * feat : 리뷰 반 * feat : 리뷰 반영, 테스트 방식 변 * feat : coop 패키지 분 * feat : setSoldOut() 메서드 추 * feat : update 방식을 조회 후 set해주는 방식으로 변 * feat : 사용하지 않는 메서드 삭 * feat : 패키지 변경으로 인한 테스트 변경 * feat : 인가 테스트로 변경 * feat : getById()로 수정 * feat : 개행 추가 * feat : 메뉴가 없는 경우 예외 추가 * refactor: 컨벤션 반영 * refactor: snakecase로 변경 * feat : 영양사 코너별 식단 사진 업로드 (#241) * feat : 충돌 해결 * chore : VersionException 제거 * chore : SnakeCaseStrategy import static 수정 * refactor : 엔티티 id int -> Long 수정 * feat : 사장님 식당 생성, 특정 상점 조회 API구현 (#199) * feat: 상점 생성 기능 추가 * feat: 상점등록을 하기 위해 연관된 model정의 * feat: shop과 관련된 repository, exception작성 * feat: 1차 테스트 완료 * feat: 사장님 상점 생성 기능 구현 * feat: 특정상점조회 API구현 * refactor: 특정상점조회 테스트코드 수정 * chore: import경로 오류 수정 * chore: pull충돌 해결 * refactor: saveAll제거 * feat: 스웨거 설명 추가 * refactor: Builder생성자 접근제어 변경 * refactor: ShopResponse 적팩메이름 of로 변경 * refactor: ShopResponse 적팩메이름 of로 변경 * feat : 커스텀 예외처리 추가 * chore : 충돌 해결 * chore : 테스트 정보 수정 * chore : 파라미터 설명 추가 * refactor : menu String -> List 수정 * fix : 테이블명 수정 * refactor : 현재시간에 대한 테스트를 위해 clock 모킹 추가 * remove : 사용하지 않는 예외 삭제 * chore : 테스트코드 public 제외, 불필요한 공백 삭제 * feat : 영양사 컨트롤러, 서비스 구현 * feat : 식단 이미지 변수 추가 * feat : 영양사 권한 및 영양사 도메인 enum 추가 * feat : image 컬럼 추가 * feat : Image 업로드 요청 DTO 생성 * feat : 영양사님의 사진 업로드 테스트 추가 * feat : 특정 식단의 이미지 업데이트 쿼리 추가 * feat : 쿼리문 수정 * chore : log 제거 * refactor : coop Api 분리 * refactor : image_url로 변수명 수정 * refactor : image_url로 변수명 수정 * chore : menuId로 변수명 구체화 * chore : V$ -> V3 버전 수정 * remove : repository 계층 트랜잭션 제거(service 계층 처리) * feat : 허용되지 않은 권한에 대한 테스트 추가 * refactor : update 수정(setter 이용) * refactor : 테스트 - 허용되지않은 권한 수정 * refactor : getById() 추가 * chore : Optional 검증을 위해 findById() -> getById() 수정 * remove() : DynamicUpdate 제거 * chore : 충돌 해결 * chore : 파일 위치 수정 --------- Co-authored-by: Hyeonsu Lee <127578418+20HyeonsuLee@users.noreply.github.com> * feat: 사장님 회원가입 (#244) * feat: 사장님 회원가입 및 슬랙 알림발송 구현 * refactor: slack 알림발송 로직 수정 * refactor: 사장님 회원가입 로직 구성 * test: 미사용 테스트 제거 * style: 코드 포맷팅 * test: 테스트 수정 * refactor: update flyway * feature: 상점 사장님 관련 모든 GET API를 작성했습니다. (#245) * feat: 상점조회 api작성 * chore: 라인포맷팅 * feat: 점주전용 상점관련 조회 api작성 * feat: 사장님 상점 조회 api get 모두 작성 * chore: 리뷰사항 반영 --------- Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> * fix: 게시판 공지사항 판단 로직 수정 (#246) * fix: 공지사항 판단 로직 수정 * fix: 공지사항 판단 로직 재수정 * refactor: 게시판 태그 enum으로 분리 * feat: 사장님 인증코드 검증 (#248) * feat: 사장님 인증번호 인증 구현 * refactor: 로직 수정 및 인증이 완료된 값에 대해 레디스 제거 * test: 테스트 추가 * build: 테이블 복원 * refactor: 인증방식 수정, 사용자 인증없이 사용자 id만 필요한 경우 `@UserId`를 사용하도록 수정 * test: MySQL 테스트 컨테이너 버전 8.0.29로 수정 * refactor: ArgumentResolver Webconfig 등록 * refactor: 파일업로드 임시 토큰에 대한 허용 * test: 테스트 수정 * refactor: 변수 사용 * fix: 전공별 커리큘럼 링크 수정, 새로운 과 추가 (#251) * fix: 전공별 커리큘럼 링크 수정, 새로운 과 추가 * fix: 전공별 커리큘럼 링크 다시 수정 * chore: DeptListItemResponse이름을 DeptsResponse로 변경 * style: 와일드 카드 사용하지 않는 것으로 다시 원래대로 복구 * chore: 주석 설명 변경 * style: 열거형 사용해서 필터 하게 변경 * feat: 사장님 비밀번호 재발급 구현 (#253) * feat: 사장님 인증번호 인증 구현 * refactor: 로직 수정 및 인증이 완료된 값에 대해 레디스 제거 * test: 테스트 추가 * build: 테이블 복원 * refactor: 인증방식 수정, 사용자 인증없이 사용자 id만 필요한 경우 `@UserId`를 사용하도록 수정 * test: MySQL 테스트 컨테이너 버전 8.0.29로 수정 * refactor: ArgumentResolver Webconfig 등록 * refactor: 파일업로드 임시 토큰에 대한 허용 * test: 테스트 수정 * feat: 사장님 비밀번호 찾기 API 구현 * refactor: 이메일 형식 수정 * refactor: 인증 제거 * feat : 회원 정보 수정 (#236) * feat : DTO 추가 * feat : 유저 수정 추가 * test : log.all() 삭제 및 422번 오류 삭제 * chore : update 수정 및 사용하지 않는 Request 객체 삭제 * refactor : update 이름 수정 * refactor : DTO major 라인 포맷팅 * chore : bulider() 미사용 및 update 로직 수 * chore : 리뷰 반영 및 학부/학번 404 -> 400번 오류로 수정 * chore : ApiResponse 수정 * chore : 리뷰 반영 * chore : withDetail 수정 * chore : 리뷰 반영(코드 스타일 및 메소드 분리) * chore : Local 내 회원 정보 조회 오류 확인 추가 * chore : 삼항 연산자 제거 * chore : Response department null 처리 추가 * chore : 변수 수정 및 Gender null 처리 추가 * chore : 변수 수정 및 department null 처리 추가 * chore : DB 학과 한글 저장 * chore : DB 저장 체크(Enumerated 삭제) * chore : DB 저장 체크(Enumerated 삭제 및 model 이름 수정) * chore : ENUM 사용하도록 재수정 * fix : ENUM -> STRING 사용 * chore : 검증 ENUM으로 이동 * chore : ENUM 영어 변수로 수정 * chore : ENUM 후행 쉼표 추가 * fix: 학기 최신 순으로 반환 (#268) * feat : 알림 구독 Api 구현 (#269) * feat : 충돌 해결 * chore : VersionException 제거 * chore : SnakeCaseStrategy import static 수정 * refactor : 엔티티 id int -> Long 수정 * feat : 사장님 식당 생성, 특정 상점 조회 API구현 (#199) * feat: 상점 생성 기능 추가 * feat: 상점등록을 하기 위해 연관된 model정의 * feat: shop과 관련된 repository, exception작성 * feat: 1차 테스트 완료 * feat: 사장님 상점 생성 기능 구현 * feat: 특정상점조회 API구현 * refactor: 특정상점조회 테스트코드 수정 * chore: import경로 오류 수정 * chore: pull충돌 해결 * refactor: saveAll제거 * feat: 스웨거 설명 추가 * refactor: Builder생성자 접근제어 변경 * refactor: ShopResponse 적팩메이름 of로 변경 * refactor: ShopResponse 적팩메이름 of로 변경 * feat : 커스텀 예외처리 추가 * chore : 충돌 해결 * chore : 테스트 정보 수정 * chore : 파라미터 설명 추가 * refactor : menu String -> List 수정 * fix : 테이블명 수정 * refactor : 현재시간에 대한 테스트를 위해 clock 모킹 추가 * remove : 사용하지 않는 예외 삭제 * chore : 테스트코드 public 제외, 불필요한 공백 삭제 * feat : 영양사 컨트롤러, 서비스 구현 * feat : 식단 이미지 변수 추가 * feat : 영양사 권한 및 영양사 도메인 enum 추가 * feat : image 컬럼 추가 * feat : Image 업로드 요청 DTO 생성 * feat : 영양사님의 사진 업로드 테스트 추가 * feat : 특정 식단의 이미지 업데이트 쿼리 추가 * feat : 쿼리문 수정 * chore : log 제거 * refactor : coop Api 분리 * refactor : image_url로 변수명 수정 * refactor : image_url로 변수명 수정 * chore : menuId로 변수명 구체화 * chore : V$ -> V3 버전 수정 * remove : repository 계층 트랜잭션 제거(service 계층 처리) * feat : 허용되지 않은 권한에 대한 테스트 추가 * refactor : update 수정(setter 이용) * refactor : 테스트 - 허용되지않은 권한 수정 * refactor : getById() 추가 * chore : Optional 검증을 위해 findById() -> getById() 수정 * remove() : DynamicUpdate 제거 * chore : 충돌 해결 * chore : 파일 위치 수정 * feat : 알림 구독 엔티티 생성 * feat: flyway 테이블 추가 * feat: API 형태 추가 * feat: 알림구독 추가, 삭제 컨트롤러 작성 * feat: 레포지토리 추가중.. * feat : delete api 수정 * feat: post 수정 중 .. * feat: GET 요청 반환값 만들기 * feat: 안정화 * feat: notification 팩토리 추가 * feat: getNotification 테스트코드 작성중 * test: 테스트 작성 중.. * feat: getNotification 테스트코드 작성완료 * feat: 스네이크케이스로 변경 후 디바이스토큰 추가 테스트코드 작성 * feat: post반환값 수정 * feat : deleteNotification 테스트 코드 추가 * feat : NotificationApiTest 완성 * remove : 알림 구독 관련 테스트 제거 * fix: 상속 받는 예외 클래스 수정 * fix: BIGINT -> UNSIGNED INT 수정 * test: koinAppUrl 추가 * style: 라인포맷팅 * test: .log().all() 제거 --------- Co-authored-by: Hyeonsu Lee <127578418+20HyeonsuLee@users.noreply.github.com> Co-authored-by: songsunkook <songsunkook@gmail.com> Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> Co-authored-by: 최준호 <junho5336@gmail.com> * feat: 메뉴 변경 여부 추가 (#250) * feat: 메뉴 변경 확인 추가 * refactor: 테스트 수정 * feat: flyway 컬럼 추가 * refactor: V4에서 V5로 변경 * rename: V5에서 V6으로 변경 * Revert "feat: 메뉴 변경 여부 추가 (#250)" (#273) This reverts commit f8458cc. * refactor: 메뉴 변경 여부 컬럼명 통일 (#274) * feat: 메뉴 변경 확인 추가 * refactor: 테스트 수정 * feat: flyway 컬럼 추가 * refactor: V4에서 V5로 변경 * rename: V5에서 V6으로 변경 * refactor: 필드명 변경 * refactor: 필드명 변경 * feat: 버스 남은 시간 조회 - 시내버스 (#239) * feat: API 골격 작성 * feat: mongoDB 의존성 추가 * feat: 응답 객체 작성 * feat: 예외 추가 * feat: 엔티티 작성 * feat: 미운행인 버스 필터링 * feat: enum 추가 * feat: 남은 시간 계산 로직 작성 * feat: 가장 최근 버스까지 남은 시간 응답 구현 * feat: 미운행 요일 제외 로직 추가 * feat: 버스 정거장 검증로직 적용 및 중복되는 시간 제외 * refactor: enum 객체를 사용하도록 수정 * refactor: 등하교 방향 기준 탐색에서 정류장 탐색으로 로직 변경 * remove: 미사용 코드 제거 BusCourse.isRunning() * refactor: 테스트 mocking 위해 Clock 사용하도록 수정 * test: 테스트컨테이너 mongoDB 추가 * test: 셔틀 버스 조회 테스트 추가 * feat: 시내버스 Open API 호출 로직 작성 * feat: 방향 판단 로직 추가 * fix: 호출 예외 수정 * feat: json 파싱 로직 작성 1. json 파싱 로직 작성 2. 결과 코드 검증 3. 예외 추가 (500 반환) * feat: API 골격 작성 * feat: mongoDB 의존성 추가 * feat: 응답 객체 작성 * feat: 예외 추가 * feat: 엔티티 작성 * feat: 미운행인 버스 필터링 * feat: enum 추가 * feat: 남은 시간 계산 로직 작성 * feat: 가장 최근 버스까지 남은 시간 응답 구현 * feat: 미운행 요일 제외 로직 추가 * feat: 버스 정거장 검증로직 적용 및 중복되는 시간 제외 * refactor: enum 객체를 사용하도록 수정 * refactor: 등하교 방향 기준 탐색에서 정류장 탐색으로 로직 변경 * remove: 미사용 코드 제거 BusCourse.isRunning() * refactor: 테스트 mocking 위해 Clock 사용하도록 수정 * test: 테스트컨테이너 mongoDB 추가 * test: 셔틀 버스 조회 테스트 추가 * docs: API 문서에 파라미터 정보 명시 * remove: 불필요 주석 제거 * refactor: 누락된 Transactional 추가 * fix: mocking 변수 선언부 이동 * remove: 불필요 주석 제거 * refactor: 도착 시각 패턴 불일치 시 예외처리 * refactor: 반복문을 stream으로 변환 * refactor: 엔티티 필드로 List 사용 시 미리 초기화 * refactor: String 비교 시 NPE 예방 * refactor: 불필요한 매핑 메서드 제거 * refactor: 변수 분리 * rename: 변수명 수정 * fix: 충돌 해결 * refactor: Builder 생성자 접근제어자 수정 * refactor: enum 필드 간소화 * fix: 충돌 해결 * feat: 버스번호 필터링 * feat: 시내버스 조회 정보를 레디스 캐시로 저장 * feat: 버전 최신화 메서드 작성 * refactor: Pair를 사용하지 않도록 수정 * feat: ApiType 추가 - BusType과 BusOpenApiRequester 타입 맵핑을 위함 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 주석 추가 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: record로 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 시내버스 캐시 저장 정보 변경 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * feat: 시내버스 버스 번호 반환 추가 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * feat: 버스 타입별 로직 분기 추가 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 캐싱 정보 추가 - 남은 시간만 캐싱 -> 버스 도착 정보 통째로 캐싱 - api url 수정 - 버전 정보 저장 - forEach -> for Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 시내버스 남은 시간 계산 로직 추가 - 버스 캐싱 정보 수정 - 시내버스 남은 시간 계산 로직 추가 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 응답 객체 수정 - 기존: "now_bus": {"bus_number": null, ...} - 수정: "now_bus": null Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 주석 추가 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 응답 객체 null 체크 추가 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * feat: test 작성 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 빈 배열 반환하도록 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 도착시간순 정렬 추가 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 시간 차 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: null 필터링 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: updated_at 변경 로직 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: .log().all() 삭제 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: switch문 if문으로 변경 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 복붙 문제 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * style: 컨벤션 적용 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * rename: BusInfoCache -> BusCache 이름 변경 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 주석 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * style: 컨벤션 적용 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: .log().all() 삭제 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: 패키지 분리 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: 상수, 검증 로직 분리 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: 파일 이름 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: Bus.java 삭제와 구조 변경 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: 시내버스 남은 시간 - Redis 테스트 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: 시내버스 남은 시간 - OpenApi 테스트 중간 작성 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: 변수명 변경 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * feat: 시내버스 남은 시간 - OpenApi 테스트 추 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: 시내버스 테스트 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: Constant 클래스 enum으로 변경 * refactor: 캐시 만료 시간 분리 * Revert "refactor: Constant 클래스 enum으로 변" This reverts commit 5dcbf975cccbbd276dfa5e8dbbb52864eca6c209. * Revert "Revert "refactor: Constant 클래스 enum으로 변"" This reverts commit f321b7eb60f0d5426a1fef4d839c4861a08198a2. * refactor: Constant 클래스 네이밍 변경 * feat: 버스 번호 필터링 추가 - 400, 402, 405 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * chore: 충돌 해결 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * style: 줄바꿈 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: 중괄호 제거 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * test: OPEN_API_KEY 추가 * refactor: 리뷰 반영 * refactor: 디버그 코드 삭제 --------- Co-authored-by: songsunkook <songsunkook@gmail.com> Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * feature: 상점 사장님 관련 추가, 수정, 삭제 / 일반유저 모든 상점 조회 api작성 (#270) * feat: delete Api 구현 * feat: 테스트코드 작성 * feat: 메뉴생성요청 dto작성 * feat: 상점 사장님 추가, 수정 / 일반 유저 모든상점조회 api 작성 * feat: 라인 포맷팅 * feat: 테스트코드 로그 제거 * feat: 피드백 반영 1차 * chore: 디버깅용 출력 제거 * chore: 리뷰반영 2 --------- Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> * feat: spring actuator 추가 (#276) Co-authored-by: Jang Jun Young <police0022@naver.com> * fix: 상점 생성 서버에러(@Valid 추가) (#281) Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> * refactor: 조회 방식 수정 (#284) * feat: 상점 모든 카테고리 조회 api작성 (#282) * feat: delete Api 구현 * feat: 테스트코드 작성 * feat: 메뉴생성요청 dto작성 * feat: 상점 사장님 추가, 수정 / 일반 유저 모든상점조회 api 작성 * feat: 라인 포맷팅 * feat: 테스트코드 로그 제거 * feat: 피드백 반영 1차 * chore: 디버깅용 출력 제거 * chore: 리뷰반영 2 * feat: 모든 상점 카테고리 조회 api작성 * chore: 충돌해결 * chore: 충돌해결 --------- Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> * �fix: student Entity 필드 수정 (#286) * refactor: #283 작업 revert * refactor: UserIdentity Ordinal로 수정 * refactor: 로그아웃, 탈퇴에 대한 권한 수정 (#288) * refactor: 이메일 인증 요청 dto 값 수정 (#290) * refactor: dto 네이밍 수정 * refactor: 사용자 성별 반환값 ordinal로 수정 * feat: lecture blank error (#293) * fix: 공백 문자 처리 * chore: log 제거 * style: 코드 효율적으로 전환 * fix: timetables 반환값 수정 (#294) * refactor: 반환값 형태 수정 * test: 테스트 값 수정 * test: 주석 제거 * refactor: trim -> strip 으로 변경 * test: 로그 제거 * fix/291 get lecture blank error reopen (#296) * fix: 공백 문자 처리 * chore: log 제거 * style: 코드 효율적으로 전환 * fix: 완전 비어 있는 리스트 처리 * chore: 우선 복구 * feat: 가게 이벤트 정보 조회 (#298) * feat: stage logback 적용 (#300) * feat: 로깅 추가 * feat: dev profile에만 추가되도록 구성 * feat: slack 알림발송 로직 추가 * refactor: 테스트용 코드 제거 * feat: slack 알림 메시지 수정 (#306) * feat: slack 알림 메시지 수정 * feat: 피드백 반영 * feat: 피드백 반영2 --------- Co-authored-by: Jang Jun Young <police0022@naver.com> * fix : userGender null 값 처리 추가 (#304) * feat: get member (#311) * feat: Get /members 구현 * feat: 사용자 단건조회 구현 * test: 테스트 구성 * fix: 없는 상점 조회 시 예외 발생 (#313) * fix: 없는 상점 조회시 예외 던지기 * chore: 개행 삭제 * chore: 라인포맷팅 --------- Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> * fix: 연관관계 수정 (#315) Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> * fix: 상점 사장님 회원가입 에러 수정 (#316) * fix: 연관관계 수정 * fix: 연관관계 수정 --------- Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> * Fix: bearerToken 추출 오류 수정 (#309) * refactor: 강의시간 문자열 분리 수정 * refactor: BEARER_TYPE 수정 * refactor: 수정 * feat: is_event값 추가 (#302) * test: add JsonAssertions * feat: isEvent 값 추가 * test: 인자 변수로 수정 * test: 테스트 수정 * feat: 시외버스 API 구현 (#317) * feat: API 골격 작성 * feat: mongoDB 의존성 추가 * feat: 응답 객체 작성 * feat: 예외 추가 * feat: 엔티티 작성 * feat: 미운행인 버스 필터링 * feat: enum 추가 * feat: 남은 시간 계산 로직 작성 * feat: 가장 최근 버스까지 남은 시간 응답 구현 * feat: 미운행 요일 제외 로직 추가 * feat: 버스 정거장 검증로직 적용 및 중복되는 시간 제외 * refactor: enum 객체를 사용하도록 수정 * refactor: 등하교 방향 기준 탐색에서 정류장 탐색으로 로직 변경 * remove: 미사용 코드 제거 BusCourse.isRunning() * refactor: 테스트 mocking 위해 Clock 사용하도록 수정 * test: 테스트컨테이너 mongoDB 추가 * test: 셔틀 버스 조회 테스트 추가 * feat: 시내버스 Open API 호출 로직 작성 * feat: 방향 판단 로직 추가 * fix: 호출 예외 수정 * feat: json 파싱 로직 작성 1. json 파싱 로직 작성 2. 결과 코드 검증 3. 예외 추가 (500 반환) * feat: API 골격 작성 * feat: mongoDB 의존성 추가 * feat: 응답 객체 작성 * feat: 예외 추가 * feat: 엔티티 작성 * feat: 미운행인 버스 필터링 * feat: enum 추가 * feat: 남은 시간 계산 로직 작성 * feat: 가장 최근 버스까지 남은 시간 응답 구현 * feat: 미운행 요일 제외 로직 추가 * feat: 버스 정거장 검증로직 적용 및 중복되는 시간 제외 * refactor: enum 객체를 사용하도록 수정 * refactor: 등하교 방향 기준 탐색에서 정류장 탐색으로 로직 변경 * remove: 미사용 코드 제거 BusCourse.isRunning() * refactor: 테스트 mocking 위해 Clock 사용하도록 수정 * test: 테스트컨테이너 mongoDB 추가 * test: 셔틀 버스 조회 테스트 추가 * docs: API 문서에 파라미터 정보 명시 * remove: 불필요 주석 제거 * refactor: 누락된 Transactional 추가 * fix: mocking 변수 선언부 이동 * remove: 불필요 주석 제거 * refactor: 도착 시각 패턴 불일치 시 예외처리 * refactor: 반복문을 stream으로 변환 * refactor: 엔티티 필드로 List 사용 시 미리 초기화 * refactor: String 비교 시 NPE 예방 * refactor: 불필요한 매핑 메서드 제거 * refactor: 변수 분리 * rename: 변수명 수정 * fix: 충돌 해결 * refactor: Builder 생성자 접근제어자 수정 * refactor: enum 필드 간소화 * fix: 충돌 해결 * feat: 버스번호 필터링 * feat: 시내버스 조회 정보를 레디스 캐시로 저장 * feat: 버전 최신화 메서드 작성 * refactor: Pair를 사용하지 않도록 수정 * feat: ApiType 추가 - BusType과 BusOpenApiRequester 타입 맵핑을 위함 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 주석 추가 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: record로 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 시내버스 캐시 저장 정보 변경 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * feat: 시내버스 버스 번호 반환 추가 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * feat: 버스 타입별 로직 분기 추가 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 캐싱 정보 추가 - 남은 시간만 캐싱 -> 버스 도착 정보 통째로 캐싱 - api url 수정 - 버전 정보 저장 - forEach -> for Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 시내버스 남은 시간 계산 로직 추가 - 버스 캐싱 정보 수정 - 시내버스 남은 시간 계산 로직 추가 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 응답 객체 수정 - 기존: "now_bus": {"bus_number": null, ...} - 수정: "now_bus": null Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 주석 추가 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 응답 객체 null 체크 추가 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * feat: test 작성 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 빈 배열 반환하도록 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 도착시간순 정렬 추가 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 시간 차 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: null 필터링 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: updated_at 변경 로직 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: .log().all() 삭제 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: switch문 if문으로 변경 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 복붙 문제 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * style: 컨벤션 적용 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * rename: BusInfoCache -> BusCache 이름 변경 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: 주석 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * style: 컨벤션 적용 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: .log().all() 삭제 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: 패키지 분리 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: 상수, 검증 로직 분리 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: 파일 이름 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: Bus.java 삭제와 구조 변경 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: 시내버스 남은 시간 - Redis 테스트 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: 시내버스 남은 시간 - OpenApi 테스트 중간 작성 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: 변수명 변경 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * feat: 시내버스 남은 시간 - OpenApi 테스트 추 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: 시내버스 테스트 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * refactor: Constant 클래스 enum으로 변경 * refactor: 캐시 만료 시간 분리 * Revert "refactor: Constant 클래스 enum으로 변" This reverts commit 5dcbf975cccbbd276dfa5e8dbbb52864eca6c209. * Revert "Revert "refactor: Constant 클래스 enum으로 변"" This reverts commit f321b7eb60f0d5426a1fef4d839c4861a08198a2. * refactor: Constant 클래스 네이밍 변경 * feat: 버스 번호 필터링 추가 - 400, 402, 405 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * chore: 충돌 해결 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * style: 줄바꿈 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: 중괄호 제거 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * test: OPEN_API_KEY 추가 * refactor: 리뷰 반영 * feat : 인수인계용 커밋 * feat: 시외버스기능구현 Co-authored-by: dradnats1012 <herjebi1012@gmail.com>, Choon0414 <hyunn815@naver.com> * feat: 시외버스 리팩터링 Co-authored-by: dradnats1012 <herjebi1012@gmail.com>, Choon0414 <hyunn815@naver.com> * test: 테스트 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com>, Choon0414 <hyunn815@naver.com> * test: 테스트 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com>, Choon0414 <hyunn815@naver.com> * test: 테스트 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com>, Choon0414 <hyunn815@naver.com> * test: 테스트 제거 * refactor: 미사용 메소드 제거 * refactor: 네이밍 수정 * refactor: 네이밍 수정 * refactor: 네이밍 수정 * refactor: ttl 선언방식 수정 * refactor: 불필요한 추상화 제거 * refactor: 네이밍 수정 * style: 공백제거 * style: 코드 포맷팅 * style: 미사용 메소드 제거 * style: 미사용 클래스 제거 * refactor: API 사용 수정 * refactor: 클래스명 수정 --------- Co-authored-by: songsunkook <songsunkook@gmail.com> Co-authored-by: 박성빈 <psb106305@gmail.com> Co-authored-by: dradnats1012 <herjebi1012@gmail.com> Co-authored-by: Choon0414 <hyunn815@naver.com> * fix: 사장님 가게정보 수정 오류 (#319) * refactor: cascade 옵션 수정 * refactor: flush 추가 * fix: menu 정보 수정 시에도 flush 추가 (#320) * refactor: cascade 옵션 수정 * refactor: flush 추가 * refactor: flush 추가 * refactor: 식단 품절, 변경 여부 (Boolean -> 시간)으로 변경 (#310) * refactor: flyway 추가 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: Boolean에서 LocalDateTime으로 변경 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * test: Boolean에서 LocalDateTime으로 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * test: DisplayName 수정 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: 품절 취소로직 추가 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * refactor: DTO NotNull Valid 추가 Co-authored-by: dradnats1012 <herjebi1012@gmail.com> --------- Co-authored-by: dradnats1012 <herjebi1012@gmail.com> * feat: 유저 권한 조회 API 작성 (#322) * feat: 유저 권한 조회 API 작성 * test: 테스트 작성 * refactor: 식단 조회 API DTO 필드명 변경 (#324) * fix: @param추가 (#327) Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> * feat: 학생 회원가입 (#271) * feat: 에외 추가 * feat: 이메일 폼 추가 * feat: 골격 추가 * feat: 서비스 로직 구현 * feat: 인증 완료 폼 * feat: 회원 등록 폼 타임리프 설정 * feat: 이메일 인증 실패 폼 * feat: Controller 추가 * feat: 인증 완료시 isAuthed true 변경 * feat: 학번 학부 인증 및 UserIdentity->ordinal로 변경 * feat: 학생 회원가입 dto * feat: Service 구현 * feat: 토큰으로 부터 찾는 메서드 Repository에 추가 * feat: authToken 암호화 Util * feat: koreatehc.ac.kr 도메인 검증 * feat: 학번과 학부 검증 * feat: 슬랙 알림 * feat: 학생 이메일 요청, 가입 이벤트 * feat: 토큰 유효기간 설정 DateUtil * feat: 잘못된 학번 형식 예외 * feat: 이메일 인증 검증 dto * feat: 회원가입 이메일 인증 폼 데이터 * refactor: contorller 메서드 수정 * feat: 테스트 작성 * refactor: 컨벤션 맞게 수정 * refactor: log().all() 제거 * refactor: 컨벤션에 맞게 수정 * refactor: authToken passwordEncoder를 통해 암호화 * refactor: 학번 검증 수정 * refactor: 학번 검증 수정 * refactor: 메서드 네이밍수정 * refactor: 필드 controller->service 이동 * refactor: 유효하지 않은 데이터 400으로 반환 * refactor: 라인포맷팅 * refactor: 라인포맷팅 * feat: 에러코드반환수정 및 학번검증 테스트 추가 * refactor: 오류 해결 * refactor: 폼 반환 로직 수정 * refactor: 라인포맷팅 * refactor: 날짜 관련 로직 수정 * refactor: 호스트주소 추출 어노테이션으로 변경 * refactor: 학부,학번 검증 로직 변경 * refactor: 비밀번호 example 중복 제거 * refactor: 폼 반환 service 로직 수정 * refactor: 호스트 주소 어노테이션 적용 * refactor: 머지 형식에 맞게 수정 * refactor: 최신 전공 형식에 맞게 수정 * refactor: InvalidDataException -> IllegalException 변경 * refactor: 개행 수정 * refactor: camelCase로 수정 * refactor: 테스트명 수정 * refactor: expiredAt clock인자 받게 수정 * refactor: authToken UUID로 수정 * refactor: LocalTimeStringConverter 이름을 LocalTimeToHHmmStringConverter로 변경 * refactor: User객체 날짜 관련 속성LocalTimeToHHmmStringConverter 이용 * refactor: 학번 검증 수정 * refactor: host어노테이션 이름 변경 * refactor: LocalDate관련 수정 * refactor: 라인포맷팅 * refactor: LocalDate관련 클래스이름 수정 * refactor: URL얻어오는 코드 수정 * refactor: AuthResult orElse -> orElseGet * refactor: LocalTimeAttributeConverter 원래대로 수정 * refactor: 라인포맷팅 * refactor: orElseGet 수정 * feat: 신규상점 생성시 기본 카테고리 추가 (#331) * fix: @param추가 * feat: 신규 상점 생성 시 기본 메뉴 카테고리 추가 * chore: 라인포맷팅 --------- Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> * fix: AttributeConverter 오류 수정 (#335) * feat: FCM 발송방식 수정 (#333) * docs: github workflow 설정 추가 * refactor: 알림 발송형태 수정 * refactor: 컬럼명 수정 * feat: isEvent 추가 (#337) * fix: shopId null일때 처리하기 (#341) * feat: 비밀번호 변경 로직 구현 (#342) * feat : 수정을 위한 1차 커밋 * feat : mailForm 생성 및 DTO, mail html 추가 * feat: controller 작성 * feat: webConfig 추가 * feat: resetToken전달하도록 수정 * feat: 이메일 전송 * feat: 버튼 누를 때 기능 * chore : 권한 static import * chore : LocalDateTime 형식으로 수정 및 미사용 파일 삭제 * feat: 비밀번호 초기화 구현 * docs: hidden 추가 * style: 개행제거 --------- Co-authored-by: duehee <149302959+duehee@users.noreply.github.com> Co-authored-by: daheeParkk <qkrekgml7414@naver.com> * fix : JsonProperty 삭제 (#345) * fix : Mixed Content 헤더 추가 (#347) * fix: attributeConverter milli second 길이가 두개인 경우도 반영 (#348) * fix: mili second 길이가 두개인 경우도 반영 * fix: authExpiredAt 시간 변경 * chore: datetimeformatter 변수명 변경 * Fix: attribute converter 오류 수정 (#349) * refactor: 회원가입 인증 토큰 만료기간 수정 * fix: AttributeConverter 오류 수정 * fix : 삭제된 userGender null 로직 추가 (#357) * feat: 이벤트 추가, 수정, 삭제, 베너조회 api 작성 (#350) * fix: @param추가 * feat: 신규 상점 생성 시 기본 메뉴 카테고리 추가 * chore…
* feat : 충돌 해결 * chore : VersionException 제거 * chore : SnakeCaseStrategy import static 수정 * refactor : 엔티티 id int -> Long 수정 * feat : 사장님 식당 생성, 특정 상점 조회 API구현 (#199) * feat: 상점 생성 기능 추가 * feat: 상점등록을 하기 위해 연관된 model정의 * feat: shop과 관련된 repository, exception작성 * feat: 1차 테스트 완료 * feat: 사장님 상점 생성 기능 구현 * feat: 특정상점조회 API구현 * refactor: 특정상점조회 테스트코드 수정 * chore: import경로 오류 수정 * chore: pull충돌 해결 * refactor: saveAll제거 * feat: 스웨거 설명 추가 * refactor: Builder생성자 접근제어 변경 * refactor: ShopResponse 적팩메이름 of로 변경 * refactor: ShopResponse 적팩메이름 of로 변경 * feat : 커스텀 예외처리 추가 * chore : 충돌 해결 * chore : 테스트 정보 수정 * chore : 파라미터 설명 추가 * refactor : menu String -> List 수정 * fix : 테이블명 수정 * refactor : 현재시간에 대한 테스트를 위해 clock 모킹 추가 * remove : 사용하지 않는 예외 삭제 * chore : 테스트코드 public 제외, 불필요한 공백 삭제 * feat : 영양사 컨트롤러, 서비스 구현 * feat : 식단 이미지 변수 추가 * feat : 영양사 권한 및 영양사 도메인 enum 추가 * feat : image 컬럼 추가 * feat : Image 업로드 요청 DTO 생성 * feat : 영양사님의 사진 업로드 테스트 추가 * feat : 특정 식단의 이미지 업데이트 쿼리 추가 * feat : 쿼리문 수정 * chore : log 제거 * refactor : coop Api 분리 * refactor : image_url로 변수명 수정 * refactor : image_url로 변수명 수정 * chore : menuId로 변수명 구체화 * chore : V$ -> V3 버전 수정 * remove : repository 계층 트랜잭션 제거(service 계층 처리) * feat : 허용되지 않은 권한에 대한 테스트 추가 * refactor : update 수정(setter 이용) * refactor : 테스트 - 허용되지않은 권한 수정 * refactor : getById() 추가 * chore : Optional 검증을 위해 findById() -> getById() 수정 * remove() : DynamicUpdate 제거 * chore : 충돌 해결 * chore : 파일 위치 수정 * feat : 알림 구독 엔티티 생성 * feat: flyway 테이블 추가 * feat: API 형태 추가 * feat: 알림구독 추가, 삭제 컨트롤러 작성 * feat: 레포지토리 추가중.. * feat : delete api 수정 * feat: post 수정 중 .. * feat: GET 요청 반환값 만들기 * feat: 안정화 * feat: notification 팩토리 추가 * feat: getNotification 테스트코드 작성중 * test: 테스트 작성 중.. * feat: getNotification 테스트코드 작성완료 * feat: 스네이크케이스로 변경 후 디바이스토큰 추가 테스트코드 작성 * feat: post반환값 수정 * feat : deleteNotification 테스트 코드 추가 * feat : NotificationApiTest 완성 * remove : 알림 구독 관련 테스트 제거 * fix: 상속 받는 예외 클래스 수정 * fix: BIGINT -> UNSIGNED INT 수정 * test: koinAppUrl 추가 * style: 라인포맷팅 * test: .log().all() 제거 --------- Co-authored-by: Hyeonsu Lee <127578418+20HyeonsuLee@users.noreply.github.com> Co-authored-by: songsunkook <songsunkook@gmail.com> Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> Co-authored-by: 최준호 <junho5336@gmail.com> (cherry picked from commit 0a5abbf)
* feat : 충돌 해결 * chore : VersionException 제거 * chore : SnakeCaseStrategy import static 수정 * refactor : 엔티티 id int -> Long 수정 * feat : 사장님 식당 생성, 특정 상점 조회 API구현 (#199) * feat: 상점 생성 기능 추가 * feat: 상점등록을 하기 위해 연관된 model정의 * feat: shop과 관련된 repository, exception작성 * feat: 1차 테스트 완료 * feat: 사장님 상점 생성 기능 구현 * feat: 특정상점조회 API구현 * refactor: 특정상점조회 테스트코드 수정 * chore: import경로 오류 수정 * chore: pull충돌 해결 * refactor: saveAll제거 * feat: 스웨거 설명 추가 * refactor: Builder생성자 접근제어 변경 * refactor: ShopResponse 적팩메이름 of로 변경 * refactor: ShopResponse 적팩메이름 of로 변경 * feat : 커스텀 예외처리 추가 * chore : 충돌 해결 * chore : 테스트 정보 수정 * chore : 파라미터 설명 추가 * refactor : menu String -> List 수정 * fix : 테이블명 수정 * refactor : 현재시간에 대한 테스트를 위해 clock 모킹 추가 * remove : 사용하지 않는 예외 삭제 * chore : 테스트코드 public 제외, 불필요한 공백 삭제 * feat : 영양사 컨트롤러, 서비스 구현 * feat : 식단 이미지 변수 추가 * feat : 영양사 권한 및 영양사 도메인 enum 추가 * feat : image 컬럼 추가 * feat : Image 업로드 요청 DTO 생성 * feat : 영양사님의 사진 업로드 테스트 추가 * feat : 특정 식단의 이미지 업데이트 쿼리 추가 * feat : 쿼리문 수정 * chore : log 제거 * refactor : coop Api 분리 * refactor : image_url로 변수명 수정 * refactor : image_url로 변수명 수정 * chore : menuId로 변수명 구체화 * chore : V$ -> V3 버전 수정 * remove : repository 계층 트랜잭션 제거(service 계층 처리) * feat : 허용되지 않은 권한에 대한 테스트 추가 * refactor : update 수정(setter 이용) * refactor : 테스트 - 허용되지않은 권한 수정 * refactor : getById() 추가 * chore : Optional 검증을 위해 findById() -> getById() 수정 * remove() : DynamicUpdate 제거 * chore : 충돌 해결 * chore : 파일 위치 수정 * feat : 알림 구독 엔티티 생성 * feat: flyway 테이블 추가 * feat: API 형태 추가 * feat: 알림구독 추가, 삭제 컨트롤러 작성 * feat: 레포지토리 추가중.. * feat : delete api 수정 * feat: post 수정 중 .. * feat: GET 요청 반환값 만들기 * feat: 안정화 * feat: notification 팩토리 추가 * feat: getNotification 테스트코드 작성중 * test: 테스트 작성 중.. * feat: getNotification 테스트코드 작성완료 * feat: 스네이크케이스로 변경 후 디바이스토큰 추가 테스트코드 작성 * feat: post반환값 수정 * feat : deleteNotification 테스트 코드 추가 * feat : NotificationApiTest 완성 * remove : 알림 구독 관련 테스트 제거 * fix: 상속 받는 예외 클래스 수정 * fix: BIGINT -> UNSIGNED INT 수정 * test: koinAppUrl 추가 * style: 라인포맷팅 * test: .log().all() 제거 --------- Co-authored-by: Hyeonsu Lee <127578418+20HyeonsuLee@users.noreply.github.com> Co-authored-by: songsunkook <songsunkook@gmail.com> Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> Co-authored-by: 최준호 <junho5336@gmail.com> (cherry picked from commit 0a5abbf)
* feat : 충돌 해결 * chore : VersionException 제거 * chore : SnakeCaseStrategy import static 수정 * refactor : 엔티티 id int -> Long 수정 * feat : 사장님 식당 생성, 특정 상점 조회 API구현 (#199) * feat: 상점 생성 기능 추가 * feat: 상점등록을 하기 위해 연관된 model정의 * feat: shop과 관련된 repository, exception작성 * feat: 1차 테스트 완료 * feat: 사장님 상점 생성 기능 구현 * feat: 특정상점조회 API구현 * refactor: 특정상점조회 테스트코드 수정 * chore: import경로 오류 수정 * chore: pull충돌 해결 * refactor: saveAll제거 * feat: 스웨거 설명 추가 * refactor: Builder생성자 접근제어 변경 * refactor: ShopResponse 적팩메이름 of로 변경 * refactor: ShopResponse 적팩메이름 of로 변경 * feat : 커스텀 예외처리 추가 * chore : 충돌 해결 * chore : 테스트 정보 수정 * chore : 파라미터 설명 추가 * refactor : menu String -> List 수정 * fix : 테이블명 수정 * refactor : 현재시간에 대한 테스트를 위해 clock 모킹 추가 * remove : 사용하지 않는 예외 삭제 * chore : 테스트코드 public 제외, 불필요한 공백 삭제 * feat : 영양사 컨트롤러, 서비스 구현 * feat : 식단 이미지 변수 추가 * feat : 영양사 권한 및 영양사 도메인 enum 추가 * feat : image 컬럼 추가 * feat : Image 업로드 요청 DTO 생성 * feat : 영양사님의 사진 업로드 테스트 추가 * feat : 특정 식단의 이미지 업데이트 쿼리 추가 * feat : 쿼리문 수정 * chore : log 제거 * refactor : coop Api 분리 * refactor : image_url로 변수명 수정 * refactor : image_url로 변수명 수정 * chore : menuId로 변수명 구체화 * chore : V$ -> V3 버전 수정 * remove : repository 계층 트랜잭션 제거(service 계층 처리) * feat : 허용되지 않은 권한에 대한 테스트 추가 * refactor : update 수정(setter 이용) * refactor : 테스트 - 허용되지않은 권한 수정 * refactor : getById() 추가 * chore : Optional 검증을 위해 findById() -> getById() 수정 * remove() : DynamicUpdate 제거 * chore : 충돌 해결 * chore : 파일 위치 수정 * feat : 알림 구독 엔티티 생성 * feat: flyway 테이블 추가 * feat: API 형태 추가 * feat: 알림구독 추가, 삭제 컨트롤러 작성 * feat: 레포지토리 추가중.. * feat : delete api 수정 * feat: post 수정 중 .. * feat: GET 요청 반환값 만들기 * feat: 안정화 * feat: notification 팩토리 추가 * feat: getNotification 테스트코드 작성중 * test: 테스트 작성 중.. * feat: getNotification 테스트코드 작성완료 * feat: 스네이크케이스로 변경 후 디바이스토큰 추가 테스트코드 작성 * feat: post반환값 수정 * feat : deleteNotification 테스트 코드 추가 * feat : NotificationApiTest 완성 * remove : 알림 구독 관련 테스트 제거 * fix: 상속 받는 예외 클래스 수정 * fix: BIGINT -> UNSIGNED INT 수정 * test: koinAppUrl 추가 * style: 라인포맷팅 * test: .log().all() 제거 --------- Co-authored-by: Hyeonsu Lee <127578418+20HyeonsuLee@users.noreply.github.com> Co-authored-by: songsunkook <songsunkook@gmail.com> Co-authored-by: HyeonsuLee <leehyeonsu4888@naver.com> Co-authored-by: 최준호 <junho5336@gmail.com>

🔥 연관 이슈
🚀 작업 내용
💬 리뷰 중점사항
전체 구독은
deviceToken의 등록과 삭제로 여부를 판단하고특정 알림 구독은 notification_subscribe 테이블 내에서
user_id로 조회하여type의 존재 여부로 판단합니다.다음부턴 브랜치 생성 유의해서 이전 로그는 안남기도록 하겠습니다..