Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Test/test ci (#2) * Gitactions Test (#1) * feat : 소나큐브 플러그인 의존성추가 * fix: 그래들 파일 수정 * feat: CI용 워크플로우생성 * feat : 테스트용 커밋 * fix: 잘못된 디렉토리명 수정 * feat : CI실패 시 디스코드 알림 추가 * test : CI 테스트를 위한 커밋 * feat: 그래들 캐시 추가, 불필요한 스크립트 제거 * Bp 3 spring project (#3) * chore : h2, p6spy의존성 추가 * feat : 응답을 위한 클래스 생성 * feat : 에러코드 공통 관리를 위한 Enum생성 * feat : 전역 에러 핸들러 추가 * remove : 불필요한 파일 삭제 * feat : 워크플로우 수정 * feat : 생성자 파라매터 수정, Of 메소드 수정 * Bp 4 swagger configuration (#4) * chore : RestDocs, Swagger 의존성추가 * feat : 테스트용 컨트롤러 작성 * feat : RestDocsTest 어노테이션 생성 * test : 스웨거 컨트롤러를 위한 테스트 코드 작성 * Bp 12 implement user login (#5) * chore : 스프링 시큐리티, 테스트 모듈 추가 * Feat : 스프링 시큐리티를 위한 UserDetail기능 재작성, 핸들러 작성 * feat : 전역 에러 핸들러에 비즈니스 에러 핸들러 추가 * feat : 비즈니스 로직에서 발생하는 예외를 정의하는 클래스 정의 * feat : 사용자 인증관련 에러코드 추가, 응답클래스에 메소드 추가 * refactor : 사용하지 않는 클래스 의존 삭제 * test : 로그인 기능 테스트 코드 작성 * remove : 필요없는 파일 삭제 * feat : 유저 권한 Enum클래스와 로그인 시 권한을 부여하는 기능 추가 * feat : 멤버 엔티티, 레포지토리 생성 * test : 로그인 통합 테스트 작성 * hotfix : 불필요한 파라매터설정 제거 * fix : 코드리뷰 적용 csrf 적용 및 스프링시큐리티로 세션저장 활성화 * refactor : 불필요한 상태값 제거에 따른 타입 변경 * Bp 24 implement user crud (#9) * Bp 25 implement user registration (#6) * feat : 회원가입 api 권한 수정, 엔드포인트 prefix 메소드 추가 * feat : 에러코드, 커스텀 에러 추가, 전역 핸들러에 로직구현 * feat : 회원가입 DTO추가, 멤버 컨트롤러 추가 * feat : 멤버 서비스 추가, 회원가입 기능 추가 * test : 컨트롤러 테스트, 유닛테스트 작성 * feat : 유저 비밀번호 암호화 추가 * rename : 파일 위치 수정 * test : 암호화 로직 추가 * rename : DTO 컨트롤러 패키지로 이동 * refactor : 매직넘버 삭제, HttpStatus사용 * refactor : 기존 ErrorCode를 인터페이스화, 도메인마다 에러코드 정의 * refactor : 에러코드 구조 변경에 따른 코드 수정 * chore : spring-validation 추가 * Bp 26 implement user withdraw (#8) * feat : 객체 생성 시 필드 체크를 위한 Validator생성 * feat : 멤버 엔티티객체 필드 기본값 수정, 탈퇴로직 구현 * feat : 회원 탈퇴 로직 구현 * feat : 시큐리티 회원가입, 로그인 csrf해제 * feat : 시큐리티 유틸성 클래스 추가 * feat : 멤버 서비스 예외 추가와 에러코드 추가 * style : 코드 포맷 수정 * test: 테스트코드 수정, 삭제 테스트코드 작성 * feat : Spring Validation에서 발생하는 에러 핸들링 * test : mock user 어노테이션추가 * refactor : 코드리뷰 적용 * fix ; csrf 비활성화 * feat : 식별자 전략 명시 IDENTITY * Bp 14 attendance api (#7) * feat: Event 엔티티 생성 * feat: 특정 달의 이벤트 목록 조회 * feat: Participants 엔티티 * feat: 출석 기능 (Google Oauth 부분은 뼈대만) * feat: Event Controller 작성 및 테스트, 문서 생성 * chore: validator와 Oauth Client 추가 * feat: Google OIDC를 이용한 사용자 출석 (draft) * feat: 이벤트 출석 등록 -> 출석 URL (for QR Code) 생성 * comment: TODO, 출석 만료 기능 필요 * fix: 출석 API를 GET으로 변경, security matcher 수정 및 request 유지 * feat: security config conflict 정리 * feat: validation 책임을 Entity가 아닌 Factory로 전가 * feat: dto를 service layer가 아닌 presentational layer에서 정의 * feat: Event 도메인의 Custom ErrorCode와 Exception 정의 * style: `@RequiredArgsConstructor` 활용 * style: gwt 다듬기 * chore: 실 credential 반영 * fix: presentational layer test에 `@SpringbootTest`를 사용하도록 일괄 변경 * fix: HTTP METHOD 정정 (post -> get) * feat: QR Login 구현 * chore: build 실패시 artifact로 report 보관 * fix: spring build directory 정정 * fix: CI, application.yml profile 맞춤 * fix: CI, yml 문법 * chore: jacoco 추가 * fix: jacocoTestReport * Bp 35 implement email sending (#10) * chore : Spring-mail 의존성 추가 * feat : 이메일, 수신자 엔티티, 레포지토리 생성 * feat : Email전송 컨트롤러 작성 * feat : 이메일서비스 작성 * feat : 이메일 전송 클라이언트 설정, 전송 로직작성 * test : 컨트롤러 테스트 작성 * format : reformat codes indentation 2space로 수정 * feat : 클래스 이름 수정, 연관관계 매핑 * feat : toEntity생성, 적용 * rename : 네이밍 수정 * refactor : 컨벤션에 맞게 의존성 변경 * feat : 기본 트랜잭션 설정 read only로 명시 * refactor : 불필요한 import 제거 * feat : 에러 처리 분기 수정 * test : 이메일 기능 테스트코드 작성 * Bp 27 출석현황조회 api (#11) * feat: 학과 필드 추가 * feat: `AttendanceInfo` DTO, query 구현 * feat: 출석 현황 조회 Controller & Test * feat: 출석 현황 조회 Service * feat: `AttendanceInfo`에 participantId field 추가 * fix: 출석 현황 조회에 멤버 외의 인원이 출석한 경우 error가 발생하지 않도록 수정 * feat: 멤버 출석 현황 수정 기능 * feat: 멤버 출석 현황 수정 controller 작성 및 test * fix: DTO 전환 과정에서 immutable list로 초기화되어 이후 수정이 불가능했던 문제 해결 * fix: 유효하지 않은 `participantId`의 출석 수정 요청 exception handling * fix: Event에 이미 출석이 존재할 경우, 중복 생성을 막음 * chore: gradle task `openapi3`, type casting * style: `MemberToParticipantMapper`에서 `ParticipantMapper`로 이름 변경 * feat: 출석 현황 수정 request payload 형식 변경 * refactor: `Member` To` Participant` Mapping 과정에서 `Member`에 존재하지 않던 `attendance` field를 기본으로 false로 설정 * Bp 36 implement email cancellation (#14) * feature : EmailTask로 네이밍 변경, VO 생성 * remove : 엔티티이름 변경에 따른 클래스 삭제 * feat : 이메일작업 레포지토리생성 * feature : 이메일 작업등록 관련 에러, 에러코드 추가 * feature : 이메일 작업 수정, 조회, 삭제 로직 추가 * feature : DTO와 Mapper 작성 * test : 컨트롤러 테스트 작성 * feat : 이메일 서비스 작성, 헬퍼 클래스 추가 * test : 이메일 서비스 코드 추가 * refactor : 팀 컨벤션 적용 * refactor : 생성자 접근 범위 조정 * refactor : 엔티티 이름 변경에 따른 수정 * test : 테스트코드 수정 * rename : 이메일 클라이언트에서 발생하는 에러코드로 이름 수정 * test : EmailTask 테스트코드 작성 * Bp 38 retrospect crud api implementation (#12) * feat: 이벤트 및 회고 등록 기능 * feat: 이벤트 등록 controller 작성 및 테스트 * feat: 이벤트 회고 조회 기능 * feat: 이벤트 회고 조회 controller & 테스트 * feat: 이벤트 회고 수정 기능 * feat: 이벤트 회고 수정 controller 및 test * refactor: `Retrospect`를 `Event`의 Embedding으로 변경 * fix: `@Valid`를 통한 dto 검증 추가 * Bp 39 implement email scheduler (#15) * feat : 미전송 작업 조회, 작업완료 메소드 추가 * feat : 미전송 작업 쿼리 추가 * feat : 스케줄러 설정파일 작성 * feat : 작업 정보 메모리 저장소 작성 * feat : 작업 조회 관련 에러 및 코드 추가 * feat : 작업 스케줄러 추가 * feat : DTO에서 entity로 파라매터 수정 * feat : 스케줄 관련 업데이트 적용 * feat : 이메일 전송 로그 추가 * test : 이메일 스케줄 서비스 테스트코드 작성 * refactor : unused import 삭제 * test : 이메일 스케줄링 통합테스트 작성 * feat : 작업 스케줄 서비스 추가 * test : 로직 수정 테스트코드에 반영 * style : 카멜케이스 적용 * feat : 에러코드 정의 변경 * feat : cancel중 다른 스레드 접근 불가능하게 락 적용 * refactor : 함수 네이밍 변경 * refactor : remove save() method * rename : EmailScheduleServiceTest 이름 수정 * feat : 디스코드 알림 웹 훅을 위한 클라이언트 작성 * feat : RestTemplate 설정파일 작성 * feat : 디스코드 문자열 상수 정의 * feat : 이메일 전송 에러처리 추가 * rename : 위치 수정 * test : 이메일 전송 실패시 디스코드 알림 테스트 추가 * refactor : 에러를 받아서 디스코드 메세지를 만드는 로직을 디스코드 메세지에서 작성 * test : 디스코드 메세지 테스트 작성 * refactor : 반드시 발생하는 상황 finally로 실행부분 변경 * fix : 이메일 저장후 바로 조회 시 조회가 안되는 이슈 수정 (#16) * fix : 이메일 저장후 바로 조회 시 조회가 안되는 이슈 수정 * fix : 사용하는 메소드 수정에 따른 test코드 모킹 변경 * Bp 37 event crud api implementation (#13) * chore: aws-s3 모듈 추가 * feat: s3 presigned url 기능 * feat: 당장 불필요한 Member Profile Image 주석처리 * change: 이달의 출석 조회를 `EventController`에서 `AttendanceController`로 이동 * feat: S3 Storage Client * feat: `EventImages` * feat: 불필요한 파일 삭제 (`ImageController/Service`) * feat: `Event` CRUD 기능 * feat: `Event` CRUD Controller * fix: 일대다 Mapping에서 변경이 전파되도록 수정 * fix: 이미지 URL을 반환하도록 변경 * fix: 이벤트 상세 조회에 Image key를 반환하도록 수정 * fix: 사진 추가를 Optional하게 변경 * fix: 잘못된 에러 메시지 수정 + object key에 확장자 포함 * fix: Spring Security Matcher가 정상 동작하도록 변경 (출석 Entry 수정) * fix: Spring Security Matcher가 정상 동작하도록 변경 (출석 Entry 수정) * test: 회원 출석 url 변경 반영 * test: 누락되었던 인증 정보 추가 * test: 이벤트 CRU 테스트 * style: redundant 삭제 * refactor: 혼동을 줄이기 위해 `equals` override * refactor: 혼동을 줄이기 위해 `equals`를 `isKeyEqual`로 변경 * feat: S3 object URL에 object key가 포함되어 있음!! * refactor: DTO에 생성 위임 * style: rename(`S3Config` -> `S3Properties`) * refactor: String format으로 + 연산 줄이기 * fix: S3 property를 제대로 읽어오도록 수정 * fix: 모든 Event 조회에 N+1 문제 해결 * Fix redefine email receivers (#17) * fix : 이메일 개수가 증가할 시 제한에 걸리는 이슈로 컬렉션 테이블 분리 * feat : 트랜잭션 템플릿으로 새로운 트랜잭션 생성 및 롤백 * fix : Resttemplate Post요청시 URI타입 캐스팅 * Fix: 로그인 성공 후 스태틱 페이지가 없어 발생하는 에러 수정 (#18) * fix: 로그인 성공 후 스태틱 페이지가 없어 발생하는 에러 수정 * fix: test가 3xx가 아닌 200을 기다리도록 수정 * fix: test가 redirection url을 기대하지 않음 * Fix: error response (#21) * fix: `BusinessException`을 response 할 때, name 대신 `logMessage`를 반환하던 문제 해결 * fix: 4xx 대신 5xx를 반환하던 문제 해결 * fix: fallback handler의 인자를 `RuntimeException`에서 `Exception`으로 변경 * Fix jpa element collection type (#20) * fix : List에서 Set으로 자료구조 변경 * feat : EmailReceviers 자료구조 변경 적용 * feat : Set 삭제, 추가 메소드 * feat : 변경전 수신자들과 비교하는 함수 추가 * feat : 시그니처 변경 및 타입수정 * feat : 업데이트된 수신자와 기존 값 비교후 병합메소드 추가 * refactor : optimize imports * test: 이메일 작업 전송대상 업데이트 필터링 테스트 * Fix: `not found` and `login failure` response (#22) * fix: 404 응답이 500으로 가던 문제 해결 * fix: 로그인 Content-Type이 `x-www-urlencoded`가 아니어서 회원 정보가 제대로 전달되지 않는 경우의 에러 코드 변경 * fix: 로그인 실패 테스트 입력이 의도와 달랐던 문제 해결 * fix: [dev] CORS 비활성화 (#23) * feat: 사용자가 로그인 된 상태인지 확인하는 API (#24) * fix: API에 인증받지 않은 사용자가 요청 시 302 대신 401로 반환하도록 수정 (#25) * fix: 이벤트 이미지가 없을 경우 이벤트를 조회할 수 없던 문제 해결 (#26) * fix: 이벤트에 누락된 속성(`장소`) 추가 (#27) * Refactor attendance api (#28) * Change: include retrospect into event detail (#29) * change: 이벤트 조회에 이벤트 회고가 함께 조회되도록 변경 * style: DTO 파일 위치 컨벤션 통일 * feat: Event 삭제 API (#30) * Fix: cors without nginx (#32) * feat: cors custom filter * feat: cors custom filter 적용 * fix: cors allowed origin을 `localhost:*`에서 `localhost:5173`으로 변경 (#33) * fix: preflight시에 security filter chain을 거치기 전에 성공하도록 수정 (#34) * Change: attendance registration response (#35) * style: image upload/delete method 분리 * change: 출석 및 출석 URL 생성 응답에 body 추가 * change: 출석 QR 만료 요청에 QR UUID가 불필요하게끔 수정 * test: 수정 사항 반영 * fix: 출석 URI이 제대로 생성되도록 수정 * Feat: include receiver name into mail registration (#31) * fix: 확률적으로 실패하던 Test Case 보완 * feat: `EmailReceiver`에 이름 정보가 누락되어 있던 문제 해결 * feat: `{이름}`을 통해 대상 이름을 이메일 양식에 포함할 수 있도록 기능 추가 * test: 수정 사항 반영 (이메일 수신자에 이름 속성 추가) * refactor: 이름 토큰(`{이름}`)을 상수로 정의, 메서드 분리 * test: 이름 토큰(`{이름}`) 치환 동작 확인 테스트 작성 * Feat: request attendance state (#37) * feat: Attendance Status 조회 API * test: Attendance Status 조회 API Test * fix: CORS 재수정 (`List.of` 대신 `Arrays.asList` 사용) + origin에 개발/배포 서버 추가 (#36) * change: EmailTask 전체 조회시, 응답 양식을 EmailTaskDetail 양식처럼 `ReceiverInfos`를 묶음으로 표시 (#39) * Test: use fixture (#38) * test: Fixture 작성 (`Member`, `Event`) * change: 멤버 등록 필요 속성 수정 * change: `WithCustomUser` Annotation을 사용하도록 통일, 관리자 권한이 필요한 API일 경우 해당 권한 테스트에 미리 반영 * test: `MemberFixture` 적용 * test: GWT 다듬기 * style: `EmailDetails`가 Entity가 아닐 경우 단일 Data인 점을 반영하여 `EmailDetail`로 이름 변경 * test: Email Fixture 작성 * test: Email Fixture 적용 * style: `given`절의 메서드가 when보다는 given을 사용하도록 변경 * test: `Attendance` Fixture 작성 * test: `Attendance` Fixture 적용 * test: `Event` Fixture 작성 * test: `Event` Fixture 적용 * test: `Controller` Test를 단위 테스트로 전환 * test: EmailFixture 적용 * fix: 이미 인증된 사용자를 통해 로그인 테스트를 하던 문제 해결 * change: 멤버 출석 성공 시 보여주는 정보 축소 * change: 멤버 출석 등록 시 `Role`을 받도록 수정 * feat: feedback 반영, Test Fixture를 좀 더 Verbose 하게 * test: 변경한 Fixture 반영 * chore: test build에 lombok 사용 * Docs: readme (#19) * docs: readme 초본 * docs: Readme에 다이어그램 추가 * [Draft] Release: `v0.0.0` (#40) * chore: Dockerfile이 app version에 의존적이지 않도록 수정 * chore: spring actuator 추가 * style: `build.gradle` re-format * chore: 기본 타임존을 한국으로 설정 * chore: API 접속 권한 조정 * fix: OAuth redirect URL scheme을 https로 변경 * fix: 로그인 요청은 로그아웃 상태에서도 허용하도록 변경 * fix: csrf 비활성화 (Client Side 추가 설정 필요) * chore: CI를 위해, github action이 h2를 사용하도록 --------- Co-authored-by: ekgns33 <[email protected]>
- Loading branch information