Skip to content

Commit

Permalink
Release/v1.2.0 (#191)
Browse files Browse the repository at this point in the history
* Release/v1.1.1 (#184)

* hotfix: json resolve 문제 해결 (#85)

* feat: release 1.0.2

* fix: repositoryTest 삭제

* fix: ci pull-request에서 push로 변경

* Release/v1.0.3 (#113)

* feat: release 1.0.2 (#87)

* 추첨 이벤트 추첨 구현 (#92)

* feat: EventUser 데이터베이스에서 N 명 추첨 메서드 생성 (#37)

* feat: 랭킹 Dto Example 추가 (#37)

* feat: winnersMeta Json 타입으로 변경 (#37)

* feat: Json 타입 변경으로 인한 util, test 변경 (#37)

* feat: DTO 변경 및 Wrapper Class to Primitive Type 으로 변경 (#37)

* #feat: 추첨 메서드 작성 (#37)

* feat: 추첨 메서드를 위한 API 생성 및 인가를 위한 ApiKey 임시 설정 (#37)

* feat: WrapperClass 변경 (#37)

* feat: Request 를 위한 Dto 생성 및 ApiKey Validate (#37)

* #feat: JsonParseException 추가 (#37)

* feat: 이미 추첨이 완료된 경우 Exception (#37)

* feat: 반환값 변경 (#37)

* feat: 총 수상자 수 로직 위치 변경 (#37)

* feat: 랜덤 사용자 추출 및 Extra 추출 (#37)

* feat: 주석 추가 및 네이밍 변경, 예외 처리 순서 변경 (#37)

* fix: Rank 추가 및 등수 저장 (#37)

* test: 추첨 로직 테스트 (#37)

* test: drawWinner 메서드 테스트 코드 작성 (#37)

* docs: Swagger 문서화 (#37)

* fix: User builder 로 변경 (#37)

* #feat: MySQL 예약어로 winner 필드 명 변경 (#37)

* feat: RAND 및 Pageable 이슈로 인한 Native 쿼리로 변경 (#37)

* �EventUser Info API 변경합니다. (#95)

* docs: Swagger 문서화 정리 (#94)

* feat: EventUser NotFound 시 예외 처리 (#94)

* test: 메서드 변경으로 인한 테스트 코드 변경 (#94)

* EventUserRepository 단위 테스트 (#99)

* feat: 테스트 시 내장 H2 사용 및 초기 SQL 문 삽입 (#94)

* test: EventUserRepository 테스트 코드 작성

* cors 설정 변경 및 quiz 이벤트 로직 변경 (#97)

* fix: CorsConfig를 WebConfig로 통합 (#91)

* feat: 테스트 용 데이터 생성 메서드 작성 (#91)

* feat: 환경을 상수로 선언 (test, prod, dev) (#91)

* feat: 퀴즈 마지막 번호(lastQuizNumber) 추가 (#91)

* feat: 기대평 결과 값을 오름차순이 아닌 내림차순으로 변경 (#91)

* fix: 서비스 로직 변경 (기대평을 최신순으로 반환) (#91)

* fix: QuizNotExistException으로 변경 (#91)

* fix: /api/v1/quiz 퀴즈 문제 가져오는 api는 로그인이 필요함 (#91)

* fix: /api/v1/quiz 퀴즈 문제 가져오는 api는 로그인이 필요함 (#91)

* fix: RequestParam을 Dto로 변경 (#91)

* feat: 퀴즈 문제 api의 Dto (#91)

* feat: 퀴즈 이벤트가 진행중인지 검사하는 로직 작성  (#91)

* feat: 퀴즈 api의 비즈니스 로직을 검사하는 유닛 테스트  (#91)

* fix: 서브이벤트가 없으면 200반환이 아니라 400으로 반환되어야 한다  (#91)

* refactor: CorsConfig에서 cors 설정하던 것을 WebConfig로 이동  (#91)

* feat: quiz repository를 테스트  (#91)

* feat: findByEventIdAndExecuteType 메서드 추가  (#91)

* chore: 공백 제거  (#91)

* fix: h2 테스트 의존성 추가 (#91)

* fix: 유효성 검사 어노테이션 추가 [@Validated] (#98)

* sql 파일 수정 및 병합으로 인한 코드 중복 해결 (#103)

* fix: H2 database INSERT 문법 변경

* fix: 코드 중복 제거

* fix: 변수 재선언 제거

* fix: 테스트할 sql 파일 수정

* eventId를 쿼리 파라미터로 받지 않게 수정 (#105)

* fix: eventId를 환경변수로 받음 (#104)

* fix: eventId 제거 (#104)

* fix: eventId 제거 (#104)

* fix: Winners 테이블에 ranking 컬럼 추가 (#104)

* fix: 상태 값을 상수로 변경 (#104)

* api 경로 수정 및 예외 수정 (#109)

* fix: expectationComment -> comment

* fix: GET /expectation/land -> /expectation
fix: POST /expectation/register -> /expectation

* fix: expectationBannerImgUrl -> bannerImgUrl

* fix: expectationContent -> comments

* fix: validation 라이브러리 추가

* fix: @Data, @NoArgsConstruct 추가

* chore: expectationPage 컬럼 명 변경

* fix: 퀴즈 테이블명 수정

* fix: api 경로 수정

* fix: 중복 코드 제거

* fix: quiz 테이블명 변경에 따른 코드 수정

* fix: POST 메서드에 @ParameterObject 제거

* fix: 테이블 명을 quizzes에서 quiz_firstcome_events로 변경

* fix: quizSubmitResponseDto를 반환하지 않는 문제 해결

* fix: @ParameterObject 제거

* 드로잉 추첨 이벤트 테이블 및 추첨 메서드 도메인 변경합니다. (#110)

* feat: 추첨 메서드 도메인 변경 (#108)

* test: 추첨 이벤트 테스트 코드 작성 (#108)

* feat: Import 부분 삭제 (#108)

* feat: 유효성 검사 메서드 추출 (#108)

* 단축 URL 생성 및 Redirect 구현합니다. (#107)

* feat: Entity 및 Dto 변경 (#100)

* feat: 이벤트 참가 유저 랜덤값 생성 및 예외 처리 (#100)

* feat: ShaedUrl 랜덤값 업데이트 및 저장 (#100)

* feat: shard-url API 생성 및 문서화 (#100)

* feat: URL 을 통해 특정 유저 매핑 후 Redirect URL 반환 (#100)

* feat: Shared URL을 PathParameter 로 가지는 API 생성 (#100)

* fix: shared_url unique key 위반 해결

* chore: 버전 1.0.3 설정

* feat: cicd에서 테스트 파일을 읽도록 수정

* fix: base64 적용

* fix: base64 적용 해제

* fix: 테스트 yml 추가

* feat: Log Permission Error

* feat: API Path 수정

* feat: build 시 test active 설정

* feat: cors 와이드카드 설정

---------

Co-authored-by: mjmj <108040422+violet-mj@users.noreply.github.com>
Co-authored-by: mjmj <violet_prog@naver.com>

* Release/v1.0.4 (#119)

* feat: release 1.0.2 (#87)

* 추첨 이벤트 추첨 구현 (#92)

* feat: EventUser 데이터베이스에서 N 명 추첨 메서드 생성 (#37)

* feat: 랭킹 Dto Example 추가 (#37)

* feat: winnersMeta Json 타입으로 변경 (#37)

* feat: Json 타입 변경으로 인한 util, test 변경 (#37)

* feat: DTO 변경 및 Wrapper Class to Primitive Type 으로 변경 (#37)

* #feat: 추첨 메서드 작성 (#37)

* feat: 추첨 메서드를 위한 API 생성 및 인가를 위한 ApiKey 임시 설정 (#37)

* feat: WrapperClass 변경 (#37)

* feat: Request 를 위한 Dto 생성 및 ApiKey Validate (#37)

* #feat: JsonParseException 추가 (#37)

* feat: 이미 추첨이 완료된 경우 Exception (#37)

* feat: 반환값 변경 (#37)

* feat: 총 수상자 수 로직 위치 변경 (#37)

* feat: 랜덤 사용자 추출 및 Extra 추출 (#37)

* feat: 주석 추가 및 네이밍 변경, 예외 처리 순서 변경 (#37)

* fix: Rank 추가 및 등수 저장 (#37)

* test: 추첨 로직 테스트 (#37)

* test: drawWinner 메서드 테스트 코드 작성 (#37)

* docs: Swagger 문서화 (#37)

* fix: User builder 로 변경 (#37)

* #feat: MySQL 예약어로 winner 필드 명 변경 (#37)

* feat: RAND 및 Pageable 이슈로 인한 Native 쿼리로 변경 (#37)

* �EventUser Info API 변경합니다. (#95)

* docs: Swagger 문서화 정리 (#94)

* feat: EventUser NotFound 시 예외 처리 (#94)

* test: 메서드 변경으로 인한 테스트 코드 변경 (#94)

* EventUserRepository 단위 테스트 (#99)

* feat: 테스트 시 내장 H2 사용 및 초기 SQL 문 삽입 (#94)

* test: EventUserRepository 테스트 코드 작성

* cors 설정 변경 및 quiz 이벤트 로직 변경 (#97)

* fix: CorsConfig를 WebConfig로 통합 (#91)

* feat: 테스트 용 데이터 생성 메서드 작성 (#91)

* feat: 환경을 상수로 선언 (test, prod, dev) (#91)

* feat: 퀴즈 마지막 번호(lastQuizNumber) 추가 (#91)

* feat: 기대평 결과 값을 오름차순이 아닌 내림차순으로 변경 (#91)

* fix: 서비스 로직 변경 (기대평을 최신순으로 반환) (#91)

* fix: QuizNotExistException으로 변경 (#91)

* fix: /api/v1/quiz 퀴즈 문제 가져오는 api는 로그인이 필요함 (#91)

* fix: /api/v1/quiz 퀴즈 문제 가져오는 api는 로그인이 필요함 (#91)

* fix: RequestParam을 Dto로 변경 (#91)

* feat: 퀴즈 문제 api의 Dto (#91)

* feat: 퀴즈 이벤트가 진행중인지 검사하는 로직 작성  (#91)

* feat: 퀴즈 api의 비즈니스 로직을 검사하는 유닛 테스트  (#91)

* fix: 서브이벤트가 없으면 200반환이 아니라 400으로 반환되어야 한다  (#91)

* refactor: CorsConfig에서 cors 설정하던 것을 WebConfig로 이동  (#91)

* feat: quiz repository를 테스트  (#91)

* feat: findByEventIdAndExecuteType 메서드 추가  (#91)

* chore: 공백 제거  (#91)

* fix: h2 테스트 의존성 추가 (#91)

* fix: 유효성 검사 어노테이션 추가 [@Validated] (#98)

* sql 파일 수정 및 병합으로 인한 코드 중복 해결 (#103)

* fix: H2 database INSERT 문법 변경

* fix: 코드 중복 제거

* fix: 변수 재선언 제거

* fix: 테스트할 sql 파일 수정

* eventId를 쿼리 파라미터로 받지 않게 수정 (#105)

* fix: eventId를 환경변수로 받음 (#104)

* fix: eventId 제거 (#104)

* fix: eventId 제거 (#104)

* fix: Winners 테이블에 ranking 컬럼 추가 (#104)

* fix: 상태 값을 상수로 변경 (#104)

* api 경로 수정 및 예외 수정 (#109)

* fix: expectationComment -> comment

* fix: GET /expectation/land -> /expectation
fix: POST /expectation/register -> /expectation

* fix: expectationBannerImgUrl -> bannerImgUrl

* fix: expectationContent -> comments

* fix: validation 라이브러리 추가

* fix: @Data, @NoArgsConstruct 추가

* chore: expectationPage 컬럼 명 변경

* fix: 퀴즈 테이블명 수정

* fix: api 경로 수정

* fix: 중복 코드 제거

* fix: quiz 테이블명 변경에 따른 코드 수정

* fix: POST 메서드에 @ParameterObject 제거

* fix: 테이블 명을 quizzes에서 quiz_firstcome_events로 변경

* fix: quizSubmitResponseDto를 반환하지 않는 문제 해결

* fix: @ParameterObject 제거

* 드로잉 추첨 이벤트 테이블 및 추첨 메서드 도메인 변경합니다. (#110)

* feat: 추첨 메서드 도메인 변경 (#108)

* test: 추첨 이벤트 테스트 코드 작성 (#108)

* feat: Import 부분 삭제 (#108)

* feat: 유효성 검사 메서드 추출 (#108)

* 단축 URL 생성 및 Redirect 구현합니다. (#107)

* feat: Entity 및 Dto 변경 (#100)

* feat: 이벤트 참가 유저 랜덤값 생성 및 예외 처리 (#100)

* feat: ShaedUrl 랜덤값 업데이트 및 저장 (#100)

* feat: shard-url API 생성 및 문서화 (#100)

* feat: URL 을 통해 특정 유저 매핑 후 Redirect URL 반환 (#100)

* feat: Shared URL을 PathParameter 로 가지는 API 생성 (#100)

* Release/v1.0.3

commit 34bb96bb73bffe6165f59579142bcf862144be3a
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 11:36:13 2024 +0900

    feat: cors 와이드카드 설정

commit 21fc9a590a5fbe90a65f22c03cf8ca48682f776b
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 11:36:02 2024 +0900

    feat: build 시 test active 설정

commit 7cc569ed5a23fd857bbe06814eae035be4f66529
Merge: 7b3bf77 44b068c
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 11:29:34 2024 +0900

    Merge branch 'master' into release/v1.0.3

    # Conflicts:
    #	gradle.properties
    #	src/test/java/com/hyundai/softeer/backend/domain/expectation/repository/ExpectationRepositoryTest.java
    #	src/test/resources/sql/integration.sql

commit 7b3bf77a8d9337d8392f614061e6512e3086d141
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 11:24:40 2024 +0900

    feat: API Path 수정

commit 1346467f6f0af906cec8f04553e7d1fb7a1ad336
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 11:22:23 2024 +0900

    feat: Log Permission Error

commit 7f02308d5408a200e5b766d17b881223911e36ff
Merge: 5db777b 1771b59
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 10:10:02 2024 +0900

    Merge branch 'release/v1.0.3' into dev

commit 1771b5960e96d7e3a529328ebb42242e058929cf
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 10:09:48 2024 +0900

    fix: 테스트 yml 추가

commit 5db777b8bb8d822299fc12e9fa627b3446057e6c
Merge: 913af8e b5564cc
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 02:04:36 2024 +0900

    Merge branch 'release/v1.0.3' into dev

commit b5564cc72e29d5da6e660761451bea197cf85676
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 02:03:59 2024 +0900

    fix: base64 적용 해제

commit 913af8e12a1ecba585293c762ce48156fd63ec42
Merge: 8f40eb0 4afe625
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 02:01:11 2024 +0900

    Merge branch 'release/v1.0.3' into dev

commit 4afe625b9a1604ed5935cbdb0043a0ffe801b50f
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 02:00:40 2024 +0900

    fix: base64 적용

commit 8f40eb01508eb70bf568258f8e229af7226cadc0
Merge: cf2a476 9839ded
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 01:08:27 2024 +0900

    Merge branch 'release/v1.0.3' into dev

commit 9839dedd91e6b84cff1a74f60fc0052cf569df67
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 01:08:12 2024 +0900

    feat: cicd에서 테스트 파일을 읽도록 수정

commit cf2a476229cd11d83f3d2bd4c5d9cb5bf2934a36
Merge: cfb648f 907bd62
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 00:54:34 2024 +0900

    Merge branch 'release/v1.0.3' into dev

commit 907bd62e9e13fa34819d3ea8b599db9906593a8c
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 00:54:12 2024 +0900

    chore: 버전 1.0.3 설정

commit 43f9bc77734d8d442af9f29cb51a99d4964b4282
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 00:52:42 2024 +0900

    fix: shared_url unique key 위반 해결

commit 44b068c86e5f39b61a1c90341720f5e71f2e58f7
Merge: fc95896 4149e6d
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 19:06:29 2024 +0900

    Merge branch 'release/v1.0.2'

commit 4149e6d9d5e7c61eecbb5107f2571f27a8d9a0c7
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 18:59:42 2024 +0900

    fix: ci pull-request에서 push로 변경

commit 4a4ae8b6ecab7b7dca6ebc3a62bb2165b0a5e258
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 18:25:30 2024 +0900

    fix: repositoryTest 삭제

commit a96eaaa3ffdf671b495da506c9503fe2b9171a02
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 17:24:57 2024 +0900

    feat: release 1.0.2

commit fc958965b800fdff9b7b63c6bd953dd46cb26b67
Author: mjmj <108040422+violet-mj@users.noreply.github.com>
Date:   Tue Aug 6 12:07:21 2024 +0900

    hotfix: json resolve 문제 해결 (#85)

* 드로잉 게임 정보 API 생성했습니다. (#115)

* fix: base64 적용

* fix: base64 적용 해제

* fix: 테스트 yml 추가

* fix: repositoryTest 삭제

* feat: drawing 엔티티 변경 (#93)

* feat: 드로잉 게임을 위한 이미지 반환 타입 지정 (#93)

* test: Drawing Repository 테스트 작성 및 SQL 문 최신화 (#93)

* test: 드로잉 게임 정보 조회 Service 테스트 코드 작성 (#93)

* feat: 게임 정보 조회 API 생성 및 문서화 (#93)

* feat: 반환값 변경으로 인한 DTO 변경 (#93)

* feat: 데이터 요청사항 변경으로 Dto 변경 (#93)

* feat: integration-h2.sql 문 최신화 (#93)

---------

Co-authored-by: mjmj <violet_prog@naver.com>

* Fix/#114 v1.0.3 bugs (#116)

* feat: JWT UserNot Found 시 예외 처리 (#114)

* feat: 로그인 처리에서 JwtException 으로 처리 (#114)

* feat: Email or Phone 으로 조회하는 메서드 추가 (#114)

* test: Email, Phone 조회 테스트 코드 작성 (#114)

* feat: 이메일, 전화번호 확인 로직 추가 (#114)

* feat: firstcome 오타 수정 (#114)

* feat: quiz 엔티티 이름 drawing 과 통일 (#114)

* feat: 랜딩 페이지 별도 분리 및 화이트리스트 적용 (#114)

* feat: Controller 단 Valid, event_id 설정 및 DTO 전달 (#114)

* feat: import 정리 (#114)

* feat: v1.0.4

* feat: 이름 변경

* test: Test 코드 변경

---------

Co-authored-by: mjmj <108040422+violet-mj@users.noreply.github.com>
Co-authored-by: mjmj <violet_prog@naver.com>

* Release/v1.0.5 (#138)

* feat: release 1.0.2 (#87)

* 추첨 이벤트 추첨 구현 (#92)

* feat: EventUser 데이터베이스에서 N 명 추첨 메서드 생성 (#37)

* feat: 랭킹 Dto Example 추가 (#37)

* feat: winnersMeta Json 타입으로 변경 (#37)

* feat: Json 타입 변경으로 인한 util, test 변경 (#37)

* feat: DTO 변경 및 Wrapper Class to Primitive Type 으로 변경 (#37)

* #feat: 추첨 메서드 작성 (#37)

* feat: 추첨 메서드를 위한 API 생성 및 인가를 위한 ApiKey 임시 설정 (#37)

* feat: WrapperClass 변경 (#37)

* feat: Request 를 위한 Dto 생성 및 ApiKey Validate (#37)

* #feat: JsonParseException 추가 (#37)

* feat: 이미 추첨이 완료된 경우 Exception (#37)

* feat: 반환값 변경 (#37)

* feat: 총 수상자 수 로직 위치 변경 (#37)

* feat: 랜덤 사용자 추출 및 Extra 추출 (#37)

* feat: 주석 추가 및 네이밍 변경, 예외 처리 순서 변경 (#37)

* fix: Rank 추가 및 등수 저장 (#37)

* test: 추첨 로직 테스트 (#37)

* test: drawWinner 메서드 테스트 코드 작성 (#37)

* docs: Swagger 문서화 (#37)

* fix: User builder 로 변경 (#37)

* #feat: MySQL 예약어로 winner 필드 명 변경 (#37)

* feat: RAND 및 Pageable 이슈로 인한 Native 쿼리로 변경 (#37)

* �EventUser Info API 변경합니다. (#95)

* docs: Swagger 문서화 정리 (#94)

* feat: EventUser NotFound 시 예외 처리 (#94)

* test: 메서드 변경으로 인한 테스트 코드 변경 (#94)

* EventUserRepository 단위 테스트 (#99)

* feat: 테스트 시 내장 H2 사용 및 초기 SQL 문 삽입 (#94)

* test: EventUserRepository 테스트 코드 작성

* cors 설정 변경 및 quiz 이벤트 로직 변경 (#97)

* fix: CorsConfig를 WebConfig로 통합 (#91)

* feat: 테스트 용 데이터 생성 메서드 작성 (#91)

* feat: 환경을 상수로 선언 (test, prod, dev) (#91)

* feat: 퀴즈 마지막 번호(lastQuizNumber) 추가 (#91)

* feat: 기대평 결과 값을 오름차순이 아닌 내림차순으로 변경 (#91)

* fix: 서비스 로직 변경 (기대평을 최신순으로 반환) (#91)

* fix: QuizNotExistException으로 변경 (#91)

* fix: /api/v1/quiz 퀴즈 문제 가져오는 api는 로그인이 필요함 (#91)

* fix: /api/v1/quiz 퀴즈 문제 가져오는 api는 로그인이 필요함 (#91)

* fix: RequestParam을 Dto로 변경 (#91)

* feat: 퀴즈 문제 api의 Dto (#91)

* feat: 퀴즈 이벤트가 진행중인지 검사하는 로직 작성  (#91)

* feat: 퀴즈 api의 비즈니스 로직을 검사하는 유닛 테스트  (#91)

* fix: 서브이벤트가 없으면 200반환이 아니라 400으로 반환되어야 한다  (#91)

* refactor: CorsConfig에서 cors 설정하던 것을 WebConfig로 이동  (#91)

* feat: quiz repository를 테스트  (#91)

* feat: findByEventIdAndExecuteType 메서드 추가  (#91)

* chore: 공백 제거  (#91)

* fix: h2 테스트 의존성 추가 (#91)

* fix: 유효성 검사 어노테이션 추가 [@Validated] (#98)

* sql 파일 수정 및 병합으로 인한 코드 중복 해결 (#103)

* fix: H2 database INSERT 문법 변경

* fix: 코드 중복 제거

* fix: 변수 재선언 제거

* fix: 테스트할 sql 파일 수정

* eventId를 쿼리 파라미터로 받지 않게 수정 (#105)

* fix: eventId를 환경변수로 받음 (#104)

* fix: eventId 제거 (#104)

* fix: eventId 제거 (#104)

* fix: Winners 테이블에 ranking 컬럼 추가 (#104)

* fix: 상태 값을 상수로 변경 (#104)

* api 경로 수정 및 예외 수정 (#109)

* fix: expectationComment -> comment

* fix: GET /expectation/land -> /expectation
fix: POST /expectation/register -> /expectation

* fix: expectationBannerImgUrl -> bannerImgUrl

* fix: expectationContent -> comments

* fix: validation 라이브러리 추가

* fix: @Data, @NoArgsConstruct 추가

* chore: expectationPage 컬럼 명 변경

* fix: 퀴즈 테이블명 수정

* fix: api 경로 수정

* fix: 중복 코드 제거

* fix: quiz 테이블명 변경에 따른 코드 수정

* fix: POST 메서드에 @ParameterObject 제거

* fix: 테이블 명을 quizzes에서 quiz_firstcome_events로 변경

* fix: quizSubmitResponseDto를 반환하지 않는 문제 해결

* fix: @ParameterObject 제거

* 드로잉 추첨 이벤트 테이블 및 추첨 메서드 도메인 변경합니다. (#110)

* feat: 추첨 메서드 도메인 변경 (#108)

* test: 추첨 이벤트 테스트 코드 작성 (#108)

* feat: Import 부분 삭제 (#108)

* feat: 유효성 검사 메서드 추출 (#108)

* 단축 URL 생성 및 Redirect 구현합니다. (#107)

* feat: Entity 및 Dto 변경 (#100)

* feat: 이벤트 참가 유저 랜덤값 생성 및 예외 처리 (#100)

* feat: ShaedUrl 랜덤값 업데이트 및 저장 (#100)

* feat: shard-url API 생성 및 문서화 (#100)

* feat: URL 을 통해 특정 유저 매핑 후 Redirect URL 반환 (#100)

* feat: Shared URL을 PathParameter 로 가지는 API 생성 (#100)

* Release/v1.0.3

commit 34bb96bb73bffe6165f59579142bcf862144be3a
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 11:36:13 2024 +0900

    feat: cors 와이드카드 설정

commit 21fc9a590a5fbe90a65f22c03cf8ca48682f776b
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 11:36:02 2024 +0900

    feat: build 시 test active 설정

commit 7cc569ed5a23fd857bbe06814eae035be4f66529
Merge: 7b3bf77 44b068c
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 11:29:34 2024 +0900

    Merge branch 'master' into release/v1.0.3

    # Conflicts:
    #	gradle.properties
    #	src/test/java/com/hyundai/softeer/backend/domain/expectation/repository/ExpectationRepositoryTest.java
    #	src/test/resources/sql/integration.sql

commit 7b3bf77a8d9337d8392f614061e6512e3086d141
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 11:24:40 2024 +0900

    feat: API Path 수정

commit 1346467f6f0af906cec8f04553e7d1fb7a1ad336
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 11:22:23 2024 +0900

    feat: Log Permission Error

commit 7f02308d5408a200e5b766d17b881223911e36ff
Merge: 5db777b 1771b59
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 10:10:02 2024 +0900

    Merge branch 'release/v1.0.3' into dev

commit 1771b5960e96d7e3a529328ebb42242e058929cf
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 10:09:48 2024 +0900

    fix: 테스트 yml 추가

commit 5db777b8bb8d822299fc12e9fa627b3446057e6c
Merge: 913af8e b5564cc
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 02:04:36 2024 +0900

    Merge branch 'release/v1.0.3' into dev

commit b5564cc72e29d5da6e660761451bea197cf85676
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 02:03:59 2024 +0900

    fix: base64 적용 해제

commit 913af8e12a1ecba585293c762ce48156fd63ec42
Merge: 8f40eb0 4afe625
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 02:01:11 2024 +0900

    Merge branch 'release/v1.0.3' into dev

commit 4afe625b9a1604ed5935cbdb0043a0ffe801b50f
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 02:00:40 2024 +0900

    fix: base64 적용

commit 8f40eb01508eb70bf568258f8e229af7226cadc0
Merge: cf2a476 9839ded
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 01:08:27 2024 +0900

    Merge branch 'release/v1.0.3' into dev

commit 9839dedd91e6b84cff1a74f60fc0052cf569df67
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 01:08:12 2024 +0900

    feat: cicd에서 테스트 파일을 읽도록 수정

commit cf2a476229cd11d83f3d2bd4c5d9cb5bf2934a36
Merge: cfb648f 907bd62
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 00:54:34 2024 +0900

    Merge branch 'release/v1.0.3' into dev

commit 907bd62e9e13fa34819d3ea8b599db9906593a8c
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 00:54:12 2024 +0900

    chore: 버전 1.0.3 설정

commit 43f9bc77734d8d442af9f29cb51a99d4964b4282
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 00:52:42 2024 +0900

    fix: shared_url unique key 위반 해결

commit 44b068c86e5f39b61a1c90341720f5e71f2e58f7
Merge: fc95896 4149e6d
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 19:06:29 2024 +0900

    Merge branch 'release/v1.0.2'

commit 4149e6d9d5e7c61eecbb5107f2571f27a8d9a0c7
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 18:59:42 2024 +0900

    fix: ci pull-request에서 push로 변경

commit 4a4ae8b6ecab7b7dca6ebc3a62bb2165b0a5e258
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 18:25:30 2024 +0900

    fix: repositoryTest 삭제

commit a96eaaa3ffdf671b495da506c9503fe2b9171a02
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 17:24:57 2024 +0900

    feat: release 1.0.2

commit fc958965b800fdff9b7b63c6bd953dd46cb26b67
Author: mjmj <108040422+violet-mj@users.noreply.github.com>
Date:   Tue Aug 6 12:07:21 2024 +0900

    hotfix: json resolve 문제 해결 (#85)

* 드로잉 게임 정보 API 생성했습니다. (#115)

* fix: base64 적용

* fix: base64 적용 해제

* fix: 테스트 yml 추가

* fix: repositoryTest 삭제

* feat: drawing 엔티티 변경 (#93)

* feat: 드로잉 게임을 위한 이미지 반환 타입 지정 (#93)

* test: Drawing Repository 테스트 작성 및 SQL 문 최신화 (#93)

* test: 드로잉 게임 정보 조회 Service 테스트 코드 작성 (#93)

* feat: 게임 정보 조회 API 생성 및 문서화 (#93)

* feat: 반환값 변경으로 인한 DTO 변경 (#93)

* feat: 데이터 요청사항 변경으로 Dto 변경 (#93)

* feat: integration-h2.sql 문 최신화 (#93)

---------

Co-authored-by: mjmj <violet_prog@naver.com>

* Fix/#114 v1.0.3 bugs (#116)

* feat: JWT UserNot Found 시 예외 처리 (#114)

* feat: 로그인 처리에서 JwtException 으로 처리 (#114)

* feat: Email or Phone 으로 조회하는 메서드 추가 (#114)

* test: Email, Phone 조회 테스트 코드 작성 (#114)

* feat: 이메일, 전화번호 확인 로직 추가 (#114)

* feat: firstcome 오타 수정 (#114)

* feat: quiz 엔티티 이름 drawing 과 통일 (#114)

* feat: 랜딩 페이지 별도 분리 및 화이트리스트 적용 (#114)

* feat: Controller 단 Valid, event_id 설정 및 DTO 전달 (#114)

* feat: import 정리 (#114)

* Release v1.0.4

commit 92b5f1797b485d74c492536443e1793c97d9cd39
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 20:44:40 2024 +0900

    test: Test 코드 변경

commit d4d692b2ca862b3497482dcfc782a39ddacf989e
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 20:37:07 2024 +0900

    feat: 이름 변경

commit 6dd36d023903103b875cc1627a42a68b74556acb
Merge: 2db0aa7 679277e
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 20:35:45 2024 +0900

    Merge branch 'master' into release/v1.0.4

    # Conflicts:
    #	.github/workflows/gradle-publish.yml
    #	gradle.properties
    #	src/main/java/com/hyundai/softeer/backend/domain/event/dto/ApiKeyRequest.java
    #	src/main/java/com/hyundai/softeer/backend/domain/eventuser/controller/SharedUrlController.java
    #	src/main/java/com/hyundai/softeer/backend/domain/eventuser/service/EventUserService.java
    #	src/main/java/com/hyundai/softeer/backend/domain/expectation/controller/ExpectationController.java
    #	src/main/java/com/hyundai/softeer/backend/domain/firstcome/quiz/controller/QuizFirstComeController.java
    #	src/main/java/com/hyundai/softeer/backend/domain/firstcome/quiz/dto/QuizRequest.java
    #	src/main/java/com/hyundai/softeer/backend/domain/firstcome/quiz/service/QuizFirstComeService.java
    #	src/main/java/com/hyundai/softeer/backend/domain/firstcomeevent/quiz/dto/QuizSubmitRequest.java
    #	src/main/java/com/hyundai/softeer/backend/domain/lottery/drawing/controller/DrawingLotteryController.java
    #	src/main/java/com/hyundai/softeer/backend/domain/lottery/drawing/service/DrawingLotteryService.java
    #	src/main/java/com/hyundai/softeer/backend/domain/lottery/service/LotteryService.java
    #	src/main/java/com/hyundai/softeer/backend/domain/subevent/controller/SubEventController.java
    #	src/main/java/com/hyundai/softeer/backend/domain/subevent/dto/SubEventRequest.java
    #	src/main/java/com/hyundai/softeer/backend/domain/subevent/service/SubEventService.java
    #	src/main/java/com/hyundai/softeer/backend/global/filter/JwtAuthorizationFilter.java
    #	src/test/java/com/hyundai/softeer/backend/domain/eventuser/repository/EventUserRepositoryTest.java
    #	src/test/java/com/hyundai/softeer/backend/domain/expectation/repository/ExpectationRepositoryTest.java
    #	src/test/java/com/hyundai/softeer/backend/domain/lottery/drawing/service/DrawingLotteryServiceTest.java
    #	src/test/java/com/hyundai/softeer/backend/domain/subevent/service/SubEventServiceTest.java
    #	src/test/resources/sql/integration-h2.sql
    #	src/test/resources/sql/integration.sql

commit 2db0aa7852007040626351b3083ec4c0947437c9
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 20:31:51 2024 +0900

    feat: v1.0.4

commit 679277edd7a9a747c910cb8d91972c390c564e33
Author: min9805 <56664567+min9805@users.noreply.github.com>
Date:   Fri Aug 9 11:39:51 2024 +0900

    Release/v1.0.3 (#113)

    * feat: release 1.0.2 (#87)

    * 추첨 이벤트 추첨 구현 (#92)

    * feat: EventUser 데이터베이스에서 N 명 추첨 메서드 생성 (#37)

    * feat: 랭킹 Dto Example 추가 (#37)

    * feat: winnersMeta Json 타입으로 변경 (#37)

    * feat: Json 타입 변경으로 인한 util, test 변경 (#37)

    * feat: DTO 변경 및 Wrapper Class to Primitive Type 으로 변경 (#37)

    * #feat: 추첨 메서드 작성 (#37)

    * feat: 추첨 메서드를 위한 API 생성 및 인가를 위한 ApiKey 임시 설정 (#37)

    * feat: WrapperClass 변경 (#37)

    * feat: Request 를 위한 Dto 생성 및 ApiKey Validate (#37)

    * #feat: JsonParseException 추가 (#37)

    * feat: 이미 추첨이 완료된 경우 Exception (#37)

    * feat: 반환값 변경 (#37)

    * feat: 총 수상자 수 로직 위치 변경 (#37)

    * feat: 랜덤 사용자 추출 및 Extra 추출 (#37)

    * feat: 주석 추가 및 네이밍 변경, 예외 처리 순서 변경 (#37)

    * fix: Rank 추가 및 등수 저장 (#37)

    * test: 추첨 로직 테스트 (#37)

    * test: drawWinner 메서드 테스트 코드 작성 (#37)

    * docs: Swagger 문서화 (#37)

    * fix: User builder 로 변경 (#37)

    * #feat: MySQL 예약어로 winner 필드 명 변경 (#37)

    * feat: RAND 및 Pageable 이슈로 인한 Native 쿼리로 변경 (#37)

    * �EventUser Info API 변경합니다. (#95)

    * docs: Swagger 문서화 정리 (#94)

    * feat: EventUser NotFound 시 예외 처리 (#94)

    * test: 메서드 변경으로 인한 테스트 코드 변경 (#94)

    * EventUserRepository 단위 테스트 (#99)

    * feat: 테스트 시 내장 H2 사용 및 초기 SQL 문 삽입 (#94)

    * test: EventUserRepository 테스트 코드 작성

    * cors 설정 변경 및 quiz 이벤트 로직 변경 (#97)

    * fix: CorsConfig를 WebConfig로 통합 (#91)

    * feat: 테스트 용 데이터 생성 메서드 작성 (#91)

    * feat: 환경을 상수로 선언 (test, prod, dev) (#91)

    * feat: 퀴즈 마지막 번호(lastQuizNumber) 추가 (#91)

    * feat: 기대평 결과 값을 오름차순이 아닌 내림차순으로 변경 (#91)

    * fix: 서비스 로직 변경 (기대평을 최신순으로 반환) (#91)

    * fix: QuizNotExistException으로 변경 (#91)

    * fix: /api/v1/quiz 퀴즈 문제 가져오는 api는 로그인이 필요함 (#91)

    * fix: /api/v1/quiz 퀴즈 문제 가져오는 api는 로그인이 필요함 (#91)

    * fix: RequestParam을 Dto로 변경 (#91)

    * feat: 퀴즈 문제 api의 Dto (#91)

    * feat: 퀴즈 이벤트가 진행중인지 검사하는 로직 작성  (#91)

    * feat: 퀴즈 api의 비즈니스 로직을 검사하는 유닛 테스트  (#91)

    * fix: 서브이벤트가 없으면 200반환이 아니라 400으로 반환되어야 한다  (#91)

    * refactor: CorsConfig에서 cors 설정하던 것을 WebConfig로 이동  (#91)

    * feat: quiz repository를 테스트  (#91)

    * feat: findByEventIdAndExecuteType 메서드 추가  (#91)

    * chore: 공백 제거  (#91)

    * fix: h2 테스트 의존성 추가 (#91)

    * fix: 유효성 검사 어노테이션 추가 [@Validated] (#98)

    * sql 파일 수정 및 병합으로 인한 코드 중복 해결 (#103)

    * fix: H2 database INSERT 문법 변경

    * fix: 코드 중복 제거

    * fix: 변수 재선언 제거

    * fix: 테스트할 sql 파일 수정

    * eventId를 쿼리 파라미터로 받지 않게 수정 (#105)

    * fix: eventId를 환경변수로 받음 (#104)

    * fix: eventId 제거 (#104)

    * fix: eventId 제거 (#104)

    * fix: Winners 테이블에 ranking 컬럼 추가 (#104)

    * fix: 상태 값을 상수로 변경 (#104)

    * api 경로 수정 및 예외 수정 (#109)

    * fix: expectationComment -> comment

    * fix: GET /expectation/land -> /expectation
    fix: POST /expectation/register -> /expectation

    * fix: expectationBannerImgUrl -> bannerImgUrl

    * fix: expectationContent -> comments

    * fix: validation 라이브러리 추가

    * fix: @Data, @NoArgsConstruct 추가

    * chore: expectationPage 컬럼 명 변경

    * fix: 퀴즈 테이블명 수정

    * fix: api 경로 수정

    * fix: 중복 코드 제거

    * fix: quiz 테이블명 변경에 따른 코드 수정

    * fix: POST 메서드에 @ParameterObject 제거

    * fix: 테이블 명을 quizzes에서 quiz_firstcome_events로 변경

    * fix: quizSubmitResponseDto를 반환하지 않는 문제 해결

    * fix: @ParameterObject 제거

    * 드로잉 추첨 이벤트 테이블 및 추첨 메서드 도메인 변경합니다. (#110)

    * feat: 추첨 메서드 도메인 변경 (#108)

    * test: 추첨 이벤트 테스트 코드 작성 (#108)

    * feat: Import 부분 삭제 (#108)

    * feat: 유효성 검사 메서드 추출 (#108)

    * 단축 URL 생성 및 Redirect 구현합니다. (#107)

    * feat: Entity 및 Dto 변경 (#100)

    * feat: 이벤트 참가 유저 랜덤값 생성 및 예외 처리 (#100)

    * feat: ShaedUrl 랜덤값 업데이트 및 저장 (#100)

    * feat: shard-url API 생성 및 문서화 (#100)

    * feat: URL 을 통해 특정 유저 매핑 후 Redirect URL 반환 (#100)

    * feat: Shared URL을 PathParameter 로 가지는 API 생성 (#100)

    * fix: shared_url unique key 위반 해결

    * chore: 버전 1.0.3 설정

    * feat: cicd에서 테스트 파일을 읽도록 수정

    * fix: base64 적용

    * fix: base64 적용 해제

    * fix: 테스트 yml 추가

    * feat: Log Permission Error

    * feat: API Path 수정

    * feat: build 시 test active 설정

    * feat: cors 와이드카드 설정

    ---------

    Co-authored-by: mjmj <108040422+violet-mj@users.noreply.github.com>
    Co-authored-by: mjmj <violet_prog@naver.com>

commit 44b068c86e5f39b61a1c90341720f5e71f2e58f7
Merge: fc95896 4149e6d
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 19:06:29 2024 +0900

    Merge branch 'release/v1.0.2'

commit 4149e6d9d5e7c61eecbb5107f2571f27a8d9a0c7
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 18:59:42 2024 +0900

    fix: ci pull-request에서 push로 변경

commit 4a4ae8b6ecab7b7dca6ebc3a62bb2165b0a5e258
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 18:25:30 2024 +0900

    fix: repositoryTest 삭제

commit a96eaaa3ffdf671b495da506c9503fe2b9171a02
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 17:24:57 2024 +0900

    feat: release 1.0.2

commit fc958965b800fdff9b7b63c6bd953dd46cb26b67
Author: mjmj <108040422+violet-mj@users.noreply.github.com>
Date:   Tue Aug 6 12:07:21 2024 +0900

    hotfix: json resolve 문제 해결 (#85)

* 메인 랜딩페이지 api 작성 (#121)

* feat: 메인 랜딩 페이지 이미지 url을 저장하는 컬럼 추가

* feat: 메인 랜딩 페이지 이미지 url을 저장하는 컬럼 추가

* feat: 메인 랜딩 페이지 화이트리스트 추가

* feat: 메인 랜딩 페이지 api 추가

* chore: 메인 랜딩 페이지 테스트 작성

* feat: 메인 랜딩 페이지 서비스 레이어 작성

* refactor: 도메인이 main인 것은 너무 추상적이다. main을 event 도메인으로 이동

* fix: @Value와 @NotNull과 같이 쓰는 것은 의미가 없음

* fix: any(Long.class)를 anyLong()으로 변경

* fix: Event의 event_registered_at은 created_at과 중복됨

* 드로잉 이벤트 채점 로직 추가합니다. (#125)

* feat: 드로잉 추첨 이벤트 게임 제출 및 채점 API (#124)

* feat: 정답 json 파싱을 위한 의존성 주입과 util 메서드 생성 (#124)

* feat: 파싱 및 채점 후 반환 메서드 생성 (#124)

* feat: 유클리드 거리 계산을 통한 점수 채점 (#124)

* test: 점수 측정 테스트 코드 작성 (#124)

* feat: 코사인 유사도를 통한 채점 로직 구현 (#124)

* feat: 유클리드 점수 측정 범위 0~100 으로 제한 (#124)

* test: 고득점과 저득점 테스트케이스 분리 (#124)

* feat: example 설정 및 controller 연결 (#124)

* feat: 프론트엔드 요청 사항으로 blur 이미지 함께 반환 (#124)

* feat: n_차 게임 점수 저장 로직 추가 (#124)

* test: 저장로직 추가로 인한 테스트 코드 변경 (#124)

* feat: 총 점 계산 로직 (#124)

* feat: ScoreCalculator 분리 (#124)

* test: ScoreCalculator Spy 객체 주입 (#124)

* feat: get 사용 로직 메서드 분리 (#124)

* 드로잉 게임 시 횟수를 차감합니다. (#127)

* feat: default 값, lastChargeAt 추가 및 updateLastVisitedAtAndLastChargeAt 메서드 추가 (#124)

* feat: 로그인 사용자만 API 허용 (#124)

* feat: 기회 차감 로직 생성 및 NoChanceUser 예외 처리 (#124)

* test: 게임 Info 요청 시 게임 가능 횟수에 대한 테스트 코드 (#124)

* test: 첫 참여 유저에 대한 테스트코드 작성 (#124)

* feat: 플레이 타입에 따른 횟수 차감을 위한 Enum 생성 (#126)

* feat: 이벤트 타입을 받기 위한 Dto 변경 (#126)

* feat: UserDetailService Exception BaseException 으로 변경 (#126)

* feat: 플레이 타입에 따른 update 분기 처리 (#126)

* test: 플레이 타입에 따른 테스트코드 작성 (#126)

* 중복 당첨자 검사할 수 있는 로직 추가 (#129)

* fix: 중복 당첨자 검사 기능 추가

* fix: 중복 검사가 있을 때 Dto 템플릿 추가

* feat: 디버그 레벨에서 request(url, method) 기록 저장

* feat: findByUserIdAndSubEventId 추가

* 메인 랜딩 페이지 퀴즈 시작 시간 정보 제공 (#135)

* feat: subEvent가 시작되었는지 여부를 나타내는 메서드

* fix: 퀴즈 시작 시간과 시작 여부를 알려주는 List 변수 작성

* fix: MainLandDto 수정에 따른 로직 수정

* feat: 시작 시간이 잘 응답하는지 확인

* feat: 시작 시간과 시작 여부를 담고 잇는 Dto 작성

* fix: 불필요한 코드 삭제

* fix: swagger example이 부적절하게 나와있는 것을 확인하고 수정

* v1.0.4 의 각종 버그들 정리했습니다. (#133)

* #feat: Spring.log 파일 gitignore 추가 (#128)

* feat: 공유 url 접근 시 공유 점수 추가 (#128)

* feat: Tag 생성 및 컨트롤러 태그 삽입 (#128)

* feat: 로그 파일 위치 변경 및 ignore 최신화 (#128)

* feat: 설명과 상이한 부분 변경 (#128)

* feat: 실제 당첨 이미지를 위한 엔티티 필드 추가 및 반환 값 변경 (#128)

* feat: 랜딩 페이지 조회 시 subEvent 반환되도록 DTO 변경 (#128)

* feat: deault 값 설정 (#128)

* feat: 요구사항 변경으로 엔티티 및 DTO 변경 (#128)

* feat: SQL 문 최신화 (#128)

* feat: versioning

---------

Co-authored-by: mjmj <108040422+violet-mj@users.noreply.github.com>
Co-authored-by: mjmj <violet_prog@naver.com>

* Hotfix/v1.0.5 (#141)

feat: 화이트리스트 최신화 (#141)

* Hotfix/v1.0.5 release2 (#143)

* feat: release 1.0.2 (#87)

* 추첨 이벤트 추첨 구현 (#92)

* feat: EventUser 데이터베이스에서 N 명 추첨 메서드 생성 (#37)

* feat: 랭킹 Dto Example 추가 (#37)

* feat: winnersMeta Json 타입으로 변경 (#37)

* feat: Json 타입 변경으로 인한 util, test 변경 (#37)

* feat: DTO 변경 및 Wrapper Class to Primitive Type 으로 변경 (#37)

* #feat: 추첨 메서드 작성 (#37)

* feat: 추첨 메서드를 위한 API 생성 및 인가를 위한 ApiKey 임시 설정 (#37)

* feat: WrapperClass 변경 (#37)

* feat: Request 를 위한 Dto 생성 및 ApiKey Validate (#37)

* #feat: JsonParseException 추가 (#37)

* feat: 이미 추첨이 완료된 경우 Exception (#37)

* feat: 반환값 변경 (#37)

* feat: 총 수상자 수 로직 위치 변경 (#37)

* feat: 랜덤 사용자 추출 및 Extra 추출 (#37)

* feat: 주석 추가 및 네이밍 변경, 예외 처리 순서 변경 (#37)

* fix: Rank 추가 및 등수 저장 (#37)

* test: 추첨 로직 테스트 (#37)

* test: drawWinner 메서드 테스트 코드 작성 (#37)

* docs: Swagger 문서화 (#37)

* fix: User builder 로 변경 (#37)

* #feat: MySQL 예약어로 winner 필드 명 변경 (#37)

* feat: RAND 및 Pageable 이슈로 인한 Native 쿼리로 변경 (#37)

* �EventUser Info API 변경합니다. (#95)

* docs: Swagger 문서화 정리 (#94)

* feat: EventUser NotFound 시 예외 처리 (#94)

* test: 메서드 변경으로 인한 테스트 코드 변경 (#94)

* EventUserRepository 단위 테스트 (#99)

* feat: 테스트 시 내장 H2 사용 및 초기 SQL 문 삽입 (#94)

* test: EventUserRepository 테스트 코드 작성

* cors 설정 변경 및 quiz 이벤트 로직 변경 (#97)

* fix: CorsConfig를 WebConfig로 통합 (#91)

* feat: 테스트 용 데이터 생성 메서드 작성 (#91)

* feat: 환경을 상수로 선언 (test, prod, dev) (#91)

* feat: 퀴즈 마지막 번호(lastQuizNumber) 추가 (#91)

* feat: 기대평 결과 값을 오름차순이 아닌 내림차순으로 변경 (#91)

* fix: 서비스 로직 변경 (기대평을 최신순으로 반환) (#91)

* fix: QuizNotExistException으로 변경 (#91)

* fix: /api/v1/quiz 퀴즈 문제 가져오는 api는 로그인이 필요함 (#91)

* fix: /api/v1/quiz 퀴즈 문제 가져오는 api는 로그인이 필요함 (#91)

* fix: RequestParam을 Dto로 변경 (#91)

* feat: 퀴즈 문제 api의 Dto (#91)

* feat: 퀴즈 이벤트가 진행중인지 검사하는 로직 작성  (#91)

* feat: 퀴즈 api의 비즈니스 로직을 검사하는 유닛 테스트  (#91)

* fix: 서브이벤트가 없으면 200반환이 아니라 400으로 반환되어야 한다  (#91)

* refactor: CorsConfig에서 cors 설정하던 것을 WebConfig로 이동  (#91)

* feat: quiz repository를 테스트  (#91)

* feat: findByEventIdAndExecuteType 메서드 추가  (#91)

* chore: 공백 제거  (#91)

* fix: h2 테스트 의존성 추가 (#91)

* fix: 유효성 검사 어노테이션 추가 [@Validated] (#98)

* sql 파일 수정 및 병합으로 인한 코드 중복 해결 (#103)

* fix: H2 database INSERT 문법 변경

* fix: 코드 중복 제거

* fix: 변수 재선언 제거

* fix: 테스트할 sql 파일 수정

* eventId를 쿼리 파라미터로 받지 않게 수정 (#105)

* fix: eventId를 환경변수로 받음 (#104)

* fix: eventId 제거 (#104)

* fix: eventId 제거 (#104)

* fix: Winners 테이블에 ranking 컬럼 추가 (#104)

* fix: 상태 값을 상수로 변경 (#104)

* api 경로 수정 및 예외 수정 (#109)

* fix: expectationComment -> comment

* fix: GET /expectation/land -> /expectation
fix: POST /expectation/register -> /expectation

* fix: expectationBannerImgUrl -> bannerImgUrl

* fix: expectationContent -> comments

* fix: validation 라이브러리 추가

* fix: @Data, @NoArgsConstruct 추가

* chore: expectationPage 컬럼 명 변경

* fix: 퀴즈 테이블명 수정

* fix: api 경로 수정

* fix: 중복 코드 제거

* fix: quiz 테이블명 변경에 따른 코드 수정

* fix: POST 메서드에 @ParameterObject 제거

* fix: 테이블 명을 quizzes에서 quiz_firstcome_events로 변경

* fix: quizSubmitResponseDto를 반환하지 않는 문제 해결

* fix: @ParameterObject 제거

* 드로잉 추첨 이벤트 테이블 및 추첨 메서드 도메인 변경합니다. (#110)

* feat: 추첨 메서드 도메인 변경 (#108)

* test: 추첨 이벤트 테스트 코드 작성 (#108)

* feat: Import 부분 삭제 (#108)

* feat: 유효성 검사 메서드 추출 (#108)

* 단축 URL 생성 및 Redirect 구현합니다. (#107)

* feat: Entity 및 Dto 변경 (#100)

* feat: 이벤트 참가 유저 랜덤값 생성 및 예외 처리 (#100)

* feat: ShaedUrl 랜덤값 업데이트 및 저장 (#100)

* feat: shard-url API 생성 및 문서화 (#100)

* feat: URL 을 통해 특정 유저 매핑 후 Redirect URL 반환 (#100)

* feat: Shared URL을 PathParameter 로 가지는 API 생성 (#100)

* Release/v1.0.3

commit 34bb96bb73bffe6165f59579142bcf862144be3a
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 11:36:13 2024 +0900

    feat: cors 와이드카드 설정

commit 21fc9a590a5fbe90a65f22c03cf8ca48682f776b
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 11:36:02 2024 +0900

    feat: build 시 test active 설정

commit 7cc569ed5a23fd857bbe06814eae035be4f66529
Merge: 7b3bf77 44b068c
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 11:29:34 2024 +0900

    Merge branch 'master' into release/v1.0.3

    # Conflicts:
    #	gradle.properties
    #	src/test/java/com/hyundai/softeer/backend/domain/expectation/repository/ExpectationRepositoryTest.java
    #	src/test/resources/sql/integration.sql

commit 7b3bf77a8d9337d8392f614061e6512e3086d141
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 11:24:40 2024 +0900

    feat: API Path 수정

commit 1346467f6f0af906cec8f04553e7d1fb7a1ad336
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 11:22:23 2024 +0900

    feat: Log Permission Error

commit 7f02308d5408a200e5b766d17b881223911e36ff
Merge: 5db777b 1771b59
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 10:10:02 2024 +0900

    Merge branch 'release/v1.0.3' into dev

commit 1771b5960e96d7e3a529328ebb42242e058929cf
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 10:09:48 2024 +0900

    fix: 테스트 yml 추가

commit 5db777b8bb8d822299fc12e9fa627b3446057e6c
Merge: 913af8e b5564cc
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 02:04:36 2024 +0900

    Merge branch 'release/v1.0.3' into dev

commit b5564cc72e29d5da6e660761451bea197cf85676
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 02:03:59 2024 +0900

    fix: base64 적용 해제

commit 913af8e12a1ecba585293c762ce48156fd63ec42
Merge: 8f40eb0 4afe625
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 02:01:11 2024 +0900

    Merge branch 'release/v1.0.3' into dev

commit 4afe625b9a1604ed5935cbdb0043a0ffe801b50f
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 02:00:40 2024 +0900

    fix: base64 적용

commit 8f40eb01508eb70bf568258f8e229af7226cadc0
Merge: cf2a476 9839ded
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 01:08:27 2024 +0900

    Merge branch 'release/v1.0.3' into dev

commit 9839dedd91e6b84cff1a74f60fc0052cf569df67
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 01:08:12 2024 +0900

    feat: cicd에서 테스트 파일을 읽도록 수정

commit cf2a476229cd11d83f3d2bd4c5d9cb5bf2934a36
Merge: cfb648f 907bd62
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 00:54:34 2024 +0900

    Merge branch 'release/v1.0.3' into dev

commit 907bd62e9e13fa34819d3ea8b599db9906593a8c
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 00:54:12 2024 +0900

    chore: 버전 1.0.3 설정

commit 43f9bc77734d8d442af9f29cb51a99d4964b4282
Author: mjmj <violet_prog@naver.com>
Date:   Fri Aug 9 00:52:42 2024 +0900

    fix: shared_url unique key 위반 해결

commit 44b068c86e5f39b61a1c90341720f5e71f2e58f7
Merge: fc95896 4149e6d
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 19:06:29 2024 +0900

    Merge branch 'release/v1.0.2'

commit 4149e6d9d5e7c61eecbb5107f2571f27a8d9a0c7
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 18:59:42 2024 +0900

    fix: ci pull-request에서 push로 변경

commit 4a4ae8b6ecab7b7dca6ebc3a62bb2165b0a5e258
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 18:25:30 2024 +0900

    fix: repositoryTest 삭제

commit a96eaaa3ffdf671b495da506c9503fe2b9171a02
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 17:24:57 2024 +0900

    feat: release 1.0.2

commit fc958965b800fdff9b7b63c6bd953dd46cb26b67
Author: mjmj <108040422+violet-mj@users.noreply.github.com>
Date:   Tue Aug 6 12:07:21 2024 +0900

    hotfix: json resolve 문제 해결 (#85)

* 드로잉 게임 정보 API 생성했습니다. (#115)

* fix: base64 적용

* fix: base64 적용 해제

* fix: 테스트 yml 추가

* fix: repositoryTest 삭제

* feat: drawing 엔티티 변경 (#93)

* feat: 드로잉 게임을 위한 이미지 반환 타입 지정 (#93)

* test: Drawing Repository 테스트 작성 및 SQL 문 최신화 (#93)

* test: 드로잉 게임 정보 조회 Service 테스트 코드 작성 (#93)

* feat: 게임 정보 조회 API 생성 및 문서화 (#93)

* feat: 반환값 변경으로 인한 DTO 변경 (#93)

* feat: 데이터 요청사항 변경으로 Dto 변경 (#93)

* feat: integration-h2.sql 문 최신화 (#93)

---------

Co-authored-by: mjmj <violet_prog@naver.com>

* Fix/#114 v1.0.3 bugs (#116)

* feat: JWT UserNot Found 시 예외 처리 (#114)

* feat: 로그인 처리에서 JwtException 으로 처리 (#114)

* feat: Email or Phone 으로 조회하는 메서드 추가 (#114)

* test: Email, Phone 조회 테스트 코드 작성 (#114)

* feat: 이메일, 전화번호 확인 로직 추가 (#114)

* feat: firstcome 오타 수정 (#114)

* feat: quiz 엔티티 이름 drawing 과 통일 (#114)

* feat: 랜딩 페이지 별도 분리 및 화이트리스트 적용 (#114)

* feat: Controller 단 Valid, event_id 설정 및 DTO 전달 (#114)

* feat: import 정리 (#114)

* Release v1.0.4

commit 92b5f1797b485d74c492536443e1793c97d9cd39
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 20:44:40 2024 +0900

    test: Test 코드 변경

commit d4d692b2ca862b3497482dcfc782a39ddacf989e
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 20:37:07 2024 +0900

    feat: 이름 변경

commit 6dd36d023903103b875cc1627a42a68b74556acb
Merge: 2db0aa7 679277e
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 20:35:45 2024 +0900

    Merge branch 'master' into release/v1.0.4

    # Conflicts:
    #	.github/workflows/gradle-publish.yml
    #	gradle.properties
    #	src/main/java/com/hyundai/softeer/backend/domain/event/dto/ApiKeyRequest.java
    #	src/main/java/com/hyundai/softeer/backend/domain/eventuser/controller/SharedUrlController.java
    #	src/main/java/com/hyundai/softeer/backend/domain/eventuser/service/EventUserService.java
    #	src/main/java/com/hyundai/softeer/backend/domain/expectation/controller/ExpectationController.java
    #	src/main/java/com/hyundai/softeer/backend/domain/firstcome/quiz/controller/QuizFirstComeController.java
    #	src/main/java/com/hyundai/softeer/backend/domain/firstcome/quiz/dto/QuizRequest.java
    #	src/main/java/com/hyundai/softeer/backend/domain/firstcome/quiz/service/QuizFirstComeService.java
    #	src/main/java/com/hyundai/softeer/backend/domain/firstcomeevent/quiz/dto/QuizSubmitRequest.java
    #	src/main/java/com/hyundai/softeer/backend/domain/lottery/drawing/controller/DrawingLotteryController.java
    #	src/main/java/com/hyundai/softeer/backend/domain/lottery/drawing/service/DrawingLotteryService.java
    #	src/main/java/com/hyundai/softeer/backend/domain/lottery/service/LotteryService.java
    #	src/main/java/com/hyundai/softeer/backend/domain/subevent/controller/SubEventController.java
    #	src/main/java/com/hyundai/softeer/backend/domain/subevent/dto/SubEventRequest.java
    #	src/main/java/com/hyundai/softeer/backend/domain/subevent/service/SubEventService.java
    #	src/main/java/com/hyundai/softeer/backend/global/filter/JwtAuthorizationFilter.java
    #	src/test/java/com/hyundai/softeer/backend/domain/eventuser/repository/EventUserRepositoryTest.java
    #	src/test/java/com/hyundai/softeer/backend/domain/expectation/repository/ExpectationRepositoryTest.java
    #	src/test/java/com/hyundai/softeer/backend/domain/lottery/drawing/service/DrawingLotteryServiceTest.java
    #	src/test/java/com/hyundai/softeer/backend/domain/subevent/service/SubEventServiceTest.java
    #	src/test/resources/sql/integration-h2.sql
    #	src/test/resources/sql/integration.sql

commit 2db0aa7852007040626351b3083ec4c0947437c9
Author: min9805 <min1925k@gmail.com>
Date:   Fri Aug 9 20:31:51 2024 +0900

    feat: v1.0.4

commit 679277edd7a9a747c910cb8d91972c390c564e33
Author: min9805 <56664567+min9805@users.noreply.github.com>
Date:   Fri Aug 9 11:39:51 2024 +0900

    Release/v1.0.3 (#113)

    * feat: release 1.0.2 (#87)

    * 추첨 이벤트 추첨 구현 (#92)

    * feat: EventUser 데이터베이스에서 N 명 추첨 메서드 생성 (#37)

    * feat: 랭킹 Dto Example 추가 (#37)

    * feat: winnersMeta Json 타입으로 변경 (#37)

    * feat: Json 타입 변경으로 인한 util, test 변경 (#37)

    * feat: DTO 변경 및 Wrapper Class to Primitive Type 으로 변경 (#37)

    * #feat: 추첨 메서드 작성 (#37)

    * feat: 추첨 메서드를 위한 API 생성 및 인가를 위한 ApiKey 임시 설정 (#37)

    * feat: WrapperClass 변경 (#37)

    * feat: Request 를 위한 Dto 생성 및 ApiKey Validate (#37)

    * #feat: JsonParseException 추가 (#37)

    * feat: 이미 추첨이 완료된 경우 Exception (#37)

    * feat: 반환값 변경 (#37)

    * feat: 총 수상자 수 로직 위치 변경 (#37)

    * feat: 랜덤 사용자 추출 및 Extra 추출 (#37)

    * feat: 주석 추가 및 네이밍 변경, 예외 처리 순서 변경 (#37)

    * fix: Rank 추가 및 등수 저장 (#37)

    * test: 추첨 로직 테스트 (#37)

    * test: drawWinner 메서드 테스트 코드 작성 (#37)

    * docs: Swagger 문서화 (#37)

    * fix: User builder 로 변경 (#37)

    * #feat: MySQL 예약어로 winner 필드 명 변경 (#37)

    * feat: RAND 및 Pageable 이슈로 인한 Native 쿼리로 변경 (#37)

    * �EventUser Info API 변경합니다. (#95)

    * docs: Swagger 문서화 정리 (#94)

    * feat: EventUser NotFound 시 예외 처리 (#94)

    * test: 메서드 변경으로 인한 테스트 코드 변경 (#94)

    * EventUserRepository 단위 테스트 (#99)

    * feat: 테스트 시 내장 H2 사용 및 초기 SQL 문 삽입 (#94)

    * test: EventUserRepository 테스트 코드 작성

    * cors 설정 변경 및 quiz 이벤트 로직 변경 (#97)

    * fix: CorsConfig를 WebConfig로 통합 (#91)

    * feat: 테스트 용 데이터 생성 메서드 작성 (#91)

    * feat: 환경을 상수로 선언 (test, prod, dev) (#91)

    * feat: 퀴즈 마지막 번호(lastQuizNumber) 추가 (#91)

    * feat: 기대평 결과 값을 오름차순이 아닌 내림차순으로 변경 (#91)

    * fix: 서비스 로직 변경 (기대평을 최신순으로 반환) (#91)

    * fix: QuizNotExistException으로 변경 (#91)

    * fix: /api/v1/quiz 퀴즈 문제 가져오는 api는 로그인이 필요함 (#91)

    * fix: /api/v1/quiz 퀴즈 문제 가져오는 api는 로그인이 필요함 (#91)

    * fix: RequestParam을 Dto로 변경 (#91)

    * feat: 퀴즈 문제 api의 Dto (#91)

    * feat: 퀴즈 이벤트가 진행중인지 검사하는 로직 작성  (#91)

    * feat: 퀴즈 api의 비즈니스 로직을 검사하는 유닛 테스트  (#91)

    * fix: 서브이벤트가 없으면 200반환이 아니라 400으로 반환되어야 한다  (#91)

    * refactor: CorsConfig에서 cors 설정하던 것을 WebConfig로 이동  (#91)

    * feat: quiz repository를 테스트  (#91)

    * feat: findByEventIdAndExecuteType 메서드 추가  (#91)

    * chore: 공백 제거  (#91)

    * fix: h2 테스트 의존성 추가 (#91)

    * fix: 유효성 검사 어노테이션 추가 [@Validated] (#98)

    * sql 파일 수정 및 병합으로 인한 코드 중복 해결 (#103)

    * fix: H2 database INSERT 문법 변경

    * fix: 코드 중복 제거

    * fix: 변수 재선언 제거

    * fix: 테스트할 sql 파일 수정

    * eventId를 쿼리 파라미터로 받지 않게 수정 (#105)

    * fix: eventId를 환경변수로 받음 (#104)

    * fix: eventId 제거 (#104)

    * fix: eventId 제거 (#104)

    * fix: Winners 테이블에 ranking 컬럼 추가 (#104)

    * fix: 상태 값을 상수로 변경 (#104)

    * api 경로 수정 및 예외 수정 (#109)

    * fix: expectationComment -> comment

    * fix: GET /expectation/land -> /expectation
    fix: POST /expectation/register -> /expectation

    * fix: expectationBannerImgUrl -> bannerImgUrl

    * fix: expectationContent -> comments

    * fix: validation 라이브러리 추가

    * fix: @Data, @NoArgsConstruct 추가

    * chore: expectationPage 컬럼 명 변경

    * fix: 퀴즈 테이블명 수정

    * fix: api 경로 수정

    * fix: 중복 코드 제거

    * fix: quiz 테이블명 변경에 따른 코드 수정

    * fix: POST 메서드에 @ParameterObject 제거

    * fix: 테이블 명을 quizzes에서 quiz_firstcome_events로 변경

    * fix: quizSubmitResponseDto를 반환하지 않는 문제 해결

    * fix: @ParameterObject 제거

    * 드로잉 추첨 이벤트 테이블 및 추첨 메서드 도메인 변경합니다. (#110)

    * feat: 추첨 메서드 도메인 변경 (#108)

    * test: 추첨 이벤트 테스트 코드 작성 (#108)

    * feat: Import 부분 삭제 (#108)

    * feat: 유효성 검사 메서드 추출 (#108)

    * 단축 URL 생성 및 Redirect 구현합니다. (#107)

    * feat: Entity 및 Dto 변경 (#100)

    * feat: 이벤트 참가 유저 랜덤값 생성 및 예외 처리 (#100)

    * feat: ShaedUrl 랜덤값 업데이트 및 저장 (#100)

    * feat: shard-url API 생성 및 문서화 (#100)

    * feat: URL 을 통해 특정 유저 매핑 후 Redirect URL 반환 (#100)

    * feat: Shared URL을 PathParameter 로 가지는 API 생성 (#100)

    * fix: shared_url unique key 위반 해결

    * chore: 버전 1.0.3 설정

    * feat: cicd에서 테스트 파일을 읽도록 수정

    * fix: base64 적용

    * fix: base64 적용 해제

    * fix: 테스트 yml 추가

    * feat: Log Permission Error

    * feat: API Path 수정

    * feat: build 시 test active 설정

    * feat: cors 와이드카드 설정

    ---------

    Co-authored-by: mjmj <108040422+violet-mj@users.noreply.github.com>
    Co-authored-by: mjmj <violet_prog@naver.com>

commit 44b068c86e5f39b61a1c90341720f5e71f2e58f7
Merge: fc95896 4149e6d
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 19:06:29 2024 +0900

    Merge branch 'release/v1.0.2'

commit 4149e6d9d5e7c61eecbb5107f2571f27a8d9a0c7
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 18:59:42 2024 +0900

    fix: ci pull-request에서 push로 변경

commit 4a4ae8b6ecab7b7dca6ebc3a62bb2165b0a5e258
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 18:25:30 2024 +0900

    fix: repositoryTest 삭제

commit a96eaaa3ffdf671b495da506c9503fe2b9171a02
Author: mjmj <violet_prog@naver.com>
Date:   Tue Aug 6 17:24:57 2024 +0900

    feat: release 1.0.2

commit fc958965b800fdff9b7b63c6bd953dd46cb26b67
Author: mjmj <108040422+violet-mj@users.noreply.github.com>
Date:   Tue Aug 6 12:07:21 2024 +0900

    hotfix: json resolve 문제 해결 (#85)

* 메인 랜딩페이지 api 작성 (#121)

* feat: 메인 랜딩 페이지 이미지 url을 저장하는 컬럼 추가

* feat: 메인 랜딩 페이지 이미지 url을 저장하는 컬럼 추가

* feat: 메인 랜딩 페이지 화이트리스트 추가

* feat: 메인 랜딩 페이지 api 추가

* chore: 메인 랜딩 페이지 테스트 작성

* feat: 메인 랜딩 페이지 서비스 레이어 작성

* refactor: 도메인이 main인 것은 너무 추상적이다. main을 event 도메인으로 이동

* fix: @Value와 @NotNull과 같이 쓰는 것은 의미가 없음

* fix: any(Long.class)를 anyLong()으로 변경

* fix: Event의 event_registered_at은 created_at과 중복됨

* 드로잉 이벤트 채점 로직 추가합니다. (#125)

* feat: 드로잉 추첨 이벤트 게임 제출 및 채점 API (#124)

* feat: 정답 json 파싱을 위한 의존성 주입과 util 메서드 생성 (#124)

* feat: 파싱 및 채점 후 반환 메서드 생성 (#124)

* feat: 유클리드 거리 계산을 통한 점수 채점 (#124)

* test: 점수 측정 테스트 코드 작성 (#124)

* feat: 코사인 유사도를 통한 채점 로직 구현 (#124)

* feat: 유클리드 점수 측정 범위 0~100 으로 제한 (#124)

* test: 고득점과 저득점 테스트케이스 분리 (#124)

* feat: example 설정 및 controller 연결 (#124)

* feat: 프론트엔드 요청 사항으로 blur 이미지 함께 반환 (#124)

* feat: n_차 게임 점수 저장 로직 추가 (#124)

* test: 저장로직 추가로 인한 테스트 코드 변경 (#124)

* feat: 총 점 계산 로직 (#124)

* feat: ScoreCalculator 분리 (#124)

* test: ScoreCalculator Spy 객체 주입 (#124)

* feat: get 사용 로직 메서드 분리 (#124)

* 드로잉 게임 시 횟수를 차감합니다. (#127)

* feat: default 값, lastChargeAt 추가 및 updateLastVisitedAtAndLastChargeAt 메서드 추가 (#124)

* feat: 로그인 사용자만 API 허용 (#124)

* feat: 기회 차감 로직 생성 및 NoChanceUser 예외 처리 (#124)

* test: 게임 Info 요청 시 게임 가능 횟수에 대한 테스트 코드 (#124)

* test: 첫 참여 유저에 대한 테스트코드 작성 (#124)

* feat: 플레이 타입에 따른 횟수 차감을 위한 Enum 생성 (#126)

* feat: 이벤트 타입을 받기 위한 Dto 변경 (#126)

* feat: UserDetailService Exception BaseException 으로 변경 (#126)

* feat: 플레이 타입에 따른 update 분기 처리 (#126)

* test: 플레이 타입에 따른 테스트코드 작성 (#126)

* 중복 당첨자 검사할 수 있는 로직 추가 (#129)

* fix: 중복 당첨자 검사 기능 추가

* fix: 중복 검사가 있을 때 Dto 템플릿 추가

* feat: 디버그 레벨에서 request(url, method) 기록 저장

* feat: findByUserIdAndSubEventId 추가

* 메인 랜딩 페이지 퀴즈 시작 시간 정보 제공 (#135)

* feat: subEvent가 시작되었는지 여부를 나타내는 메서드

* fix: 퀴즈 시작 시간과 시작 여부를 알려주는 List 변수 작성

* fix: MainLandDto 수정에 따른 로직 수정

* feat: 시작 시간이 잘 응답하는지 확인

* feat: 시작 시간과 시작 여부를 담고 잇는 Dto 작성

* fix: 불필요한 코드 삭제

* fix: swagger example이 부적절하게 나와있는 것을 확인하고 수정

* v1.0.4 의 각종 버그들 정리했습니다. (#133)

* #feat: Spring.log 파일 gitignore 추가 (#128)

* feat: 공유 url 접근 시 공유 점수 추가 (#128)

* feat: Tag 생성 및 컨트롤러 태그 삽입 (#128)

* feat: 로그 파일 위치 변경 및 ignore 최신화 (#128)

* feat: 설명과 상이한 부분 변경 (#128)

* feat: 실제 당첨 이미지를 위한 엔티티 필드 추가 및 반환 값 변경 (#128)

* feat: 랜딩 페이지 조회 시 subEvent 반환되도록 DTO 변경 (#128)

* feat: deault 값 설정 (#128)

* feat: 요구사항 변경으로 엔티티 및 DTO 변경 (#128)

* feat: SQL 문 최신화 (#128)

* Release v1.0.5

commit 32b991cebe0e49d54993f946fb87d9865dc51386
Merge: a5bddd7 99e81a2
Author: Mingyu <min1925k@gmail.com>
Date:   Wed Aug 14 17:32:39 2024 +0900

    Merge branch 'master' into release/v1.0.5

    # Conflicts:
    #	build.gradle
    #	gradle.properties
    #	src/main/java/com/hyundai/softeer/backend/domain/event/entity/Event.java
    #	src/main/java/com/hyundai/softeer/backend/domain/eventuser/controller/SharedUrlController.java
    #	src/main/java/com/hyundai/softeer/backend/domain/eventuser/entity/EventUser.java
    #	src/main/java/com/hyundai/softeer/backend/domain/eventuser/service/EventUserService.java
    #	src/main/java/com/hyundai/softeer/backend/domain/firstcome/quiz/controller/QuizFirstComeController.java
    #	src/main/java/com/hyundai/softeer/backend/domain/firstcome/quiz/dto/QuizFirstComeSubmitResponseDto.java
    #	src/main/java/com/hyundai/softeer/backend/domain/firstcome/quiz/service/QuizFirstComeService.java
    #	src/main/java/com/hyundai/softeer/backend/domain/lottery/drawing/controller/DrawingLotteryController.java
    #	src/main/java/com/hyundai/softeer/backend/domain/lottery/drawing/dto/DrawingGameInfoDto.java
    #	src/main/java/com/hyundai/softeer/backend/domain/lottery/drawing/dto/DrawingInfoDtos.java
    #	src/main/java/com/hyundai/softeer/backend/domain/lottery/drawing/dto/PositionDto.java
    #	src/main/java/com/hyundai/softeer/backend/domain/lottery/drawing/entity/DrawingLotteryEvent.java
    #	src/main/java/com/hyundai/softeer/backend/domain/lottery/drawing/repository/DrawingLotteryRepository.java
    #	src/main/java/com/hyundai/softeer/backend/domain/lottery/drawing/service/DrawingLotteryService.java
    #	src/main/java/com/hyundai/softeer/backend/domain/subevent/controller/SubEventController.java
    #	src/main/java/com/hyundai/softeer/backend/domain/winner/repository/WinnerRepository.java
    #	src/main/java/com/hyundai/softeer/backend/global/config/SwaggerConfig.java
    #	src/main/java/com/hyundai/softeer/backend/global/exception/error/JwtException.java
    #	src/main/java/com/hyundai/softeer/backend/global/filter/JwtAuthorizationFilter.java
    #	src/main/java/com/hyundai/softeer/backend/global/jwt/UserDetailService.java
    #	src/main/java/com/hyundai/softeer/backend/global/utils/ParseUtil.java
    #	src/main/resources/logback-spring.xml
    #	src/main/resources/sql/integration.sql
    #	src/test/java/com/hyundai/softeer/backend/domain/lottery/drawing/service/DrawingLotteryServiceTest.java
    #	src/test/java/com/hyundai/softeer/backend/global/utils/ParseUtilTest.java
    #	src/test/resources/sql/integration-h2.sql
    #	src/test/resources/sql/integration.sql

commit a5bddd7b0a4a68148932ba7fa49bef2779736a50
Author: Mingyu <min1925k@gmail.com>
Date:   Wed Aug 14 17:29:44 2024 +0900

    feat: versioning

commit 99e81a2714978a7556a187f761bffb716411fedd
Author: min9805 <56664567+min9805@users.noreply.github.com>
Date:   Fri Aug 9 20:46:32 2024 +0900

    Release/v1.0.4 (#119)

    * feat: release 1.0.2 (#87)

    * 추첨 이벤트 추첨 구현 (#92)

    * feat: EventUser 데이터베이스에서 N 명 추첨 메서드 생성 (#37)

    * feat: 랭킹 Dto Example 추가 (#37)

    * feat: winnersMeta Json 타입으로 변경 (#37)

    * feat: Json 타입 변경으로 인한 util, test 변경 (#37)

    * feat: DTO 변경 및 Wrapper Class to Primitive Type 으로 변경 (#37)

    * #feat: 추첨 메서드 작성 (#37)

    * feat: 추첨 메서드를 위한 API 생성 및 인가를 위한 ApiKey 임시 설정 (#37)

    * feat: WrapperClass 변경 (#37)

    * feat: Request 를 위한 Dto 생성 및 ApiKey Validate (#37)

    * #feat: JsonParseException 추가 (#37)

    * feat: 이미 추첨이 완료된 경우 Exception (#37)

    * feat: 반환값 변경 (#37)

    * feat: 총 수상자 수 로직 위치 변경 (#37)

    * feat: 랜덤 사용자 추출 및 Extra 추출 (#37)

    * feat: 주석 추가 및 네이밍 변경, 예외 처리 순서 변경 (#37)

    * fix: Rank 추가 및 등수 저장 (#37)

    * test: 추첨 로직 테스트 (#37)

    * test: drawWinner 메서드 테스트 코드 작성 (#37)

    * docs: Swagger 문서화 (#37)

    * fix: User builder 로 변경 (#37)

    * #feat: MySQL 예약어로 winner 필드 명 변경 (#37)

    * feat: RAND 및 Pageable 이슈로 인한 Native 쿼리로 변경 (#37)

    * �EventUser Info API 변경합니다. (#95)

    * docs: Swagger 문서화 정리 (#94)

    * feat: EventUser NotFound 시 예외 처리 (#94)

    * test: 메서드 변경으로 인한 테스트 코드 변경 (#94)

    * EventUserRepository 단위 테스트 (#99)

    * feat: 테스트 시 내장 H2 사용 및 초기 SQL 문 삽입 (#94)

    * test: EventUserRepository 테스트 코드 작성

    * cors 설정 변경 및 quiz 이벤트 로직 변경 (#97)

    * fix: CorsConfig를 WebConfig로 통합 (#91)

    * feat: 테스트 용 데이터 생성 메서드 작성 (#91)

    * feat: 환경을 상수로 선언 (test, prod, dev) (#91)

    * feat: 퀴즈 마지막 번호(lastQuizNumber) 추가 (#91)

    * feat: 기대평 결과 값을 오름차순이 아닌 내림차순으로 변경 (#91)

    * fix: 서비스 로직 변경 (기대평을 최신순으로 반환) (#91)

    * fix: QuizNotExistException으로 변경 (#91)

    * fix: /api/v1/quiz 퀴즈 문제 가져오는 api는 로그인이 필요함 (#91)

    * fix: /api/v1/quiz 퀴즈 문제 가져오는 api는 로그인이 필요함 (#91)

    * fix: RequestParam을 Dto로 변경 (#91)

    * feat: 퀴즈 문제 api의 Dto (#91)

    * feat: 퀴즈 이벤트가 진행중인지 검사하는 로직 작성  (#91)

    * feat: 퀴즈 api의 비즈니스 로직을 검사하는 유닛 테스트  (#91)

    * fix: 서브이벤트가 없으면 200반환이 아니라 400으로 반환되어야 한다  (#91)

    * refactor: CorsConfig에서 cors 설정하던 것을 WebConfig로 이동  (#91)

    * feat: quiz repository를 테스트  (#91)

    * feat: findByEventIdAndExecuteType 메서드 추가  (#91)

    * chore: 공백 제거  (#91)

    * fix: h2 테스트 의존성 추가 (#91)

    * fix: 유효성 검사 어노테이션 추가 [@Validated] (#98)

    * sql 파일 수정 및 병합으로 인한 코드 중복 해결 (#103)

    * fix: H2 database INSERT 문법 변경

    * fix: 코드 중복 제거

    * fix: 변수 재선언 제거

    * fix: 테스트할 sql 파일 수정

    * eventId를 쿼리 파라미터로 받지 않게 수정 (#105)

    * fix: eventId를 환경변수로 받음 (#104)

    * fix: eventId 제거 (#104)

    * fix: eventId 제거 (#104)

    * fix: Winners 테이블에 ranking 컬럼 추가 (#104)

    * fix: 상태 값을 상수로 변경 (#104)

    * api 경로 수정 및 예외 수정 (#109)

    * fix: expectationComment -> comment

    * fix: GET /expectation/land -> /expectation
    fix: POST /expectation/register -> /expectation

    * fix: expectationBannerImgUrl -> bannerImgUrl

    * fix: expectationContent -> comments

    * fix: validation 라이브러리 추가

    * fix: @Data, @NoArgsConstruct 추가

    * chore: expectationPage 컬럼 명 변경

    * fix: 퀴즈 테이블명 수정

    * fix: api 경로 수정

    * fix: 중복 코드 제거

    * fix: quiz 테이블명 변경에 따른 코드 수정

    * fix: POST 메서드에 @ParameterObject 제거

    * fix: 테이블 명을 quizzes에서 quiz_firstcome_events로 변경

    * fix: quizSubmitResponseDto를 반환하지 않는 문제 해결

    * fix: @ParameterObject 제거

    * 드로잉 추첨 이벤트 테이블 및 추첨 메서드 도메인 변경합니다. (#110)

    * feat: 추첨 메서드 도메인 변경 (#108)

    * test: 추첨 이벤트 테스트 코드 작성 (#108)

    * feat: Import 부분 삭제 (#108)

    * feat: 유효성 검사 메서드 추출 (#108)

    * 단축 URL 생성 및 Redirect 구현합니다. (#107)

    * feat: Entity 및 Dto 변경 (#100)

    * feat: 이벤트 참가 유저 랜덤값 생성 및 예외 처리 (#100)

    * feat: ShaedUrl 랜덤값 업데이트 및 저장 (#100)

    * feat: shard-url API 생성 및 문서화 (#100)

    * feat: URL 을 통해 특정 유저 매핑 후 Redirect URL 반환 (#100)

    * feat: Shared URL을 PathParameter 로 가지는 API 생성 (#100)

    * Release/v1.0.3

    commit 34bb96bb73bffe6165f59579142bcf862144be3a
    Author: min9805 <min1925k@gmail.com>
    Date:   Fri Aug 9 11:36:13 2024 +0900

        feat: cors 와이드카드 설정

    commit 21fc9a590a5fbe90a65f22c03cf8ca48682f776b
    Author: min9805 <min1925k@gmail.com>
    Date:   Fri Aug 9 11:36:02 2024 +0900

        feat: build 시 test active 설정

    commit 7cc569ed5a23fd857bbe06814eae035be4f66529
    Merge: 7b3bf77 44b068c
    Author: min9805 <min1925k@gmail.com>
    Date:   Fri Aug 9 11:29:34 2024 +0900

        Merge branch 'master' into release/v1.0.3

        # Conflicts:
        #	gradle.properties
        #	src/test/java/com/hyundai/softeer/backend/domain/expectation/repository/ExpectationRepositoryTest.java
        #	src/test/resources/sql/integration.sql

    commit 7b3bf77a8d9337d8392f614061e6512e3086d141
    Author: min9805 <min1925k@gmail.com>
    Date:   Fri Aug 9 11:24:40 2024 +0900

        feat: API Path 수정

    commit 1346467f6f0af906cec8f04553e7d1fb7a1ad336
    Author: min9805 <min1925k@gmail.com>
    Date:   Fri Aug 9 11:22:23 2024 +0900

        feat: Log Permission Error

    commit 7f02308d5408a200e5b766d17b881223911e36ff
    Merge: 5db777b 1771b59
    Author: mjmj <violet_prog@naver.com>
    Date:   Fri Aug 9 10:10:02 2024 +0900

        Merge branch 'release/v1.0.3' into dev

    commit 1771b5960e96d7e3a529328ebb42242e058929cf
    Author: mjmj <violet_prog@naver.com>
    Date:   Fri Aug 9 10:09:48 2024 +0900

        fix: 테스트 yml 추가

    commit 5db777b8bb8d822299fc12e9fa627b3446057e6c
    Merge: 913af8e b5564cc
    Author: mjmj <violet_prog@naver.com>
    Date:   Fri Aug 9 02:04:36 2024 +0900

        Merge branch 'release/v1.0.3' into dev

    commit b5564cc72e29d5da6e660761451bea197cf85676
    Author: mjmj <violet_prog@naver.com>
    Date:   Fri Aug 9 02:03:59 2024 +0900

        fix: base64 적용 해제

    commit 913af8e12a1ecba585293c762ce48156fd63ec42
    Merge: 8f40eb0 4afe625
    Author: mjmj <violet_prog@naver.com>
    Date:   Fri Aug 9 02:01:11 2024 +0900

        Merge branch 'release/v1.0.3' into dev

    commit 4afe625b9a1604ed5935cbdb0043a0ffe801b50f
    Author: mjmj <violet_prog@naver.com>
    Date:   Fri Aug 9 02:00:40 2024 +0900

        fix: base64 적용

    commit 8f40eb01508eb70bf568258f8e229af7226cadc0
    Merge: cf2a476 9839ded
    Author: mjmj <violet_prog@naver.com>
    Date:   Fri Aug 9 01:08:27 2024 +0900

        Merge branch 'release/v1.0.3' into dev

    commit 9839dedd91e6b84cff1a74f60fc0052cf569df67
    Author: mjmj <violet_prog@naver.com>
    Date:   Fri Aug 9 01:08:12 2024 +0900

        feat: cicd에서 테스트 파일을 읽도록 수정

    commit cf2a476229cd11d83f3d2bd4c5d9cb5bf2934a36
    Merge: cfb648f 907bd62
    Author: mjmj <violet_prog@naver.com>
    Date:   Fri Aug 9 00:54:34 2024 +0900

        Merge branch 'release/v1.0.3' into dev

    commit 907bd62e9e13fa34819d3ea8b599db9906593a8c
    Author: mjmj <violet_prog@naver.com>
    Date:   Fri Aug 9 00:54:12 2024 +0900

        chore: 버전 1.0.3 설정

    commit 43f9bc77734d8d442af9f29cb51a99d4964b4282
    Author: mjmj <violet_prog@naver.com>
    Date:   Fri Aug 9 00:52:42 2024 +0900

        fix: shared_url unique key 위반 해결

    commit 44b068c86e5f39b61a1c90341720f5e71f2e58f7
    Merge: fc95896 4149e6d
    Author: mjmj <violet_prog@naver.com>
    Date:   Tue Aug 6 19:06:29 2024 +0900

        Merge branch 'release/v1.0.2'

    commit 4149e6d9d5e7c61eecbb5107f2571f27a8d9a0c7
    Author: mjmj <violet_prog@naver.com>
    Date:   Tue Aug 6 18:59:42 2024 +0900

        fix: ci pull-request에서 push로 변경

    commit 4a4ae8b6ecab7b7dca6ebc3a62bb2165b0a5e258
    Author: mjmj <violet_prog@naver.com>
    Date:   Tue Aug 6 18:25:30 2024 +0900

        fix: repositoryTest 삭제

    commit a96eaaa3ffdf671b495da506c9503fe2b9171a02
    Author: mjmj <violet_prog@naver.com>
    Date:   Tue Aug 6 17:24:57 2024 +0900

        feat: release 1.0.2

    commit fc958965b800fdff9b7b63c6bd953dd46cb26b67
    Author: mjmj <108040422+violet-mj@users.noreply.github.com>
    Date:   Tue Aug 6 12:07:21 2024 +0900

        hotfix: json resolve 문제 해결 (#85)

    * 드로잉 게임 정보 API 생성했습니다. (#115)

    * fix: base64 적용

    * fix: base64 적용 해제

    * fix: 테스트 yml 추가

    * fix: repositoryTest 삭제

    * feat: drawing 엔티티 변경 (#93)

    * feat: 드로잉 게임을 위한 이미지 반환 타입 지정 (#93)

    * test: Drawing Repository 테스트 작성 및 SQL 문 최신화 (#93)

    * test: 드로잉 게임 정보 조회 Service 테스트 코드 작성 (#93)

    * feat: 게임 정보 조회 API 생성 및 문서화 (#93)

    * feat: 반환값 변경으로 인한 DTO 변경 (#93)

    * feat: 데이터 요청사항 변경으로 Dto 변경 (#93)

    * feat: integration-h2.sql 문 최신화 (#93)

    ---------

    Co-authored-by: mjmj <violet_prog@naver.com>

    * Fix/#114 v1.0.3 bugs (#116)

    * feat: JWT UserNot Found 시 예외 처리 (#114)

    * feat: 로그인 처리에서 JwtException 으로 처리 (#114)

    * feat: Email or Phone 으로 조회하는 메서드 추가 (#114)

    * test: Email, Phone 조회 테스트 코드 작성 (#114)

    * feat: 이메일, 전화번호 확인 로직 추가 (#114)

    * feat: firstcome 오타 수정 (#114)

    * feat: quiz 엔티티 이름 drawing 과 통일 (#114)

    * feat: 랜딩 페이지 별도 분리 및 화이트리스트 적용 (#114)

    * feat: Controller 단 Valid, event_id 설정 및 DTO 전달 (#114)

    * feat: import 정리 (#114)

    * feat: v1.0.4

    * feat: 이름 변경

    * test: Test 코드 변경

    ---------

    Co-authored-by: mjmj <108040422+violet-mj@users.noreply.github.com>
    Co-authored-by: mjmj <violet_prog@naver.com>

commit 679277edd7a9a747c910cb8d91972c390c564e33
Author: min9805 <56664567+min9805@users.noreply.github.com>
Date:   Fri Aug 9 11:39:51 2024 +0900

    Release/v1.0.3 (#113)

    * feat: release 1.0.2 (#87)

    * 추첨 이벤트 추첨 구현 (#92)

    * feat: EventUser 데이터베이스에서 N 명 추첨 메서드 생성 (#37)

    * feat: 랭킹 Dto Example 추가 (#37)

    * feat: winnersMeta Json 타입으로 변경 (#37)

    * feat: Json 타입 변경으로 인한 util, test 변경 (#37)

    * feat: DTO 변경 및 Wrapper Class to Primitive Type 으로 변경 (#37)

    * #feat: 추첨 메서드 작성 (#37)

    * feat: 추첨 메서드를 위한 API 생성 및 인가를 위한 ApiKey 임시 설정 (#37)

    * feat: WrapperClass 변경 (#37)

    * feat: Request 를 위한 Dto 생성 및 ApiKey Validate (#37)

    * #feat: JsonParseException 추가 (#37)

    * feat: 이미 추첨이 완료된 경우 Exception (#37)

    * feat: 반환값 변경 (#37)

    * feat: 총 수상자 수 로직 위치 변경 (#37)

    * feat: 랜덤 사용자 추출 및 Extra 추출 (#37)

    * feat: 주석 추가 및 네이밍 변경, 예외 처리 순서 변경 (#37)

    * fix: Rank 추가 및 등수 저장 (#37)

    * test: 추첨 로직 테스트 (#37)

    * test: drawWinner 메서드 테스트 코드 작성 (#37)

    * docs: Swagger 문서화 (#37)

    * fix: User builder 로 변경 (#37)

    * #feat: MySQL 예약어로 winner 필드 명 변경 (#37)

    * feat: RAND 및 Pageable 이슈로 인한 Native 쿼리로 변경 (#37)

    * �EventUser Info API 변경합니다. (#95)

    * docs: Swagger 문서화 정리 (#94)

    * feat: EventUser NotFound 시 예외 처리 (#94)

    * test: 메서드 변경으로 인한 테스트 코드 변경 (#94)

    * EventUserRepository 단위 테스트 (#99)

    * feat: 테스트 시 내장 H2 사용 및 초기 SQL 문 삽입 (#94)

    * test: EventUserRepository…
  • Loading branch information
min9805 and violet-mj authored Aug 22, 2024
1 parent cc123b5 commit 1131471
Show file tree
Hide file tree
Showing 14 changed files with 282 additions and 23 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
version=1.1.0
version=1.2.0
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableJpaAuditing
@EnableScheduling
public class BackendApplication {

public static void main(String[] args) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.hyundai.softeer.backend.domain.firstcome.dto;

import lombok.Builder;
import lombok.Getter;

@Getter
@Builder
public class EnqueueDto {
String token;
Long currentWaitingUsers;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.hyundai.softeer.backend.domain.firstcome.dto;

import jakarta.validation.constraints.NotNull;
import lombok.Data;

@Data
@NotNull
public class WaitingEnqueueBodyRequest {
Long subEventId;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.hyundai.softeer.backend.domain.firstcome.dto;

import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
public class WaitingQueueRequest {
private Long subEventId;
private String token;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.hyundai.softeer.backend.domain.firstcome.dto;

import lombok.Builder;
import lombok.Getter;

@Getter
@Builder
public class WaitingQueueStatusDto {
private Long waitingUsers;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.hyundai.softeer.backend.domain.firstcome.exception;

import com.hyundai.softeer.backend.global.exception.BaseException;
import org.springframework.http.HttpStatus;

public class WaitingInvalidTokenException extends BaseException {
public WaitingInvalidTokenException() {
super(HttpStatus.FORBIDDEN, "대기열을 거치지 않은 접근입니다.");
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
package com.hyundai.softeer.backend.domain.firstcome.quiz.controller;

import com.hyundai.softeer.backend.domain.firstcome.dto.EnqueueDto;
import com.hyundai.softeer.backend.domain.firstcome.dto.WaitingEnqueueBodyRequest;
import com.hyundai.softeer.backend.domain.firstcome.dto.WaitingQueueRequest;
import com.hyundai.softeer.backend.domain.firstcome.dto.WaitingQueueStatusDto;
import com.hyundai.softeer.backend.domain.firstcome.quiz.dto.*;
import com.hyundai.softeer.backend.domain.firstcome.quiz.exception.QuizRegisterForbiddenException;
import com.hyundai.softeer.backend.domain.firstcome.quiz.service.QuizFirstComeService;
Expand Down Expand Up @@ -32,9 +36,9 @@
@Tag(name = "Quiz First Come")
@RequestMapping("/api/v1/firstcome/quiz")
public class QuizFirstComeController {

private final QuizFirstComeService quizFirstComeService;


@Value("${properties.event-id}")
private Long eventId;

Expand All @@ -54,14 +58,16 @@ public class QuizFirstComeController {
@ApiResponse(responseCode = "200", description = "정상 반환 시", useReturnTypeSchema = true),
@ApiResponse(responseCode = "400", description = "파라미터가 유효x, 이벤트 기간x", content = {@Content(schema = @Schema(implementation = ApiErrorResponse.class), examples = @ExampleObject("{\"message\":\"존재하지 않는 이벤트 정보입니다.\",\"status\":400}"))}),
@ApiResponse(responseCode = "401", description = "로그인x", content = {@Content(schema = @Schema(implementation = ApiErrorResponse.class), examples = @ExampleObject("{\"message\":\"로그인이 되지 않았습니다.\",\"status\":401}"))}),
@ApiResponse(responseCode = "403", description = "대기열을 통한 접근이 아닌 경우", content = {@Content(schema = @Schema(implementation = ApiErrorResponse.class), examples = @ExampleObject("{\"message\":\"대기열을 거치지 않은 접근입니다.\",\"status\":403}"))}),
@ApiResponse(responseCode = "404", description = "퀴즈x", content = {@Content(schema = @Schema(implementation = ApiErrorResponse.class), examples = @ExampleObject("{\"message\":\"퀴즈 이벤트가 존재하지 않습니다.\",\"status\":404}"))})
})
@GetMapping("/info")
@SecurityRequirement(name = "access-token")
public BaseResponse<QuizFirstComeResponseDto> getQuiz(
@Valid QuizFirstComeRequest quizFirstComeRequest
@Valid QuizFirstComeRequest quizFirstComeRequest,
@Parameter(hidden = true) @CurrentUser User authenticatedUser
) {
QuizFirstComeResponseDto quizResponse = quizFirstComeService.getQuiz(quizFirstComeRequest);
QuizFirstComeResponseDto quizResponse = quizFirstComeService.getQuiz(quizFirstComeRequest, authenticatedUser);

return new BaseResponse<>(quizResponse);
}
Expand Down Expand Up @@ -109,6 +115,7 @@ public BaseResponse<QuizFirstComeLandResponseDto> getQuizLandingPage() {
description = "퀴즈 채점이 정상적으로 처리되었을 때",
useReturnTypeSchema = true),
@ApiResponse(responseCode = "400", description = "쿼리 파라미터를 잘못 보냈을 때", content = {@Content(schema = @Schema(implementation = ApiErrorResponse.class))}),
@ApiResponse(responseCode = "403", description = "대기열을 통한 접근이 아닌 경우", content = {@Content(schema = @Schema(implementation = ApiErrorResponse.class), examples = @ExampleObject("{\"message\":\"대기열을 거치지 않은 접근입니다.\",\"status\":403}"))}),
})
@PostMapping("")
@SecurityRequirement(name = "access-token")
Expand All @@ -129,7 +136,7 @@ public BaseResponse<QuizFirstComeSubmitResponseDto> quizSubmit(
@GetMapping("/list")
@Operation(summary = "admin / 퀴즈 정보를 반환하는 api", description = """
# 퀴즈 정보를 반환한다.
- 퀴즈 정보를 3개 반환합니다.
## 응답
Expand All @@ -147,24 +154,24 @@ public BaseResponse<QuizFirstComeSubmitResponseDto> quizSubmit(
})
@Tag(name = "Admin")
public BaseResponse<List<QuizFirstComeInfoResponseDto>> getQuizInfos(
@Validated QuizFirstComeInfoRequest quizFirstComeInfoRequest
@Validated QuizFirstComeInfoRequest quizFirstComeInfoRequest
) {
return new BaseResponse<>(quizFirstComeService.getQuizInfos(quizFirstComeInfoRequest));
return new BaseResponse<>(quizFirstComeService.getQuizInfos(quizFirstComeInfoRequest));
}

@PostMapping("/register")
@ResponseStatus(HttpStatus.CREATED)
@Operation(summary = "admin / 퀴즈를 등록하는 api", description = """
# 퀴즈를 등록하는 api
- 퀴즈 3개를 동시에 등록합니다.
## 응답
1. 응답에 성공 했을 때 `200` 응답
2. 쿼리 파라미터가 없거나 유효하지 않을 때 `400` 응답
3. 등록하려는 퀴즈 정보가 3개가 아니라면 `400` 응답
4. 이벤트가 존재하지 않는 경우 `404` 응답
## 주의
- 퀴즈는 반드시 3개가 들어와야 합니다.
""")
Expand All @@ -180,7 +187,7 @@ public BaseResponse<List<QuizFirstComeInfoResponseDto>> getQuizInfos(
public BaseResponse<Void> registerQuiz(
@Validated @RequestBody List<QuizFirstComeRegisterRequest> quizFirstComeRegisterRequests
) {
if(quizFirstComeRegisterRequests.size() != 3) {
if (quizFirstComeRegisterRequests.size() != 3) {
throw new QuizRegisterForbiddenException();
}

Expand All @@ -192,14 +199,14 @@ public BaseResponse<Void> registerQuiz(
@DeleteMapping("/delete")
@Operation(summary = "admin / 퀴즈를 삭제하는 api", description = """
# 퀴즈를 삭제하는 api
- 한 이벤트의 퀴즈 이벤트를 삭제합니다.
- 퀴즈 이벤트 3개를 모두 삭제하는 api 입니다.
## 응답
1. 퀴즈 이벤트 삭제에 성공했을 때 `204` 응답
2. 쿼리 파라미터가 없거나 유효하지 않을 때 `400` 응답
""")
@ApiResponses(value = {
@ApiResponse(
Expand All @@ -212,9 +219,51 @@ public BaseResponse<Void> registerQuiz(
public BaseResponse<Void> deleteQuizEvent(
@Validated @RequestBody QuizFirstComeDeleteRequest quizFirstComeDeleteRequest
) {
quizFirstComeService.deleteQuizByEvent(quizFirstComeDeleteRequest);
quizFirstComeService.deleteQuizByEvent(quizFirstComeDeleteRequest);

return new BaseResponse<>(200, "퀴즈 이벤트 삭제가 성공적으로 실행되었습니다.", null);
return new BaseResponse<>(200, "퀴즈 이벤트 삭제가 성공적으로 실행되었습니다.", null);
}

@PostMapping("/waiting")
@Operation(summary = "퀴즈 이벤트 대기열 진입 API", description = """
# 퀴즈 이벤트 대기열 진입 API
- 퀴즈 이벤트 대기열에 진입합니다.
## 응답
- 대기열에 진입한 유저의 토큰을 반환합니다.
""")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "퀴즈 이벤트 대기열 진입 성공", useReturnTypeSchema = true),
})
@SecurityRequirement(name = "access-token")
public BaseResponse<EnqueueDto> enqueueQuiz(
@RequestBody WaitingEnqueueBodyRequest waitingEnqueueBodyRequest,
@Parameter(hidden = true) @CurrentUser User authenticatedUser
) {
return new BaseResponse<>(quizFirstComeService.enqueueQuiz(authenticatedUser, waitingEnqueueBodyRequest));
}

@GetMapping("/waiting")
@Operation(summary = "퀴즈 이벤트 대기열 조회 API", description = """
# 퀴즈 이벤트 대기열 조회 API
- 퀴즈 이벤트 대기열을 조회합니다.
## 응답
- 대기열에 있는 유저의 수를 반환합니다.
""")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "퀴즈 이벤트 대기열 진입 성공", useReturnTypeSchema = true),
})
@SecurityRequirement(name = "access-token")
public WaitingQueueStatusDto getQueueStatus(
WaitingQueueRequest waitingQueueRequest
) {
return quizFirstComeService.getQueueStatus(waitingQueueRequest);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,6 @@ public class QuizFirstComeRequest {
@Parameter
@NotNull
private Long subEventId;

private String token;
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,6 @@ public class QuizFirstComeSubmitRequest {

@NotNull
private Long subEventId;

private String token;
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,17 @@
import com.hyundai.softeer.backend.domain.event.repository.EventRepository;
import com.hyundai.softeer.backend.domain.eventuser.entity.EventUser;
import com.hyundai.softeer.backend.domain.eventuser.repository.EventUserRepository;
import com.hyundai.softeer.backend.domain.firstcome.dto.EnqueueDto;
import com.hyundai.softeer.backend.domain.firstcome.dto.WaitingEnqueueBodyRequest;
import com.hyundai.softeer.backend.domain.firstcome.dto.WaitingQueueRequest;
import com.hyundai.softeer.backend.domain.firstcome.dto.WaitingQueueStatusDto;
import com.hyundai.softeer.backend.domain.firstcome.quiz.dto.*;
import com.hyundai.softeer.backend.domain.firstcome.quiz.entity.QuizFirstCome;
import com.hyundai.softeer.backend.domain.firstcome.quiz.exception.QuizAlreadyExistException;
import com.hyundai.softeer.backend.domain.firstcome.quiz.exception.QuizNotFoundException;
import com.hyundai.softeer.backend.domain.firstcome.quiz.repository.QuizFirstComeRepository;
import com.hyundai.softeer.backend.domain.firstcome.quiz.service.winnerdraw.QuizWinnerDraw;
import com.hyundai.softeer.backend.domain.firstcome.service.QueueService;
import com.hyundai.softeer.backend.domain.prize.entity.Prize;
import com.hyundai.softeer.backend.domain.prize.repository.PrizeRepository;
import com.hyundai.softeer.backend.domain.subevent.dto.SubEventInfo;
Expand Down Expand Up @@ -45,6 +50,7 @@ public class QuizFirstComeService {
private final EventRepository eventRepository;
private final EventUserRepository eventUserRepository;
private final PrizeRepository prizeRepository;
private final QueueService queueService;
private final DateUtil dateUtil;
private final Clock clock;

Expand All @@ -59,7 +65,9 @@ public class QuizFirstComeService {
* @return QuizResponseDto
*/
@Transactional(readOnly = true)
public QuizFirstComeResponseDto getQuiz(QuizFirstComeRequest quizFirstComeRequest) {
public QuizFirstComeResponseDto getQuiz(QuizFirstComeRequest quizFirstComeRequest, User authenticatedUser) {
queueService.validateToken(quizFirstComeRequest.getToken(), authenticatedUser.getId(), quizFirstComeRequest.getSubEventId());

Long subEventId = quizFirstComeRequest.getSubEventId();

QuizFirstCome quizFirstCome = quizFirstComeRepository.findBySubEventId(subEventId)
Expand Down Expand Up @@ -208,6 +216,7 @@ private QuizFirstComeLandResponseDto getPrizesWithEventEnd(List<SubEvent> subEve
*/
@Transactional
public QuizFirstComeSubmitResponseDto quizSubmit(QuizFirstComeSubmitRequest quizFirstComeSubmitRequest, User authenticatedUser) {
queueService.validateToken(quizFirstComeSubmitRequest.getToken(), authenticatedUser.getId(), quizFirstComeSubmitRequest.getSubEventId());

Long subEventId = quizFirstComeSubmitRequest.getSubEventId();
String answer = quizFirstComeSubmitRequest.getAnswer();
Expand Down Expand Up @@ -308,4 +317,30 @@ public void deleteQuizByEvent(QuizFirstComeDeleteRequest quizFirstComeDeleteRequ
subEventRepository.deleteByEventId(eventId);
quizFirstComeRepository.deleteQuizEventByEventId(eventId);
}

public EnqueueDto enqueueQuiz(User authenticatedUser, WaitingEnqueueBodyRequest waitingEnqueueBodyRequest) {
String token = queueService.createToken(authenticatedUser, waitingEnqueueBodyRequest);
Long subEventId = waitingEnqueueBodyRequest.getSubEventId();

queueService.addWaitingQueue(subEventId, token);

long currentUserCount = queueService.getCurrentUserInWaitingQueue(subEventId);

log.info("현재 대기열에 {}명이 있습니다.", currentUserCount);

return EnqueueDto.builder()
.token(token)
.currentWaitingUsers(currentUserCount)
.build();
}

public WaitingQueueStatusDto getQueueStatus(WaitingQueueRequest waitingQueueRequest) {
long lowerUserCountInWaitingQueue = queueService.getUserCountWithLowerTimestamp(waitingQueueRequest.getSubEventId(), waitingQueueRequest.getToken());

log.info("대기열에서 {}번째 입니다.", lowerUserCountInWaitingQueue);

return WaitingQueueStatusDto.builder()
.waitingUsers(lowerUserCountInWaitingQueue)
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package com.hyundai.softeer.backend.domain.firstcome.scheduler;

import com.hyundai.softeer.backend.domain.firstcome.service.QueueService;
import com.hyundai.softeer.backend.domain.subevent.repository.SubEventRepository;
import jakarta.annotation.PostConstruct;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

@Slf4j
@Component
@RequiredArgsConstructor
public class QueueScheduler {
private final long POP_CNT = 200;
private final List<Long> subEventIds = new ArrayList<>();

private final QueueService queueService;
private final SubEventRepository subEventRepository;

@Value("${properties.event-id}")
private Long eventId;

@PostConstruct
private void init() {
subEventRepository.findByEventId(eventId)
.forEach(subEvent -> subEventIds.add(subEvent.getId()));
}

@Scheduled(fixedDelay = 1000)
private void EventScheduler() {
for (Long subEventId : subEventIds) {
Set<String> tokens = queueService.popTokensFromWaitingQueue(subEventId, POP_CNT);
queueService.addTokensToWorkingQueue(tokens);
log.info("waiting queue pop tokens size from subEventId: {} is {}", subEventId, tokens.size());
}
}
}
Loading

0 comments on commit 1131471

Please sign in to comment.