Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[release] v1.1.0 릴리즈 #240

Merged
merged 112 commits into from
Oct 8, 2024
Merged

[release] v1.1.0 릴리즈 #240

merged 112 commits into from
Oct 8, 2024

Conversation

hoonyworld
Copy link
Member

@hoonyworld hoonyworld commented Oct 7, 2024

Release Version

v1.1.0

Major changes

  • 어드민 기능 추가

hoonyworld and others added 30 commits July 12, 2024 01:32
* [deploy] merge to main (#26)

* [#2] chore(.gitignore): .gradle, .idea 파일 삭제 (#3)

* [refactor] #4 - 도메인형 디렉터리 구조 변경 및 local, dev, prod 운영 환경 분리 (#5)

* [#4] fix: 클래스 첫글자 대문자로 수정

* [#4] remove: enum 삭제

* [#4] feat(BaseSuccessCode): 성공 상태 관리를 위한 인터페이스 생성

* [#4] feat(BaseErrorCode): 에러 상태 관리를 위한 인터페이스 생성

* [#4] refactor: global 패키지로 이동

* [#4] refactor: 서버 운영 환경 분리

* [feat] #6 - dev, prod Dockerfile 분리 및 github Action CI workflow 구현 (#7)

* [#6] feat(Dockerfile): prod용 도커 파일 구현

* [#6] feat(Dockerfile-dev): dev용 도커 파일 구현

* [#6] feat(dev-CI.yml): dev용 CI workflow 구현

* [#6] feat(prod-CI.yml): prod용 CI workflow 구현

* [#6] chore(.gitignore): gradle-wrapper.jar 파일은 레포지토리에 포함되도록 설정

* [#6] fix(gradle-wrapper.jar): .gitignore로 누락된 파일 추가

* [#6] chore(build.grade): plain jar 생성 방지

* [#9] docs(README.md): 서비스 소개 README v1 작성 (#10)

* [#11] docs(README.md): 리드미 업데이트 (#12)

* [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15)

* [#13] feat(Users): 사용자 엔티티 생성

* [#13] feat(Genre): 장르 열거형 생성

* [#13] feat(BankName): 은행명 열거형 생성

* [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화

* [#13] feat(Performance): 공연 엔티티 생성

* [#13] feat(ScheduleNumber): 회차 번호 열거형 생성

* [#13] feat(Schedule): 회차 엔티티 생성

* [#13] feat(Booking): 예매 엔티티 생성

* [#13] refactor(ScheduleNumber): 네이밍 수정

* [feat] #14 - 회원, 홍보, 등장인물, 스태프 엔티티 생성 (#16)

* [#14] feat(Member): 멤버 엔티티 생성

* [#14] feat(Promotion): 홍보 엔티티 생성

* [#14] feat(Cast): 등장인물 엔티티 생성

* [#14] feat(Staff): 스태프 엔티티 생성

* [feat] #13 - 유저, 예매, 공연, 회차 엔티티 생성 (#15)

* [#13] feat(Users): 사용자 엔티티 생성

* [#13] feat(Genre): 장르 열거형 생성

* [#13] feat(BankName): 은행명 열거형 생성

* [#13] refactor(BaseTimeEntity): 업데이트 시간 관리 필드 활성화

* [#13] feat(Performance): 공연 엔티티 생성

* [#13] feat(ScheduleNumber): 회차 번호 열거형 생성

* [#13] feat(Schedule): 회차 엔티티 생성

* [#13] feat(Booking): 예매 엔티티 생성

* [#13] refactor(ScheduleNumber): 네이밍 수정

* [#14} fix: 스태프, 등장인물, 홍보 엔티티 상속관계 수정

---------

Co-authored-by: DongHoon Lee <[email protected]>

* [#18] feat(Jenkinsfile): 젠킨스 파일 생성 (#19)

* [#20] refactor(Jenkinsfile): 젠킨스 파일 Webhook 테스트용 커밋 (#21)

* [#22] feat(Jenkinsfile): Jenkins multibranch 스크립트 작성 (#23)

* HOTFIX(Jenkinsfile): Jenkins multibranch 스크립트 수정

* HOTFIX(workflows): 빌드 후 젠킨스 배포가 진행되도록 수정

* HOTFIX(workflows): Jenkinsfile 스크립트 수정

* HOTFIX(workflows): Jenkinsfile 스크립트 수정

* HOTFIX(workflows): Jenkinsfile 스크립트 수정

* HOTFIX(workflows): Jenkinsfile 스크립트 수정

* [#24] feat(Jenkinsfile): slack 연동 스크립트 작성 (#25)

---------

Co-authored-by: hyerinhwang-sailin <[email protected]>

* HOTFIX(workflow): 오타 수정

---------

Co-authored-by: hyerinhwang-sailin <[email protected]>
* chore(application-dev.yml): dialect 추가

* chore(application-prod.yml): dialect 추가

* [#28] chore(build.gradle): security 의존성 비활성화

- security 일시적으로 비활성화

* [#28] refactor(Booking): 예매 엔티티에 빌더 및 정적팩토리 메서드 추가

* [#28] refactor(ErrorResponse): 정적 팩토리 메서드 네이밍 변환

* [#28] refactor(Schedule): 회차 엔티티에 빌더 및 정적 팩토리 메서드 추가

* [#28] refactor(Performance): 공연 엔티티에 빌더 및 정적 팩토리 메서드 추가

* [#28] refactor(SuccessResponse): 정적 팩토리 메서드 네이밍 변환

* [#28] refactor(GlobalExceptionHandler): INTERNAL_SERVER_ERROR 핸들러 메서드 추가

* [#28] feat(BookingSuccessCode): 예매 성공 메시지를 관리하는 열거형 생성

* [#28] feat(BookingErrorCode): 예매 에러 메시지를 관리하는 열거형 생성

* [#28] feat(BookingRetrieveResponse): 예매 조회 응답 DTO 생성

* [#28] feat(BookingRetrieveRequest): 예매 조회 요청 DTO 생성

* [#28] feat(BookingRepository): 예매 레포지토리 생성 및 비회원 예매 조회 시 예매 내역 가져오는 메서드 구현

* [#28] feat(BookingService): 예매 서비스 레이어 생성 및 비회원 조회 메서드 구현

* [#28] feat(BookingController): 예매 컨트롤러 생성 및 비회원 예매조회 POST API 구현
* [#30] chore(build.gradle): springdoc 의존성 추가

* [#30] feat(SwaggerConfig): SwaggerConfig 추가

* [#30] feat(WebConfig): WebConfig 추가
* [#32] refactor(BookingController): 메서드명 수정

* [#32] feat(ConflictException): Conflict 409에러 클래스 생성

* [#32] feat(GlobalExceptionHandler): ConflictException 등록

* [#32] feat(TicketAvailabilityRequest): TicketAvailabilityRequest DTO 생성

* [#32] feat(TicketAvailabilityResponse): TicketAvailabilityResponse DTO 생성

* [#32] feat(ScheduleSuccessCode): ScheduleSuccessCode 열거형 생성

* [#32] feat(ScheduleErrorCode): ScheduleErrorCode 열거형 생성

* [#32] feat(ScheduleRepository): ScheduleRepository 생성

* [#32] feat(ScheduleService): ScheduleService 생성 및 회차별 티켓 구매 가능 여부 판단 메서드 구현

* [#32] feat(ScheduleController): 회차별 티켓 수량 조회 GET API 구현
* [#17] feat(build.gradle): jwt, security, open feign, Redis 의존성 추가

* [#17] feat(BeatApplication): OpenFeign 관련 어노테이션 추가

* [#17] feat(RedisConfig): redis 설정

* [#17] feat: redis 활용 jwt 토큰 생성 로직 구현

* [#17] feat(SecurityConfig): security 설정

* [#17] refactor: Member, Users 엔티티 수정 및 관련 enum 추가

* [#17] feat: Member, Users 도메인 관련 인증 로직 구현

* [#17] feat(MemberController): Member 관련 API 엔드포인트 구현

* [#17] feat: Security 관련 인증 객체 구현

* [#17] feat: 소셜로그인 로직 구현

* [#17] fix: 소셜로그인 오류 해결

* [#17] refactor: 코드리뷰 반영

* [#17] refactor: 코드리뷰 반영

---------

Co-authored-by: DongHoon Lee <[email protected]>
* [#34] feat(Users): 빌더 및 정적 팩토리 메서드 추가

* [#34] feat(Entity): 엔티티 id 필드 수정

* [#34] refactor(application.yml): dialect 추가

* [#34] refactor(ScheduleService): 네이밍 수정

* [#34] refactor(BookingSuccessCode): 비회원 예매 조회 성공 메시지 추가

* [#34] feat(GuestBookingRequest): 비회원 예매 요청 DTO 생성

* [#34] feat(GuestBookingResponse): 비회원 예매 응답 DTO 생성

* [#34] refactor(BookingRetrieveService): 네이밍 수정

* [#34] feat(PerformanceRepository): 공연 레포지토리 생성

* [#34] feat(UserRepository): 유저 레포지토리 생성

* [#34] refactor(BookingRepository): 비회원 예매 시 네가지 정보가 모두 일치 해야만 다른 유저로 판단하는 메서드 구현

* [#34] refactor(ScheduleRepository): 비관적 락 적용

* [#34] feat(GuestBookingService): 비관적 락을 이용해 비회원 예매 로직 구현

* [#34] feat(BookingController): 비회원 예매 POST API 구현

* [#34] test(GuestBookingServiceConcurrencyTest): 동시성 테스트 구현
* [#37] rename: 빈 충돌 해결 위해 UserRepository를 UsersRepository로 rename

* [#37] refactor: login response에서 refreshToken을 cookie에 담아주도록 변경

* [#37] fix: dao, repository 충돌 해결

* [#37] refactor: 어노테이션 수정
* [#40] feat: repository 추가

* [#40] feat: 공연 관련 성공, 실패 메세지 추가

* [#40] feat(PerformanceDetailResponse): 공연 상세페이지 조회 응답 dto

* [#40] feat(PerformanceService): 공연 상세페이지 조회 로직 구현

* [#40] feat(PerformanceController): 공연 상세페이지 엔드포인트 구현

* [#40] feat(SecurityConfig): auth whitelist update

* [#40] refactor: dto 분리 및 rename
* [#42] feat: 예매 관련 정보 조회 dto 생성

* [#42] feat: 예매 관련 정보 조회 성공 메세지 추가

* [#42] feat(ScheduleService): 잔여티켓계산, 예매가능여부확인, 예매가능여부 update 메소드 구현

* [#42] feat(PerformanceService): 예매관련공연정보의 response 생성하는 로직 구현

* [#42] feat(PerformanceController): 예매관련공연정보 조회 엔드포인트 구현

* [#42] feat(SecurityConfig): auth_whitelist update

* [#42] refactor(ScheduleService): findTicketAvailability에서 getAvailableTicketCount method 사용하도록 수정
* [#38] fix(Cast): Join 하는 부분 수정 및 빌더와 정적 팩토리 메서드 패턴 도입

* [#38] chore(application.yml): 계층 수정

* [#38] feat: 커스텀 어노테이션 생성

* [#38] fix(UserRepository): 중복된 클래스 삭제

* [#38] feat(UserErrorCode): 유저의 에러 메시지를 관리하는 열거형 생성

* [#38] refactor(MemberErrorCode): message 목적에 맞게 변경

* [#38] refactor(BookingSuccessCode): 회원 예매 성공 메시지 추가

* [#38] feat: 커스텀 어노테이션 생성 커밋에 누락된 클래스 추가

* [#38] refactor(GuestBookingService): schedule에서 바로 get 하도록 수정

* [#38] test(GuestBookingServiceConcurrencyTest): import문 경로명 변경

* [#38] refactor(MemberService): @transactional 어노테이션이 필요한 메서드에 해당 옵션 추가

* [#38] feat(MemberBookingRequest): 회원 예매 요청 DTO 생성

* [#38] feat(MemberBookingResponse): 회원 예매 응답 DTO 생성

* [#38] refactor(MemberController): refreshToken을 쿠키에 넣어주도록 구현

* [#38] feat(MemberBookingService): 회원 예매 서비스 로직 구현

* [#38] feat(BookingController): 회원 예매 요청 POST API 구현

* [#38] fix: 빌드 안되는 부분 수정

* [#38] remove(MemberBookingService): 사용하지 않는 import문 삭제

* [#38] refactor: 커스텀 어노테이션 이름 수정
* [#44] refactor: 코드리뷰 반영

* [#44] fix(Promotion): 기본키 이름 수정, performanceId 연관관계 설정

* [#44] feat: Repository 및 관련 로직 추가

* [#44] feat: errorcode, successcode 추가

* [#44] feat: 홈페이지 request, response dto 생성

* [#44] feat(ScheduleService): dueDate 관련 로직 구현

* [#44] feat(PerformanceService): 홈페이지 정렬 및 response 생성 로직 구현

* [#44] chore: import문 추가
* [#46] remove(BookingRetrieveRequest): 클래스 삭제

* [#46] refactor(BookingSuccessCode): 회원 예매 조회 성공 메시지 추가

* [#46] refactor(GuestBookingRetrieveResponse): 클래스 명 변경

* [#46] refactor(GuestBookingRetrieveRequest): 안쓰는 코드 주석처리

* [#46] refactor(GuestBookingRetrieveService): 클래스 명 수정으로 인한 리팩토링

* [#46] refactor(SecurityConfig): 토큰 사용하지 않는 api 경로 추가하기

* [#46] refactor(BookingRepository): userId로 예약 정보를 가져오는 JPA 메서드 구현

* [#46] feat(MemberBookingRetrieveResponse): 회원 조회 응답 DTO 생성

* [#46] feat(MemberBookingRetrieveService): 회원 예매 조회 로직을 담당하는 서비스 레이어 구현

* [#46] feat(BookingController): 회원 예매 조회 GET API 구현
* [#49] feat: 티켓 관련 success, error code 추가

* [#49] feat(Booking): 입금여부 setter 메소드 추가

* [#49] feat(TicketRetrieveResponse): 예매자 확인 response dto 생성

* [#49] feat(Ticket): 예매자 확인용 티켓 정보 response dto 생성

* [#49] feat(TicketRepository): 예매자 필터링용 메소드 생성

* [#49] feat: 예매자 입금정보 수정 request dto 생성

* [#49] feat(TicketDeleteRequest): 예매자 삭제 request dto 생성

* [#49] feat(TicketService): 예매자 관리 관련 로직 구현

* [#49] feat(TicketController): 예매자 관리 엔드포인트 구현

* [#49] chore: swagger annotation 추가
* [#52]fix(SecurityConfig): auth_whitelist 수정

* [#52]fix(SecurityConfig): auth_whitelist 수정

---------

Co-authored-by: DongHoon Lee <[email protected]>
* [#54] feat(PerformanceSuccessCode): success code 추가

* [#54] feat: 회원이 등록한 공연목록 조회 dto 생성

* [#54] feat(PerformanceService): 회원이 등록한 공연목록 조회 로직 구현

* [#54] feat(PerformanceRepository): 회원이 등록한 공연목록 조회 관련 메소드 추가

* [#54] feat(PerformanceController): 회원이 등록한 공연목록 조회 엔드포인트 생성

* [#54] fix(TicketService): exception error 수정

* [#54] chore(application.yml): yml 수정
* [#58] fix(dev-CI.yml): Dev 서버 CI 워크플로우 수정

* [#58] fix(prod-CI.yml): Prod 서버 CI 워크플로우 수정
* [#61] refactor(Performance): bankHolder 필드 추가

* [#61] chore(BookingController): swagger annotation 수정
* [#63] remove(UsersRepository): 중복 클래스 삭제

* [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성
* [#63] remove(UsersRepository): 중복 클래스 삭제

* [#63] feat(HealthCheckController): healthcheck 컨트롤러 생성

* [#63] feat(SecurityConfig): healthcheck url white_list에 등록
* [#57] refactor: entity 연관관계 설정 및 수정

* [#57] fix(SecurityConfig): auth_whitelist update

* [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거

* [#57] refactor(SecurityConfig): auth_whitelist update

* [#57] refactor: 엔티티 정적팩토리 메소드 추가

* [#57] comment(SecurityConfig): 주석 제거

---------

Co-authored-by: DongHoon Lee <[email protected]>
* [#57] refactor: entity 연관관계 설정 및 수정

* [#57] fix(SecurityConfig): auth_whitelist update

* [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거

* [#57] refactor(SecurityConfig): auth_whitelist update

* [#57] refactor: 엔티티 정적팩토리 메소드 추가

* [#57] comment(SecurityConfig): 주석 제거

* [#57] fix(JwtAuthenticationFilter): 에러 로직 수정

* fix(SecurityConfig): webSecurityCustomizer 로직 추가
* [#57] refactor: entity 연관관계 설정 및 수정

* [#57] fix(SecurityConfig): auth_whitelist update

* [#57] chore(UsersRepository): 중복된 파일 및 불필요한 패키지 제거

* [#57] refactor(SecurityConfig): auth_whitelist update

* [#57] refactor: 엔티티 정적팩토리 메소드 추가

* [#57] comment(SecurityConfig): 주석 제거

* [#57] fix(JwtAuthenticationFilter): 에러 로직 수정

* fix(SecurityConfig): webSecurityCustomizer 로직 추가

* [#57] fix:security 수정
hoonyworld and others added 20 commits September 1, 2024 01:35
… 명시 (#203)

* [#202] feat(WebConfig): PATCH 메서드 추가 및 allowedOriginPatterns에 도메인 명시

* [#202] feat(WebConfig): 클라이언트 localhost 주소 추가

* [#202] fix(WebConfig): 문자열 오타 수정
* [#204] fix(SuccessResponse): 메서드에 제네릭 타입 명시

* [#204] fix(BookingController): 회원 예매 조회 response 타입 일치하도록 수정
* [#190] chore(Booking): 공백 제거

* [#190] feat(FileSuccessCode): S3 관련 성공 메시지를 관리하는 열거형 생성

* [#190] feat(PresignedUrlFindAllResponse): 공연 생성 관련 presignedUrl 응답 DTO 구현

* [#190] refactor(FileService): 메서드 명 변경 및 정적 팩토리 메서드로 반환하도록 변경

* [#190] feat(FileApi): Performance PreSigned Url 스웨거 명세서 작성

* [#190] feat(FileController): FileApi 인터페이스를 구현하도록 리팩토링 및 SuccessResponse로 반환하도록 변경

* [#190] refactor(SecurityConfig): AUTH_WHITELIST에 /error url 추가

* [#190] refactor(SwaggerConfig): 릴리즈 버전 수정

* [#190] refactor: 폴더 변경 및 이동

* [feat] #200 - 공연회차 등록 10회까지 가능하도록 수정 (#201)

* [#200] fix(ScheduleNumber): 10회차까지 추가

* [#200] fix(PerformanceModifyService): 공연 회차 수정 중 회차 추가 시 검증 로직 10회차까지 허용 가능하도록 변경

* [#200] feat(PerformanceErrorCode): MAX_SCHEDULE_LIMIT_EXCEEDED message 수정

* feat #202 - allowedMethods에 PATCH 메서드 추가 및 allowedOriginPatterns에 도메인 명시 (#203)

* [#202] feat(WebConfig): PATCH 메서드 추가 및 allowedOriginPatterns에 도메인 명시

* [#202] feat(WebConfig): 클라이언트 localhost 주소 추가

* [#202] fix(WebConfig): 문자열 오타 수정

* [fix] #204 - SuccessReponse 메서드 타입 수정 및 회원 예매 조회 타입 일치 완료 (#205)

* [#204] fix(SuccessResponse): 메서드에 제네릭 타입 명시

* [#204] fix(BookingController): 회원 예매 조회 response 타입 일치하도록 수정

* [#206] fix(TokenErrorCode): 토큰 만료 메시지 status 401로 변경 (#207)

* [#190] refactor: 패키지명 변경

- service에서 application으

* [#190] refactor(KakaoSocialService): 변수명 camelCase로 변경

* [#190] refactor(MemberService): 가독성을 위한 소셜로그인 서비스 로직 리팩토링

* [#190] refactor(MemberService): 메서드명을 역할에 부합하도록 수정

* [#190] refactor(MemberController): 변경된 메서드명으로 리팩토링

* [#190] feat(MemberRegistrationService): 서비스 분리 및 회원 등록 서비스 생성

* [#190] feat(AuthenticationService): 서비스 분리 및 인증 서비스 생성

* [#190] feat(SocialLoginService): 서비스 분리 및 소셜로그인 관리 서비스 생성

* [#190] refactor(MemberService): 회원 서비스 분리를 위한 리팩토링

* [#190] refactor(MemberController): 서비스 객체 변경

* [#190] feat(Role): 사용자의 역할을 관리하는 열거형 생성

* [#190] refactor(Users): 열거형 필드 추가 및 protected 기본생성자 추가

* [#190] refactor(LoginSuccessResponse): 로그인 성공 응답 DTO에 역할 필드 추가

* [#190] refactor(Member): 기본생성자의 접근제어자 protected로 수정 및 user 필드 지연 로딩으로 변경

* [#190] feat(AuthenticationService): 역할에 따른 토큰 발급 및 유효성 검사 추가

- 리프레시 토큰이 만료된 경우, generateAccessTokenFromRefreshToken 메서드에서 만료 에러 반환을 추가.
- 사용자의 Role (Admin 또는 Member)에 따라 각각의 권한으로 새로운 Access Token을 발급하도록 수정.
- generateLoginSuccessResponse 메서드에서 로그인 성공 시 사용자 역할에 따라 인증 객체를 생성하고, Access 및 Refresh 토큰을 발급.

* [#190] feat(AdminAuthentication): Admin 사용자 인증 객체 추가

- Spring Security의 UsernamePasswordAuthenticationToken을 상속하여, 관리자 권한을 포함한 인증 객체 생성 가능.

* [#190] refactor(JwtTokenProvider): JWT 토큰 발급시 역할 부여 및 검증 로직 개선

- JWT 토큰 발급 시 사용자 정보(memberId)와 역할(role)을 포함한 클레임 생성.
- getMemberIdFromJwt 및 getRoleFromJwt 메서드를 통해 토큰에서 사용자 정보와 역할을 추출하는 기능 구현.
- "ROLE_" 접두사를 제거한 후, 역할을 추출하여 Role Enum에 맞게 변환하는 로직 추가.

* [#190] refactor(SocialLoginService): 사용자 정보 조회 로직 수정

- `generateLoginResponseFromMemberInfo` 메서드에서 회원 정보를 조회할 때 `memberService.findUserByMemberId(memberId)`를 통해 Users 객체를 조회하도록 수정.

* [#190] refactor(MemberRegistrationService): 유저 정보로 회원등록시 역할을 MEMBER로 설정하도록 변경

* [#190] feat(MemberService): 회원 ID로 Users 정보 조회 메서드 추가

* [#190] feat(TokenErrorCode): 리프레시 토큰 만료 에러 코드 추가

* [#190] refactor(MemberController): 로그인/회원가입 API에서 역할도 반환하도록 수정

* [#190] refactor(JwtAuthenticationFilter): JWT 토큰 검증 및 인증 설정 로직 개선

- JWT 토큰이 만료되었거나 유효하지 않은 경우 적절한 HTTP 상태 코드(401, 400)를 반환하도록 처리 추가.
- `setAuthentication` 메서드를 통해 토큰에서 추출한 memberId와 role로 권한 설정.
- `handleInvalidToken` 메서드를 분리하여 토큰 상태에 따른 응답 처리 설정.
- `createAuthentication` 메서드에서 role에 따라 Admin 또는 Member 인증 객체 생성.

* [#190] chore(.gitignore): application-local.yml을 .gitignore에 추가

* [#190] chore(JwtAuthenticationFilter): 불필요한 import문 삭제

* [#190] chore(TokenService): 코드 가독성을 위한 리팩토링

* [#190] refactor(JwtTokenProvider): SignatureException 에러처리 추가 및 로그 추가

* [#190] refactor(AuthenticationService): 리프레시 토큰을 이용해 새로운 액세스 토큰 발급 시 토큰 검증 구체화 및 로그 추가

* [#190] refactor(TokenErrorCode): 리프레쉬 토큰 관련 에러코드 추가

* [#190] refactor(AuthenticationService): 에러코드 변경

* [#190] feat(SecurityConfig): ADMIN 권한 설정 추가

* [#190] feat(UserFindAllResponse): 유저 테이블의 정보를 반환하는 응답 DTO 생성

* [#190] delete(UserResponse): UserResponse 삭제

* [#190] feat(AdminSuccessCode): 관리자 성공 코드 및 모든 유저 조회 성공메시지 생성

* [#190] feat(AdminService): 관리자가 모든 유저를 불러올 수 있는 서비스 로직 생성

* [#190] feat(AdminController): 관리자가 모든 유저를 불러오는 GET API 생성

* [#190] refactor(AdminController): 토큰을 줘서 역할 검증을 하도록 변경

* [#190] feat(UserResponse): 유저 정보를 객체로 반환하는 응답 DTO 생성

* [#190] refactor: CurrentMemberArgumentResolver로 클래스 이름 수정

* [#190] fix(UserFindAllResponse): Users 객체가 Hibernate 프록시 객체로 반환되어 직렬화되지 못했던 부분 수정

* [#190] chore(GlobalExceptionHandler): ExceptionHandler 분리 및 로그 명시

* [#190] chore(CustomAccessDeniedHandler): 권한 부족 로그 명시

* [#190] chore(CustomJwtAuthenticationEntryPoint): 인증되지 않은 요청 로그 명시

* [#190] refactor(CustomJwtAuthenticationEntryPoint): 토큰에서 추출한 memberId가 DB에 존재하는지 확인하는 로직 추가

* [#190] chore(FileApi): 스웨거 문서 수정

* [#190] chore(AdminApi): 관리자 API 스웨거 문서 작성

* [#190] chore(AdminController): 스웨거 인터페이스 implements 및 메서드 오버라이딩

* [#190] rename(PerformanceMakerPresignedUrlFindAllResponse): 공연 메이커를 위한 presignedUrl을 발급하는 응답 DTO 역할에 맞게 레코드 rename

* [#190] rename(UserFindResponse): 기존 UserResponse를 역할에 부합하는 이름으로 rename

* [#190] refactor(UserFindAllResponse): rename된 이름으로 변경

* [#190] chore(FileSuccessCode): 성공메시지 구체화

* [#190] refactor(AdminSuccessCode): 캐러셀, 배너 presignedUrl 발급 성공메시지 추가

* [#190] refactor(AdminUserManagementService): AdminUserManagementService로 rename 및 ifPresentOrElse로 가독성 개선

* [#190] refactor(BannerPresignedUrlFindResponse): 배너 presignedUrl 응답 DTO 생성

* [#190] refactor(CarouselPresignedUrlFindAllResponse): 캐러셀 presignedUrl 응답 DTO 생성

* [#190] refactor(FileController): 공연 메이커를 위한 presignedUrl 응답 DTO의 이름 변경으로 인한 반환 레코드명 수정

* [#190] refactor(FileService): 캐러셀/배너 presignedUrl 서비스 로직 구현 및 컨벤션에 맞게 메서드명 수정

* [#190] feat(AdminController): 캐러셀/배너 presignedUrl GET API 구현

* [#190] feat(AdminApi): 캐러셀/배너 presignedUrl GET API 스웨거 명세 작성

* [#190] refactor(FileApi): DTO 이름 변경으로 인한 명세서 수정

---------

Co-authored-by: hyerinhwang-sailin <[email protected]>
* [#209] chore(FileApi): Swagger 명세 수정

* [#209] chore(AdminApi): Swagger 명세 수정

* [#209] refactor(AdminController): 캐러셀 presigned-url 경로명 변경

- /carousel/presigned-url에서 /carousels/presigned-url로 변경

* [#209] feat(CarouselNumber): 캐러셀의 순서를 나타내는 열거형 생성

* [#209] refactor(Promotion): 캐러셀의 순서를 나타내는 필드 추가

* [#209] refactor(AdminSuccessCode): 관리자 권한으로 캐러셀에 등록된 모든 공연 조회 성공 메시지 추가

* [#209] refactor(Promotion): redirectUrl nullable을 true로 변경

* [#209] feat(PromotionSchedulerService): 캐러셀에 등록된 공연이미지 자동 삭제 cron잡을 수행하는 메서드를 새로운 클래스로 이동

* [#209] feat(PromotionRepository): DB에 등록된 모든 Promotion 객체를 가져오는 JPA 메서드 추

* [#209] feat(PromotionService): Promotion 전체 조회 기능 구현

* [#209] feat(PromotionUseCase): Promotion 유스케이스 인터페이스 정의

* [#209] refactor(UserFindAllResponse): User 조회 응답 DTO를 Nested Record로 리팩토링

* [#209] feat(CarouselFindAllResponse): Carousel 조회 응답 DTO를 Nested Record로 생성

* [#209] feat(FileUseCase): Presigned-url 발급 유스케이스 인터페이스 정의

* [#209] refactor(FileService): FileUseCase 구현 및 캐러셀 및 반환값 변경

* [#209] feat(MemberUseCase): 회원 유스케이스 인터페이스 정의

* [#209] refactor(MemberService): 회원 유스케이스 구현

* [#209] feat(UserUseCase): 유저 유스케이스 인터페이스 정의

* [#209] refactor(UserService): 유저 유스케이스 구현 및 DB에 존재하는 모든 유저를 반환하는 메서드 구현

* [#209] refactor(FileController): 유스케이스로 객체 변경

* [#209] delete(AdminUserManagementService): AdminUserManagementService 클래스 삭제

* [#209] feat(AdminUseCase): AdminUseCase 유스케이스 인터페이스 정의

* [#209] feat(AdminService): AdminUseCase 유스케이스 구현 및 캐러셀 넘버로 정렬된 모든 프로모션 객체를 반환하는 메서드 추가

* [#209] feat(AdminFacade): AdminFacade에 파사드 패턴 도입하여 멤버 검증 후 서비스 호출 로직 구현

* [#209] refactor(AdminController): AdminController에 파사드 패턴 적용 및 캐러셀에 등록된 모든 공연 조회 GET API 구현

* [#209] feat(AdminApi): 캐러셀에 등록된 모든 공연 정보 조회 Swagger 명세 추가

* [#209] feat(AdminSuccessCode): 관리자 권한으로 수정 성공 메시지 추가

* [#209] chore: 포맷터 작동

* [#209] feat(Promotion): 공연 수정 도메인 메서드 추가

* [#209] feat(CarouselModifyRequest): 공연 수정 요청 DTO 생성

* [#209] feat(CarouselModifyAllResponse): 공연 수정 응답 DTO 생성

* [#209] delete(CarouselModifyRequest): 캐러셀 수정 요청 DTO 삭제

* [#209] rename(CarouselProcessAllResponse): 캐러셀 수정 응답 DTO 네이밍 변경

* [#209] feat(CarouselProcessRequest): 캐러셀 등록/수정/삭제 요청 DTO 생성

* [#209] feat(PromotionErrorCode): Promotion 에러코드 생성

* [#209] feat(AdminUseCase): 프로모션 등록/수정/삭제 메서드 선언

* [#209] feat(PerformanceUseCase): findById 메서드 선언

* [#209] feat(PerformanceService): findById 메서드 구현

* [#209] feat(PromotionUseCase): 프로모션 등록/수정/삭제/캐러셀 넘버 반환 메서드 선언

* [#209] feat(PromotionService): 프로모션 등록/수정/삭제/캐러셀 넘버 반환 메서드 구현

* [#209] feat(PromotionRepository): 프로모션 삭제/캐러셀 넘버 반환 spring data jpa 메서드 구현

* [#209] feat(AdminService): 캐러셀 등록/수정/삭제 후 캐러셀 번호에 따라 정렬하는 서비스 로직 구현

* [#209] rename(AdminUseCase): 메서드 네이밍 변경

* [#209] feat(AdminFacade): 파사드 패턴을 적용해 각 도메인에 맞게 캐러셀 등록/수정/삭제를 하도록 구현

* [#209] feat(AdminController): 캐러셀 등록/수정/삭제 API 구현

* [#209] feat(AdminApi): 캐러셀 등록/수정/삭제 API Swagger 명세

* [#209] fix(PromotionRepository): JPQL로 Enum 필드만 반환하도록 수정

* [#209] refactor: 패키지 이동

* [#209] feat(PromotionHandleRequest): PromotionHandleRequest 인터페이스 분리 생성

* [#209] delete(CarouselProcessRequest): 인터페이스 삭제

* [#209] chore(AdminFacade): import문 경로 변경

* [#209] refactor: admin 패키지 도메인 패키지에서 분리
* [#198] fix(Schedule): updateIsBooking 로직 추가

* [#198] fix(ScheduleService): IsBooking update 로직 변경 및 불필요한 주석 제거

* [#198] fix(PerformanceService): getPerformanceDetail readOnly 설정 변경 및 불필요한 주석 제거

* [#198] feat(BeatApplication): EnableAsync 어노테이션 추가

* [#198] feat(SchedulerConfig): TaskScheduler 스레드 풀 크기 설정

* [#198] feat(JobSchedulerService): TaskScheduler 서비스 구현

* [#198] feat(PerformanceManagementService): 공연 생성, 삭제에 따른 스케쥴링 리스트 변화 구현

* [#198] feat(PerformanceModifyService): 공연 수정에 따른 스케쥴링 리스트 변화 구현

* [#198] feat(ScheduleRepository): isBooking true인 공연 조회 로직 추가

* [#198] fix(ScheduleService): isBooking 관련 불필요한 로직 삭제

* [#198] fix(PerformanceService): 조회 메소드 annotation @transactional(readOnly = true)로 변경

* [#198] refactor(GuestBookingService): 매진 여부 확인 메소드 분리 및 log 수정

* [#198] refactor(MemberBookingService): 매진 여부 확인 메소드 분리 및 log 수정

* [#198] feat(TicketService): 예매취소 시 isBooking update 구현

* [#198] chore(PerformanceService): 코드 포맷터 적용

* [#198] remove(SchedulerConfig): SchedulerConfig 삭제

* [#198] refactor(TicketService): isBooking update 검증 추가 및 코드 포맷팅 적용
* [#211] fix(PerformanceErrorCode):PAST_SCHEDULE_NOT_ALLOWED 추가 및 코드 포맷팅 적용

* [#211] fix(PerformanceManagementService):공연 생성 시 과거 스케쥴 포함 방지 에러처리 추가 및 코드 포맷팅 적용

* [#211] fix(PerformanceModifyService):공연 수정 시 과거 스케쥴 포함 방지 에러처리 추가 및 코드 포맷팅 적용

* [#211] fix(PerformanceErrorCode): 공연 수정 관련 에러코드 추가

* [#211] fix(PerformanceModifyService): 공연 날짜 및 티켓수 수정으로 인한 예외상황 고려해 검증 로직 추가

* [#211] chore(PerformanceErrorCode): 에러메시지 수정
* [#217] fix(application-dev.yml): DEV 환경에서 cors 허용 도메인 환경변수 처리

* [#217] fix(application-prod.yml): PROD 환경에서 cors 허용 도메인 환경변수 처리

* [#217] refactor(WebConfig): allowedOrigins 환경변수 주입 설정

* [#217] chore: CI 스크립트에 허용 도메인 환경변수 추가
* [#219] fix(AdminFacade): 중복된 캐러셀 번호 처리 및 삭제 로직 수정

- Promotion ID가 다른 중복된 캐러셀 번호만 삭제하도록 수정
- 삭제할 캐러셀 번호와 중복된 캐러셀 번호를 분리하여 처리
- 중복된 캐러셀 번호를 처리하는 로직을 메서드로 분리하여 가독성 향상
- Promotion 수정 및 생성 요청을 명확하게 분리하여 처리

* [#219] feat(AdminService): 중복된 캐러셀 번호 처리 및 프로모션 삭제 로직 추가

* [#219] refactor(AdminUseCase): 메서드 시그니처 변경

* [#219] refactor(PromotionService): 캐러셀넘버로 Promotion 객체를 찾는 메서드 구현 및 캐러셀 넘버로 삭제 시 리스트 형태로 주도록 변경

* [#219] refactor(PromotionUseCase): 메서드 시그니처 변경 및 캐러셀 넘버로 Promotion 객체를 조회하는 메서드 선언

* [#219] refactor(PromotionRepository): 캐러셀 번호 기반 프로모션 삭제 로직 변경 및 조회 기능 추가

- `deleteByCarouselNumbers` 메서드 변: 여러 캐러셀 번호에 해당하는 프로모션을 한 경에 삭제하도록 로직 변경
- `findByCarouselNumber` 메서드 추가: 캐러셀 번호로 프로모션을 조회하는 기능 구현
- JPA 쿼리 최적화를 위해 `@Modifying` 및 `@Transactional` 어노테이션 추가
… 최적화 (#222)

* [#221] rename: DTO 이름 변경 및 import문 최신화

* [#221] chore(AdminApi): 통일성을 위해 mapping 어노테이션 삭제

* [#221] rename(HomeFindRequest): 요청 DTO 네이밍 구체화

* [#221] rename(HomeFindAllResponse): 응답 DTO 네이밍 구체화

* [#221] refactor(PerformanceService): getHomePerformanceList, getPromotions 메서드 이동 및 코드 포맷팅 적용

* [#221] feat(HomeService): 공연 및 홍보 조회 서비스 로직 최적화

* [#221] feat(ScheduleService): 공연의 회차 중 가장 dueDate가 적은 회차의 dueDate를 반환하는 메서드 구현

* [#221] refactor(HomePromotionDetail): 정적 팩토리 메서드 내에서 초기화해서 return 하도록 변경

* [#221] refactor(HomePerformanceDetail): 정적 팩토리 메서드 내에서 초기화해서 return 하도록 변경

* [#221] feat(HomeApi): Home API 스웨거 명세서 작성

* [#221] refactor(HomeController): 로직 최적화

* [#221] fix(HomeService): 음수는 내림차순, 양수는 오름차순으로 정렬하도록 수정
* [#227] HOTFIX: 권한 체크를 위한 로그 추가

* [#227] chore: 임시 비활성화
* [#229] fix(SocialLoginService): 회원 등록 후 flush()를 호출하여 DB에 반영

* [#229] refactor: flush 호출 위치 변경
* [#233] refactor(MemberUseCase): 메서드 이름 변경 및 추가 메서드 선언

* [#233] refactor(AdminFacade): 메서드 이름 변경사항 반영

* [#233] refactor(AdminFacade): findUserByMemberId 삭제 및 메서드 이름 변경 및 읽기 전용 트랜잭션 선언

* [#233] feat(UserUseCase): userId로 User 객체를 조회하는 메서드 선언

* [#233] feat(UserService): userId로 User 객체를 조회하는 메서드 구현

* [#233] fix(SocialLoginService): memberId로 Member 객체를 조회 후 그 회원의 userId로 User 객체를 조회하도록 수정

* [#233] refactor(SocialLoginService): Member 객체에서 직접 Users 객체를 참조하도록 변경
* [#237] delete(HELP.md): 파일 삭제

* [#237] chore: 버저닝 업데이트 및 url 명시 완료
Copy link
Collaborator

@hyerinhwang-sailin hyerinhwang-sailin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@hoonyworld hoonyworld merged commit 3a814c1 into main Oct 8, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants