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

[OING-62] feat: 가족 구성원 Profile 조회 API 설계 #29

Merged
merged 9 commits into from
Dec 9, 2023

Conversation

Ji-soo708
Copy link
Member

❓ 기능 추가 배경


가족 구성원 프로필 정보를 조회하는 API를 설계했습니다.

➕ 추가/변경된 기능


  • 가족 구성원 프로필 정보 조회 Mock API 설계

🥺 리뷰어에게 하고싶은 말


아직 패밀리 엔티티가 없으니까 이렇게 설계하는 게 맞겠죠..? 리뷰 잘 부탁드립니다.

🔗 참조 or 관련된 이슈


https://no5ing.atlassian.net/browse/OING-62

@Ji-soo708 Ji-soo708 added ✨ FEATURE 기능 추가 🔒 HOLD 머지하지 말고 잠시 홀드 labels Dec 8, 2023
@Ji-soo708 Ji-soo708 self-assigned this Dec 8, 2023
Copy link

github-actions bot commented Dec 8, 2023

Test Results

19 tests   19 ✔️  1s ⏱️
  9 suites    0 💤
  9 files      0

Results for commit 516e186.

@CChuYong CChuYong merged commit 5715fc4 into dev Dec 9, 2023
1 check failed
@CChuYong CChuYong deleted the feature/OING-62 branch December 9, 2023 07:37
Copy link

sonarcloud bot commented Dec 9, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
0.0% 0.0% Duplication

CChuYong added a commit that referenced this pull request Jan 9, 2024
* [OING-18] feat: 공통 모듈 구축하기 (#5)

* chore: add common module

* chore: add common module to workflow

* feat: add common exception classes

* feat: alter DomainException to non abstract class

* test: add DomainException unit test

* test: add ErrorResponse unit test

* chore: fix workflow annotations

* [OINT-19] feature: 스프링 시큐리티 설정 (#6)

* chore: change root project name

* feat: add SpringSecurityConfig

* feat: add auth handler filters

* feat: add JwtAuthenticationHandler with properties

* feat: add WebRequestInterceptor with filters

* chore: change root project name

* feat: add SpringSecurityConfig

* feat: add auth handler filters

* feat: add JwtAuthenticationHandler with properties

* feat: add WebRequestInterceptor with filters

* feat: change response to ErrorResponse

* feat: add WebExceptionHandler

* style: change line length under max line length

* style: change line length under max line length

* style: match line convention

* [OING-10] chore: code coverage를 위한 Jacoco 설정 (#7)

* chore: apply Jacoco for code coverage

* chore: exclude specific patterns from Jacoco code coverage

* chore: set required formats

* fix: Jacoco configuration by moving jacoco afterEvaluate

* [OING-23] chore: Jacoco 테스트 커버리지 범위에서 config 모듈 제외 (#8)

* [OING-24] chore: Swagger 환경 세팅 (#10)

* feat: add SwaggerConfig

* feat: add SwaggerConfig environment variable

* feat: exclude swagger-related requests from Interceptor path patterns

* style: change swagger title

* [OING-20] feat: JWT 토큰 관리 컴포넌트 생성 (#9)

* feat: add token properties classes

* feat: add token related domain classes

* feat: add token generator and impl

* feat: implement token generator with jwt

* feat: add JWT Authenticator

* test: add unit test for created classes

* [OING-26] chore: CI/CD 파이프라인 워크플로우 개선 (#15)

* [OING-27] chore: 배포 파이프라인 이후 슬랙 알림 보내기

* [OING-27] chore: 배포8] chore: PR시 테스트 커버리지 ì측정하기

* [OING-31] fix: SpringDocs (Swagger) 수리하기 (#18)

* fix: config fix for swagger

* docs: add default url path for swagger

* [OING-25] chore: NCP ObjectStorage 세팅 (#16)

* chore: add dependency for AWS S3

* chore: add NCP ObjectStorage Config

* feat: add File uploader

* test: add application.yaml for test

* test: add test code for uploadImage

* refactor: refact ObjectStorageConfig code

* refactor: change FileUploader for presignedUrl

* feat: add S3PreSignedUrlProvider

* test: add test code for presigned-url

* style: delete unused import statement

* delete: delete unused util file for test

* chore: exclude dto from jacoco test coverage

* style: delete redundant code

* refactor: refact ObjectStorageProperties file

* refactor: refact S3PreSignedUrlProvider code

* delete: delete unused file

* [OING-21] feat: 기본 oAuth & 멤버 인증 관련 모듈 추가 (#17)

* feat: create "POST /v1/auth/social" api

* feat: create interface of apple login service

* feat: create BaseAuditEntity

* feat: add IdentityGenerator and impl

* feat: add Member and SocialMember entity

* feat: add Member Register logic

* feat: add apple provider

* feat: report slack on error

* feat: only invoke slack on production

* chore: add slack webhook conf with local props

* feat: refactor yaml properties

* docs: add environment example

* feat: create "POST /v1/auth/social" api

* feat: create interface of apple login service

* feat: create BaseAuditEntity

* feat: add IdentityGenerator and impl

* feat: add Member and SocialMember entity

* feat: add Member Register logic

* feat: add apple provider

* feat: report slack on error

* feat: only invoke slack on production

* chore: add slack webhook conf with local props

* feat: refactor yaml properties

* docs: add environment example

* test: create test profile

* test: add unit test on domain module

* test: add object unit test codes

* test: add component test codes

* fix: override equals hashcode to check array

* fix: override tostring

* fix: remove setter for entity

* fix: not-null on BaseAuditEntity

* refactor: refactor codes

* test: remove setter test for entity

* [OING-46] feat: Member, Post 모듈 추가하기 (#20)

* feat: add family, post module

* chore: add workflow to check module changes

* [OING-32] refactor: S3 PresignedUrl 로직 리팩터링 (#19)

* refactor: refact PreSignedUrlResponse

* feat: add PreSignedUrlGenerator Interface

* fix: fix getPreSignedUrl Test

* chore: exclude dto from jacoco test coverage

* refactor: delete PreSignedUrlResponse DTO from config

* chore: add NCP ev to template file

* docs: update environment variables on README.md

* chore: fix Qdomains in jacocoTestReport

* feat: delete Qdomain

* feat: document PreSignedUrlResponse

* chore: add dependsOn test in jacocoTestReport

* [OING-50] refactor: Config 모듈명 Gateway로 변경 (#21)

* [OING-33] feat: DDL 작성 및 flyway 활성화 (#24)

* feat: add sql DDL script

* feat: enable flyway

* fix: change url datatype to TEXT

* feat: change emoji to ascii

* test: fix s3 test

* [OING-54] chore: mysql 환경변수 설정 및 프로덕션 환경설정 (#25)

* chore: add mysql password to env

* chore: add hikari configurations

* chore: disable springdoc in production

* chore: add application-dev profile

* chore: change ddl-auto to validate

* chore: test profile to apply h2

* [OING-57] feat: Member 도메인 entity & repository 구성 (#26)

* feat: add entitites for member domain

* feat: change BaseAuditEntity to extend BaseEntity

* [OING-57] hotfix: Member 도메인 entity & repository 구성 오타 (#27)

* [OING-47] feat: Auth 리프레시 API 추가및 경로 변경 (#22)

* docs: add more description and example to api docs

* feat: add refresh token logic

* feat: add refresh token validation logic

* style: fixed line style

* test: add test code to new dto

* [OING-32] refactor: S3 PresignedUrl 로직 리팩터링 (#19)

* refactor: refact PreSignedUrlResponse

* feat: add PreSignedUrlGenerator Interface

* fix: fix getPreSignedUrl Test

* chore: exclude dto from jacoco test coverage

* refactor: delete PreSignedUrlResponse DTO from config

* chore: add NCP ev to template file

* docs: update environment variables on README.md

* chore: fix Qdomains in jacocoTestReport

* feat: delete Qdomain

* feat: document PreSignedUrlResponse

* chore: add dependsOn test in jacocoTestReport

* [OING-50] refactor: Config 모듈명 Gateway로 변경 (#21)

* docs: add more description and example to api docs

* feat: add refresh token logic

* feat: add refresh token validation logic

* style: fixed line style

* test: add test code to new dto

* feat: add new temporary token

* feat: add temporary token creation logic

* feat: add register flow logic

* feat: change api route to /register

* refactor: add custom fromString on enum classes

---------

Co-authored-by: Jisu Lim <[email protected]>
Co-authored-by: sckwon770 <[email protected]>

* [OING-40] feat: Feed부분 API 설계하기 (#23)

* feat: add Pagination Response and DTO

* test: add dto, response test code

* feat: add PostFeedController

* fix: change package issue

* feat: implement mock logic

* test: fix test

* test: add test to PostFeedResponse

* feat: add Member API

* [OING-58] feat: MemberPost 도메인 entity & repository 구성 (#28)

* feat: add MemberPost Entity

* feat: add MemberPostReaction Entity

* feat: add MemberPostComment Entity

* feat: add Member module dependency

* feat: add fetchType to Entity field

* feat: add Repository in post module

* chore: delete member dependency in post module

* test: add domain test in MemberPost module

* feat: add index in post table

* fix: fix mappedBy in MemberPost

* test: fix test error in MemberTest

* fix: fix field in MemberPost domain

* [OING-40] feature: API 경로 변경 및 Response DTO 변경 (#33)

* feat: change api route and controller name

* docs: update api docs

* feat: add hasNext to PaginationResponse

* [OING-62] feat: 가족 구성원 Profile 조회 API 설계 (#29)

* feat: add FamilyMemberProfileResponse DTO

* feat: add getFamilyMemberProfile API

* test: add FamilyMemberProfileResponseTest

* refactor: move getFamilyMemberProfile to member module

* refactor: move FamilyMemberProfileResponse to member module

* style: delete unused file

* feat: add Pagination Response and DTO

* refactor: cherry-pick PaginationDTO

---------

Co-authored-by: ChuYong <[email protected]>

* [Suggestion] chore: PR 작성 자동화 (#32)

* chore: Add the workflos to automate the pointless writing pr template works

* chore: Add last empty line into workflow, pr.yaml

* chore: Add base-branch-regex

* fix: Fix base-branch-regex to constraint branch condition

* [OING-56] feat: Family 모듈 구성 (#31)

* [OING-41] feat: 금일 피드 업로드 여부 조회 API 추가 (#30)

* feat: Add the mock api - getIsTodayFeedUploadedByUserId

* fix: Fix wrong parameter annotation on getIsTodayFeedUploadedByUserId

* refactor: Refactor fetchDailyFeeds api whose scope is ME according to code review

* refactor: Refactor make mock api to response variously

* feat: Add AuthenticationHolder

* chore: Add the comment using TokenAuthenticationHolder

* chore: Exclude QueryDSL Qdomains from git

* chore: Organize module directory structure

* fix: Fix compile error at MemberController

* chore: Exclude .env file from git

* [OING-66] feat: PresignedUrl 요청 API 구현 (#35)

* feat: add S3presignedUrl API for image upload

* refactor: add RequiredArgsConstructor in PostController

* style: modify test code with error

* refactor: refact PresignedUrl logic

* fix: fix requestPresignedUrl http method

* style: rename requestPresignedUrl uri

* [OING-63] feat: 1차 와이어프레임 API 설계 (#34)

* feat: add family api spec

* feat: add member api sepc

* feat: add post create logic

* feat: add calendar query api

* feat: add post query api

* feat: add temporary token generate api

* feat: change api url

* feat: add reaction deletion api

* hotfix: remove unused import

* [OING-73] feat: family, post api mock 구현 (#37)

* feat: mock family api

* feat: mock post api

* feat: add sort parameter

* docs: add description

* hotfix: add missing parameter

* [OING-71] feat: 회원정보 수정 API 모킹 (#38)

* feat: add updateMember mock api

* feat: add updateMember mock api

* [OING-67] feat: 피드 업로드 API 모킹 (#36)

* feat: add V2__modify_Post DDL script

* feat: modify column in Post domain

* feat: add createPost mock API

* test: fix failed test due to added column

* refactor: refact S3 presignedUrl Api

* refactor: delete unused memberId param in requestPresignedUrl

* refactor: change ResponseEntity in requestPresignedUrl

* refactor: refact Postmodule code

* refactor: refact S3PreSignedUrlProvider

* test: fix S3PreSignedUrlProviderTest code

* style: change ResponseEntity to DTO

* feat: correct merge conflicts

* feat: add validation for CreatePostRequest

* refact: add validateContent method

---------

Co-authored-by: 송영민 (YeongMin Song) <[email protected]>

* [OING-68] feat: Post Reaction API 모킹 (#40)

* feat: add PostReaction mock API

* feat: change PostReaction DTO name

* feat: change reactToPost API name

* [OING-83] 회원 탈퇴 API 모킹 (#41)

* feat: add deleteMember mock api

* feat: delete DeleteMemberRequest dto

* feat: change deleteMember mock api logic

* style: delete /v1/members uri in url-whitelists

* [OING-88] feat: Emoji Enum 타입으로 변경 (#43)

* feat: add Emoji Enum Class

* fix: fix emoji logic

* test: fix test due to EnumType

* [OING-84] feat: Widget API 구현 (#42)

* feat: Add OptimizedImageUrlProvider component at gateway

* feat: Add the code of service and repository for calendar controller

* feat: Move Calendar controller to gateway modules and Impl getMonthlyCalendar request

* refactor: Refactor MemberPostRepository to make method name simply rather than giving meaning in detail

* feat: Impl getWeeklyCalendar requst and Substract the dupicated code lines from calendar requests

* fix: Remove the code to substract 1 day from end date at calenar request, considering between operator

* chore: Fix head branch regex for pr template automation workflow

* feat: Add api spec for the single recent family widget

* refactor: Exclude family concept from MemberPostService, MemberPostRepository

* feat: Impl getSingleRecentFamilyPostWidget request

* refactor: Rename memberId to myId

* refactor: Change the type of week paramter of getWeeklyCalendar request to Long

* refactor: Make the date parameters of CalendarCotroller required true

* chore: Add test coverage excluding pattern **.DTO*

* fix: Add cdn value  at test application yml

* refactor: Refactor for loop code to map post to calendar to functional code

* refactor: Break the line over 120 characters

* refactor: Refactor the complex JPQL code of MemberPostRepository to QueryDSL

* refactor: Change the type of paramters of MemberPost code

* refactor: Remove implementation class usage, not interface of OptimizedImageUrl component

* [OING-70] feat: Calendar API 구현 (#39)

* feat: Add OptimizedImageUrlProvider component at gateway

* feat: Add the code of service and repository for calendar controller

* feat: Move Calendar controller to gateway modules and Impl getMonthlyCalendar request

* refactor: Refactor MemberPostRepository to make method name simply rather than giving meaning in detail

* feat: Impl getWeeklyCalendar requst and Substract the dupicated code lines from calendar requests

* fix: Remove the code to substract 1 day from end date at calenar request, considering between operator

* chore: Fix head branch regex for pr template automation workflow

* refactor: Exclude family concept from MemberPostService, MemberPostRepository

* refactor: Rename memberId to myId

* refactor: Change the type of week paramter of getWeeklyCalendar request to Long

* refactor: Make the date parameters of CalendarCotroller required true

* chore: Add test coverage excluding pattern **.DTO*

* fix: Add cdn value  at test application yml

* refactor: Refactor for loop code to map post to calendar to functional code

* refactor: Break the line over 120 characters

* refactor: Refactor the complex JPQL code of MemberPostRepository to QueryDSL

* refactor: Change the type of paramters of MemberPost code

* refactor: Remove implementation class usage, not interface of OptimizedImageUrl component

---------

Co-authored-by: 송영민 (YeongMin Song) <[email protected]>

* [OING-90] hotfix: MemberService 및 WidgetController에서의 컴파일 에러 (#44)

* hotfix: update swagger header

* hotfix: add token security

* [OING-75] feat: Post 작성 API 구현 (#45)

* [OING-79] feat: 멤버 닉네임/프로필 이미지 수정 API 구현 (#47)

* feat: add updateMember API

* feat: add requestPresignedUrl for profileImg API

* feat: add transactional annotation

* style: remove getMember method

* refactor: split existing logic into two separate APIs

* feat: add deleteMemberProfileImage method

* style: update imageUrl RequestDTO example

* style: change method name for delete ObjectStorage image

* refactor: add validateName logic

* feat: change queryString to requestBody

* feat: move validateName method

* feat: add Async to deleteImage logic

* style: add newline

* [OING-77] feat: Post 조회 관련 API 구현 (#50)

* feat: implement GET v1/posts

* feat: implement search posts

* style: remove unused import

* refactor: change to query-dsl style

* [OING-81] feat: v1/families 관련 API 구현 (#49)

* feat: implement POST /v1/families

* feat: implement GET /v1/families/invitation-link

* feat; change method name

* feat: change link to constant

* feat: change to new exception class

* [OING-80] feat: 멤버 정보 조회 관련 및 가족 그룹 생성일 조회 API 구현 (#46)

* feat: add getFamilyMemberProfile API

* feat: add getMember API

* feat: add familyCreatedAt in FamiyMemberProfilesResponse DTO

* refactor: refact getFamilyMemberProfiles method

* style: code cleanup

* feat: delete family dependency in member

* feat: seperate getFamilyCreatedAt API

* style: change default value in getFamilyMemberProfiles

* style: delete unused annotation

* refactor: refact findFamilyCreatedAt method

* style: rename method for getFamilyMembersProfiles

* refactor: refact createFamilyMemberProfiles logic

* fix: remove sorting for findFamilyMembersProfiles

* style: change getFamilyCreatedAt ResponseDto

* refact: createFamilyMemberProfiles method logic

* [OING-97] CalendarApi와 관련된 에러와 잘못된 설정 해결 (#54)

* fix: Add alias name at memberPost.count() to fix runtime QueryDSL query error

* refactor: Make param require false at CalendarApi

* chore: Add Swagger params description to explain type of CalendarApi

* feat: commenting out deleteMemberProfileImage method (#55)

* [OING-97] PR54로 구현한 티켓의 런타입 에러 해결을 위한 핫픽스... (#56)

* fix: Add alias name at memberPost.count() to fix runtime QueryDSL query error

* refactor: Make param require false at CalendarApi

* chore: Add Swagger params description to explain type of CalendarApi

* fix: Change MemberPostCountDTO type to Class to use the QueryDSL projections field instead of projections bean that occur runtime error

* fix: Add NoArgsContructor at MemberPostCountDTO to fix QueryDSL projections QBean runtime error (#57)

* [OING-76] feat: Post에 대한 반응 생성/삭제 구현 (#48)

* feat: add validate logic for createPostReaction

* feat: add createPostReaction API

* feat: add deletePostReaction API

* refactor: refact post reaction logic in controller

* refactor: refact findReaction logic in service

* fix: change FetchType Eager to Lazy

* [OING-94] fix: createPost 코드 개선 (#51)

* refactor: refact createPost code

* refactor: delete unused log

* feat: add DuplicatePostUploadException

* style: add comments for upload time validation

* refactor: convert time comparison logic to use LocalDateTime

* fix: fix postDate for Asia/Seoul

* refactor: refact PostResponse

* style: detail InvalidUploadTime Exception

* fix: remove extractLocalDate method

* style: correct image request dto example

* fix: fix validateUploadTime logic to ZonedDateTime

* [OING-95] feat: 카카오 인증(로그인) 기능 구현 (#52)

* feat: add kakao provider

* feat: implement kakao

* [OING-92] feat: 회원 탈퇴 API 구현 (#58)

* feat: add BaseAuditEntityWithDelete

* feat: add member delete basic logic

* feat: add findAllSocialMemberByMember method

* fix: fix updateDeletedAt()

* refact: delete updateDeletedAt method argument

* feat: add memberId PathVariable

* refactor: refact deleteMember logic

* feat: add memberId PathVariable in Put method

* fix: fix social login provider test

* [OING-100] feat: 내 정보 조회 API & MemberResponse 누락필드 추가 (#59)

* feat: move member response to function

* feat: add me api

* hotfix: fix page count issue (#60)

* [OING-102] hotfix: Family 초대 링크 기발급 경우 기존 링크 반환 (#61)

* feat: change emoji type name

* feat: implement post reaction api

* [OING-107] 임시 토큰 통한 회원가입 불가 이슈 해결 (#62)

* hotfix: add missing transactional

* [OING-108] feature: 응답값 없는 Operation의 기본 응답값 추가 (#63)

* feat: add memberdevice domain

* feat: add device api

* fix: change missing name

* [OING-109] feat: Member, MemberPost 엔티티에 imageKey 필드 추가 (#64)

* Revert "[OING-109] feat: Member, MemberPost 엔티티에 imageKey 필드 추가 (#64)"

This reverts commit 926f381.

* Revert "Revert "[OING-109] feat: Member, MemberPost 엔티티에 imageKey 필드 추가 (#64)""

This reverts commit 0bb818d.

* [OING-111] 새로운 형태의 Object storage url으로 인해 썸네일 url이 작동하지 못한 오류 해결 #65

* feat: add not found handler

* [OING-112] feat: 딥링크 API & 딥링크 가족 가입 API 구현 (#66)

* feat: add family join api

* feat: add deep link api

* feat: add join family feature

* Revert "feat: add not found handler"

This reverts commit 6bcdaa1.

* feat: handle 404

* [OING-113] refactor: 게시물 반응 전체 조회 응답 형식 수정 (#67)

* [OING-115] feat: 프로덕션용 설정 및 앱 키 기능 추가 (#68)

* feat: fix validation

* feat: config production-ready setups

* feat: add additional logging

* feat: add app version feature

* feat: changed log targets

* feat: change method not allowed exception

* [OING-120] hotfix: 내 가족만 게시물 조회 가능하게 & 앱 키 스웨거 추가 (#69)

* feat: add version filter toggle

* feat: add app version key in swagger

* feat: only query my family

* [OING-118] hotfix: 기회원가입자 재회원가입 방지 (#70)

* test: jwt 헤더 테스트 깨지는거 해결

* feat: prevent register if already member exists

* [OING-119] feat: Post content 공백 존재 검증 로직 추가 (#71)

* feat: add spacing validate logic in post

* style: change throw InvalidParameterException

* test: jwt 헤더 테스트 깨지는거 해결

---------

Co-authored-by: ChuYong <[email protected]>

* [OING-122] hotfix: post 등록 시, 내용 길이 검증 수정 (#73)

* [OING-121] refactor: 1차 MVP 코드 전체 정리 (#72)

* style: clean up code

* refactor: common module package cleanup

* refactor: family module package cleanup

* refactor: member module package cleanup

* refactor: post module package cleanup

* style: clean up code finally

* feat: remove asyncconfig

* refactor: refact post module class name

* [OING-122] hotfix: post 등록 시, 내용 길이 검증 수정 (#73)

* style: clean up code

* refactor: common module package cleanup

* refactor: family module package cleanup

* refactor: member module package cleanup

* refactor: post module package cleanup

* style: clean up code finally

* feat: remove asyncconfig

* refactor: refact post module class name

---------

Co-authored-by: jisu <[email protected]>
Co-authored-by: Jisu Lim <[email protected]>

* [OING-124] hotfix: 리프레시 api 작동 안함 해결 (#75)

* feat: add links to whitelisted url

* fix: change image key extraction logic (#74)

* [OING-125] hotfix: 유효하지 않은 토큰에 대해 401 예외 반환하는 핸들러 추가 (#76)

* hotfix: add handleAuthenticationFailedException

* style: change log message

* [OING-125] hotfix: PR76 핫픽스 (#77)

* hotfix: add handleAuthenticationFailedException

* style: change log message

* fix: change 401 to HttpStatus UNAUTHORIZED

* [OING-125] hotfix: PR76 핫픽스 2 (#78)

* [OING-127] feat: 구글 oAuth 추가 (#79)

* [OING-128] refactor: 가족 멤버 프로필 조회 시, 탈퇴한 회원은 응답에서 제외되도록 수정 (#80)

* feat: add DeletedAtIsNull to findFamilyMembers

* test: fix SocialLoginProviderTest

* style: delete unused lines

* [OING-129] Widget용 이미지 압축 기능 추가 (#82)

* [OING-130] feat: postDate 컬럼 삭제 및 가족이 없는 멤버에 대해 가족 프로필 조회 시, 예외 반환 로직 추가 (#83)

* feat: delete postDate column in post

* style: change method name

* feat: add delete postdate column sql

* fix: fix existsByMemberIdAndCreatedAt method

* test: fix memberPost test

* feat: add FamilyNotFoundException

* [OING-129] OING-129 의 컴파일 에러 핫픽스 (#84)

* feat: Add getKBImageUrlGenerator at OptimizedImageUrlGenerator and Append image optimizing code at getSingleRecentFamilyPostWidget at WidgetController

* fix: Hotfix compile error

* [OING-129] hotfix: OING-129 PR의 핫픽스가 머지되는 중에 꼬인 에러 해결 (#85)

* feat: Add getKBImageUrlGenerator at OptimizedImageUrlGenerator and Append image optimizing code at getSingleRecentFamilyPostWidget at WidgetController

* fix: Hotfix compile error

* fix: Fix wrongly twisted merged getKBImageUrlGenerator code

* chore: update swarm service name

* [OING-129] OING-129 PR에서 이미지 최적화 쿼리를 변경 (#86)

* feat: Add getKBImageUrlGenerator at OptimizedImageUrlGenerator and Append image optimizing code at getSingleRecentFamilyPostWidget at WidgetController

* fix: Hotfix compile error

* fix: Fix wrongly twisted merged getKBImageUrlGenerator code

* refactor: Change KB_IMAGE_OPTIMIZER_QUERY_STRING

* chore: update prod swarm service name

* [OING-131] 위젯 응답 객체에 게시자 이름 추가 (#87)

* [OING-129] 이미지 최적화 빈의 NullPointerException 방지 (#88)

* [OING-104] test: 월간 캘린더 API 통합테스트 추가 (#81)

* feat: Add test code for getMonthlyCalendar of CalendarController

* fix: Fix calendar query that cant group the posts daily and Fix test code according to changed calendar query

* refactor: Change the integration test, CalendarControllerTest to CalendarApiTest

* fix: Add fake token expiration value in applicaiton-test.yaml

* fix: Remove post_date column from meber_post insertion sql at CalenarApiTest

* hotfix: fix getThumbnailUrlGenerator typo (#90)

---------

Co-authored-by: Jisu Lim <[email protected]>
Co-authored-by: sckwon770 <[email protected]>
Co-authored-by: jisu <[email protected]>
CChuYong added a commit that referenced this pull request Jan 11, 2024
* feat: add FamilyMemberProfileResponse DTO

* feat: add getFamilyMemberProfile API

* test: add FamilyMemberProfileResponseTest

* refactor: move getFamilyMemberProfile to member module

* refactor: move FamilyMemberProfileResponse to member module

* style: delete unused file

* feat: add Pagination Response and DTO

* refactor: cherry-pick PaginationDTO

---------

Co-authored-by: ChuYong <[email protected]>
CChuYong added a commit that referenced this pull request Jan 11, 2024
commit 6e21c12
Author: 송영민 <[email protected]>
Date:   Thu Jan 11 20:12:12 2024 +0900

    feat: change variable name

commit 3ae270e
Author: ChuYong <[email protected]>
Date:   Thu Jan 11 10:27:29 2024 +0900

    feat: add family validation

commit cdab2da
Author: Jisu Lim <[email protected]>
Date:   Wed Jan 10 20:09:38 2024 +0900

    [OING-135] hotfix: 닉네임 길이 제한 조건 수정 (#92)

    * fix: fix validateMemberName condition

    * feat: add/fix @Valid for DTO

    * feat: add @notblank to CreateNewUserDto

commit f207a45
Author: Jisu Lim <[email protected]>
Date:   Tue Jan 9 18:58:43 2024 +0900

    hotfix: fix getThumbnailUrlGenerator typo (#90)

commit e232cb0
Author: sckwon770 <[email protected]>
Date:   Tue Jan 9 17:59:47 2024 +0900

    [OING-104] test: 월간 캘린더 API 통합테스트 추가 (#81)

    * feat: Add test code for getMonthlyCalendar of CalendarController

    * fix: Fix calendar query that cant group the posts daily and Fix test code according to changed calendar query

    * refactor: Change the integration test, CalendarControllerTest to CalendarApiTest

    * fix: Add fake token expiration value in applicaiton-test.yaml

    * fix: Remove post_date column from meber_post insertion sql at CalenarApiTest

commit ccd3e5d
Author: sckwon770 <[email protected]>
Date:   Tue Jan 9 17:59:36 2024 +0900

    [OING-129] 이미지 최적화 빈의 NullPointerException 방지 (#88)

commit e6ca36f
Author: sckwon770 <[email protected]>
Date:   Tue Jan 9 12:40:22 2024 +0900

    [OING-131] 위젯 응답 객체에 게시자 이름 추가 (#87)

commit 124e69b
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Tue Jan 9 01:05:11 2024 +0900

    chore: update prod swarm service name

commit 2105c51
Author: sckwon770 <[email protected]>
Date:   Tue Jan 9 00:42:43 2024 +0900

    [OING-129] OING-129 PR에서 이미지 최적화 쿼리를 변경 (#86)

    * feat: Add getKBImageUrlGenerator at OptimizedImageUrlGenerator and Append image optimizing code at getSingleRecentFamilyPostWidget at WidgetController

    * fix: Hotfix compile error

    * fix: Fix wrongly twisted merged getKBImageUrlGenerator code

    * refactor: Change KB_IMAGE_OPTIMIZER_QUERY_STRING

commit f7283c0
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Tue Jan 9 00:28:55 2024 +0900

    chore: update swarm service name

commit f2c4819
Author: sckwon770 <[email protected]>
Date:   Tue Jan 9 00:22:29 2024 +0900

    [OING-129] hotfix: OING-129 PR의 핫픽스가 머지되는 중에 꼬인 에러 해결 (#85)

    * feat: Add getKBImageUrlGenerator at OptimizedImageUrlGenerator and Append image optimizing code at getSingleRecentFamilyPostWidget at WidgetController

    * fix: Hotfix compile error

    * fix: Fix wrongly twisted merged getKBImageUrlGenerator code

commit e59117a
Author: sckwon770 <[email protected]>
Date:   Tue Jan 9 00:03:45 2024 +0900

    [OING-129] OING-129 의 컴파일 에러 핫픽스 (#84)

    * feat: Add getKBImageUrlGenerator at OptimizedImageUrlGenerator and Append image optimizing code at getSingleRecentFamilyPostWidget at WidgetController

    * fix: Hotfix compile error

commit 3f3c14f
Author: Jisu Lim <[email protected]>
Date:   Tue Jan 9 00:00:18 2024 +0900

    [OING-130] feat: postDate 컬럼 삭제 및 가족이 없는 멤버에 대해 가족 프로필 조회 시, 예외 반환 로직 추가 (#83)

    * feat: delete postDate column in post

    * style: change method name

    * feat: add delete postdate column sql

    * fix: fix existsByMemberIdAndCreatedAt method

    * test: fix memberPost test

    * feat: add FamilyNotFoundException

commit 0c1e2d6
Author: sckwon770 <[email protected]>
Date:   Mon Jan 8 23:51:51 2024 +0900

    [OING-129] Widget용 이미지 압축 기능 추가 (#82)

commit 5a0fcee
Author: Jisu Lim <[email protected]>
Date:   Mon Jan 8 22:02:47 2024 +0900

    [OING-128] refactor: 가족 멤버 프로필 조회 시, 탈퇴한 회원은 응답에서 제외되도록 수정 (#80)

    * feat: add DeletedAtIsNull to findFamilyMembers

    * test: fix SocialLoginProviderTest

    * style: delete unused lines

commit 37bfa21
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Mon Jan 8 12:32:53 2024 +0900

    [OING-127] feat: 구글 oAuth 추가 (#79)

commit 11b0ea1
Author: Jisu Lim <[email protected]>
Date:   Sun Jan 7 22:31:58 2024 +0900

    [OING-125] hotfix: PR76 핫픽스 2 (#78)

commit c4eb3f4
Author: Jisu Lim <[email protected]>
Date:   Sun Jan 7 22:01:00 2024 +0900

    [OING-125] hotfix: PR76 핫픽스 (#77)

    * hotfix: add handleAuthenticationFailedException

    * style: change log message

    * fix: change 401 to HttpStatus UNAUTHORIZED

commit 427d8de
Author: Jisu Lim <[email protected]>
Date:   Sun Jan 7 20:29:15 2024 +0900

    [OING-125] hotfix: 유효하지 않은 토큰에 대해 401 예외 반환하는 핸들러 추가 (#76)

    * hotfix: add handleAuthenticationFailedException

    * style: change log message

commit e9950fc
Author: Jisu Lim <[email protected]>
Date:   Sun Jan 7 17:40:39 2024 +0900

    fix: change image key extraction logic (#74)

commit d1e550a
Author: ChuYong <[email protected]>
Date:   Sun Jan 7 00:21:03 2024 +0900

    feat: add links to whitelisted url

commit a74981a
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Sat Jan 6 22:37:09 2024 +0900

    [OING-124] hotfix: 리프레시 api 작동 안함 해결 (#75)

commit 117e2ba
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Sat Jan 6 22:05:58 2024 +0900

    [OING-121] refactor: 1차 MVP 코드 전체 정리 (#72)

    * style: clean up code

    * refactor: common module package cleanup

    * refactor: family module package cleanup

    * refactor: member module package cleanup

    * refactor: post module package cleanup

    * style: clean up code finally

    * feat: remove asyncconfig

    * refactor: refact post module class name

    * [OING-122] hotfix: post 등록 시, 내용 길이 검증 수정 (#73)

    * style: clean up code

    * refactor: common module package cleanup

    * refactor: family module package cleanup

    * refactor: member module package cleanup

    * refactor: post module package cleanup

    * style: clean up code finally

    * feat: remove asyncconfig

    * refactor: refact post module class name

    ---------

    Co-authored-by: jisu <[email protected]>
    Co-authored-by: Jisu Lim <[email protected]>

commit be8b3d6
Author: Jisu Lim <[email protected]>
Date:   Sat Jan 6 17:44:29 2024 +0900

    [OING-122] hotfix: post 등록 시, 내용 길이 검증 수정 (#73)

commit 7404c5b
Author: Jisu Lim <[email protected]>
Date:   Sat Jan 6 15:48:46 2024 +0900

    [OING-119] feat: Post content 공백 존재 검증 로직 추가 (#71)

    * feat: add spacing validate logic in post

    * style: change throw InvalidParameterException

    * test: jwt 헤더 테스트 깨지는거 해결

    ---------

    Co-authored-by: ChuYong <[email protected]>

commit 72fd2d6
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Sat Jan 6 15:48:34 2024 +0900

    [OING-118] hotfix: 기회원가입자 재회원가입 방지 (#70)

    * test: jwt 헤더 테스트 깨지는거 해결

    * feat: prevent register if already member exists

commit dfedf89
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Sat Jan 6 15:32:06 2024 +0900

    [OING-120] hotfix: 내 가족만 게시물 조회 가능하게 & 앱 키 스웨거 추가 (#69)

    * feat: add version filter toggle

    * feat: add app version key in swagger

    * feat: only query my family

commit f504371
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Fri Jan 5 00:21:29 2024 +0900

    [OING-115] feat: 프로덕션용 설정 및 앱 키 기능 추가 (#68)

    * feat: fix validation

    * feat: config production-ready setups

    * feat: add additional logging

    * feat: add app version feature

    * feat: changed log targets

    * feat: change method not allowed exception

commit 6a41f66
Author: Jisu Lim <[email protected]>
Date:   Thu Jan 4 17:43:42 2024 +0900

    [OING-113] refactor: 게시물 반응 전체 조회 응답 형식 수정 (#67)

commit decfad7
Author: ChuYong <[email protected]>
Date:   Thu Jan 4 10:26:30 2024 +0900

    feat: handle 404

commit 7d46332
Author: ChuYong <[email protected]>
Date:   Thu Jan 4 10:26:19 2024 +0900

    Revert "feat: add not found handler"

    This reverts commit 6bcdaa1.

commit ad7d413
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Wed Jan 3 18:56:08 2024 +0900

    [OING-112] feat: 딥링크 API & 딥링크 가족 가입 API 구현 (#66)

    * feat: add family join api

    * feat: add deep link api

    * feat: add join family feature

commit 6bcdaa1
Author: ChuYong <[email protected]>
Date:   Wed Jan 3 17:07:43 2024 +0900

    feat: add not found handler

commit fc0a06e
Author: sckwon770 <[email protected]>
Date:   Wed Jan 3 11:10:43 2024 +0900

    [OING-111] 새로운 형태의 Object storage url으로 인해 썸네일 url이 작동하지 못한 오류 해결 #65

commit 1272d89
Author: 송영민 <[email protected]>
Date:   Tue Jan 2 22:44:13 2024 +0900

    Revert "Revert "[OING-109] feat: Member, MemberPost 엔티티에 imageKey 필드 추가 (#64)""

    This reverts commit 0bb818d.

commit 0bb818d
Author: 송영민 <[email protected]>
Date:   Tue Jan 2 21:54:23 2024 +0900

    Revert "[OING-109] feat: Member, MemberPost 엔티티에 imageKey 필드 추가 (#64)"

    This reverts commit 926f381.

commit 926f381
Author: Jisu Lim <[email protected]>
Date:   Tue Jan 2 21:44:48 2024 +0900

    [OING-109] feat: Member, MemberPost 엔티티에 imageKey 필드 추가 (#64)

commit 74bec94
Author: 송영민 <[email protected]>
Date:   Tue Jan 2 21:44:37 2024 +0900

    fix: change missing name

commit 1b54c74
Author: 송영민 <[email protected]>
Date:   Tue Jan 2 21:39:41 2024 +0900

    feat: add device api

commit f28394a
Author: 송영민 <[email protected]>
Date:   Tue Jan 2 21:32:23 2024 +0900

    feat: add memberdevice domain

commit 95e40f9
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Mon Jan 1 18:49:18 2024 +0900

    [OING-108] feature: 응답값 없는 Operation의 기본 응답값 추가 (#63)

commit f7e1ad1
Author: 송영민 <[email protected]>
Date:   Mon Jan 1 17:23:27 2024 +0900

    hotfix: add missing transactional

commit 85b5a5d
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Mon Jan 1 14:14:47 2024 +0900

    [OING-107] 임시 토큰 통한 회원가입 불가 이슈 해결 (#62)

commit 864691a
Author: ChuYong <[email protected]>
Date:   Sat Dec 30 14:39:01 2023 +0900

    feat: implement post reaction api

commit 023b96f
Author: ChuYong <[email protected]>
Date:   Sat Dec 30 14:23:35 2023 +0900

    feat: change emoji type name

commit e1b0c6a
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Thu Dec 28 07:09:11 2023 +0900

    [OING-102] hotfix: Family 초대 링크 기발급 경우 기존 링크 반환 (#61)

commit 7840017
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Wed Dec 27 19:04:12 2023 +0900

    hotfix: fix page count issue (#60)

commit f1136c2
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Wed Dec 27 14:47:34 2023 +0900

    [OING-100] feat: 내 정보 조회 API & MemberResponse 누락필드 추가 (#59)

    * feat: move member response to function

    * feat: add me api

commit 641ba3b
Author: Jisu Lim <[email protected]>
Date:   Tue Dec 26 18:57:34 2023 +0900

    [OING-92] feat: 회원 탈퇴 API 구현 (#58)

    * feat: add BaseAuditEntityWithDelete

    * feat: add member delete basic logic

    * feat: add findAllSocialMemberByMember method

    * fix: fix updateDeletedAt()

    * refact: delete updateDeletedAt method argument

    * feat: add memberId PathVariable

    * refactor: refact deleteMember logic

    * feat: add memberId PathVariable in Put method

    * fix: fix social login provider test

commit c185207
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Tue Dec 26 18:31:55 2023 +0900

    [OING-95] feat: 카카오 인증(로그인) 기능 구현 (#52)

    * feat: add kakao provider

    * feat: implement kakao

commit 7b37817
Author: Jisu Lim <[email protected]>
Date:   Tue Dec 26 18:19:04 2023 +0900

    [OING-94] fix: createPost 코드 개선 (#51)

    * refactor: refact createPost code

    * refactor: delete unused log

    * feat: add DuplicatePostUploadException

    * style: add comments for upload time validation

    * refactor: convert time comparison logic to use LocalDateTime

    * fix: fix postDate for Asia/Seoul

    * refactor: refact PostResponse

    * style: detail InvalidUploadTime Exception

    * fix: remove extractLocalDate method

    * style: correct image request dto example

    * fix: fix validateUploadTime logic to ZonedDateTime

commit 3c384e0
Author: Jisu Lim <[email protected]>
Date:   Tue Dec 26 18:05:52 2023 +0900

    [OING-76] feat: Post에 대한 반응 생성/삭제 구현 (#48)

    * feat: add validate logic for createPostReaction

    * feat: add createPostReaction API

    * feat: add deletePostReaction API

    * refactor: refact post reaction logic in controller

    * refactor: refact findReaction logic in service

    * fix: change FetchType Eager to Lazy

commit da3c8f2
Author: sckwon770 <[email protected]>
Date:   Sun Dec 24 03:41:00 2023 +0900

    fix: Add NoArgsContructor at MemberPostCountDTO to fix QueryDSL projections QBean runtime error (#57)

commit 095388b
Author: sckwon770 <[email protected]>
Date:   Sun Dec 24 03:22:27 2023 +0900

    [OING-97] PR54로 구현한 티켓의 런타입 에러 해결을 위한 핫픽스... (#56)

    * fix: Add alias name at memberPost.count() to fix runtime QueryDSL query error

    * refactor: Make param require false at CalendarApi

    * chore: Add Swagger params description to explain type of CalendarApi

    * fix: Change MemberPostCountDTO type to Class to use the QueryDSL projections field instead of projections bean that occur runtime error

commit 5d636f9
Author: Jisu Lim <[email protected]>
Date:   Sun Dec 24 03:17:28 2023 +0900

    feat: commenting out deleteMemberProfileImage method (#55)

commit c237b77
Author: sckwon770 <[email protected]>
Date:   Sun Dec 24 03:04:00 2023 +0900

    [OING-97] CalendarApi와 관련된 에러와 잘못된 설정 해결 (#54)

    * fix: Add alias name at memberPost.count() to fix runtime QueryDSL query error

    * refactor: Make param require false at CalendarApi

    * chore: Add Swagger params description to explain type of CalendarApi

commit ee9e23f
Author: Jisu Lim <[email protected]>
Date:   Sun Dec 24 01:03:42 2023 +0900

    [OING-80] feat: 멤버 정보 조회 관련 및 가족 그룹 생성일 조회 API 구현 (#46)

    * feat: add getFamilyMemberProfile API

    * feat: add getMember API

    * feat: add familyCreatedAt in FamiyMemberProfilesResponse DTO

    * refactor: refact getFamilyMemberProfiles method

    * style: code cleanup

    * feat: delete family dependency in member

    * feat: seperate getFamilyCreatedAt API

    * style: change default value in getFamilyMemberProfiles

    * style: delete unused annotation

    * refactor: refact findFamilyCreatedAt method

    * style: rename method for getFamilyMembersProfiles

    * refactor: refact createFamilyMemberProfiles logic

    * fix: remove sorting for findFamilyMembersProfiles

    * style: change getFamilyCreatedAt ResponseDto

    * refact: createFamilyMemberProfiles method logic

commit 834c7f5
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Sat Dec 23 19:39:41 2023 +0900

    [OING-81] feat: v1/families 관련 API 구현 (#49)

    * feat: implement POST /v1/families

    * feat: implement GET /v1/families/invitation-link

    * feat; change method name

    * feat: change link to constant

    * feat: change to new exception class

commit 098dd75
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Sat Dec 23 13:24:10 2023 +0900

    [OING-77] feat: Post 조회 관련 API 구현 (#50)

    * feat: implement GET v1/posts

    * feat: implement search posts

    * style: remove unused import

    * refactor: change to query-dsl style

commit 16da8a0
Author: Jisu Lim <[email protected]>
Date:   Thu Dec 21 19:46:24 2023 +0900

    [OING-79] feat: 멤버 닉네임/프로필 이미지 수정 API 구현 (#47)

    * feat: add updateMember API

    * feat: add requestPresignedUrl for profileImg API

    * feat: add transactional annotation

    * style: remove getMember method

    * refactor: split existing logic into two separate APIs

    * feat: add deleteMemberProfileImage method

    * style: update imageUrl RequestDTO example

    * style: change method name for delete ObjectStorage image

    * refactor: add validateName logic

    * feat: change queryString to requestBody

    * feat: move validateName method

    * feat: add Async to deleteImage logic

    * style: add newline

commit 53045cb
Author: Jisu Lim <[email protected]>
Date:   Thu Dec 21 18:55:57 2023 +0900

    [OING-75] feat: Post 작성 API 구현 (#45)

commit 684c19b
Author: ChuYong <[email protected]>
Date:   Mon Dec 18 22:16:07 2023 +0900

    hotfix: add token security

commit b8908df
Author: ChuYong <[email protected]>
Date:   Mon Dec 18 22:06:24 2023 +0900

    hotfix: update swagger header

commit da7b0b7
Author: Jisu Lim <[email protected]>
Date:   Mon Dec 18 17:10:14 2023 +0900

    [OING-90] hotfix: MemberService 및 WidgetController에서의 컴파일 에러 (#44)

commit 59cf8ab
Author: sckwon770 <[email protected]>
Date:   Mon Dec 18 12:42:08 2023 +0900

    [OING-70] feat: Calendar API 구현 (#39)

    * feat: Add OptimizedImageUrlProvider component at gateway

    * feat: Add the code of service and repository for calendar controller

    * feat: Move Calendar controller to gateway modules and Impl getMonthlyCalendar request

    * refactor: Refactor MemberPostRepository to make method name simply rather than giving meaning in detail

    * feat: Impl getWeeklyCalendar requst and Substract the dupicated code lines from calendar requests

    * fix: Remove the code to substract 1 day from end date at calenar request, considering between operator

    * chore: Fix head branch regex for pr template automation workflow

    * refactor: Exclude family concept from MemberPostService, MemberPostRepository

    * refactor: Rename memberId to myId

    * refactor: Change the type of week paramter of getWeeklyCalendar request to Long

    * refactor: Make the date parameters of CalendarCotroller required true

    * chore: Add test coverage excluding pattern **.DTO*

    * fix: Add cdn value  at test application yml

    * refactor: Refactor for loop code to map post to calendar to functional code

    * refactor: Break the line over 120 characters

    * refactor: Refactor the complex JPQL code of MemberPostRepository to QueryDSL

    * refactor: Change the type of paramters of MemberPost code

    * refactor: Remove implementation class usage, not interface of OptimizedImageUrl component

    ---------

    Co-authored-by: 송영민 (YeongMin Song) <[email protected]>

commit d76def0
Author: sckwon770 <[email protected]>
Date:   Mon Dec 18 12:40:25 2023 +0900

    [OING-84] feat: Widget API 구현 (#42)

    * feat: Add OptimizedImageUrlProvider component at gateway

    * feat: Add the code of service and repository for calendar controller

    * feat: Move Calendar controller to gateway modules and Impl getMonthlyCalendar request

    * refactor: Refactor MemberPostRepository to make method name simply rather than giving meaning in detail

    * feat: Impl getWeeklyCalendar requst and Substract the dupicated code lines from calendar requests

    * fix: Remove the code to substract 1 day from end date at calenar request, considering between operator

    * chore: Fix head branch regex for pr template automation workflow

    * feat: Add api spec for the single recent family widget

    * refactor: Exclude family concept from MemberPostService, MemberPostRepository

    * feat: Impl getSingleRecentFamilyPostWidget request

    * refactor: Rename memberId to myId

    * refactor: Change the type of week paramter of getWeeklyCalendar request to Long

    * refactor: Make the date parameters of CalendarCotroller required true

    * chore: Add test coverage excluding pattern **.DTO*

    * fix: Add cdn value  at test application yml

    * refactor: Refactor for loop code to map post to calendar to functional code

    * refactor: Break the line over 120 characters

    * refactor: Refactor the complex JPQL code of MemberPostRepository to QueryDSL

    * refactor: Change the type of paramters of MemberPost code

    * refactor: Remove implementation class usage, not interface of OptimizedImageUrl component

commit 1611521
Author: Jisu Lim <[email protected]>
Date:   Sat Dec 16 15:47:45 2023 +0900

    [OING-88] feat: Emoji Enum 타입으로 변경 (#43)

    * feat: add Emoji Enum Class

    * fix: fix emoji logic

    * test: fix test due to EnumType

commit 61cd611
Author: Jisu Lim <[email protected]>
Date:   Sat Dec 16 12:39:18 2023 +0900

    [OING-83] 회원 탈퇴 API 모킹 (#41)

    * feat: add deleteMember mock api

    * feat: delete DeleteMemberRequest dto

    * feat: change deleteMember mock api logic

    * style: delete /v1/members uri in url-whitelists

commit 68b5371
Author: Jisu Lim <[email protected]>
Date:   Sat Dec 16 12:38:54 2023 +0900

    [OING-68] feat: Post Reaction API 모킹 (#40)

    * feat: add PostReaction mock API

    * feat: change PostReaction DTO name

    * feat: change reactToPost API name

commit a6ce490
Author: Jisu Lim <[email protected]>
Date:   Fri Dec 15 18:12:38 2023 +0900

    [OING-67] feat: 피드 업로드 API 모킹 (#36)

    * feat: add V2__modify_Post DDL script

    * feat: modify column in Post domain

    * feat: add createPost mock API

    * test: fix failed test due to added column

    * refactor: refact S3 presignedUrl Api

    * refactor: delete unused memberId param in requestPresignedUrl

    * refactor: change ResponseEntity in requestPresignedUrl

    * refactor: refact Postmodule code

    * refactor: refact S3PreSignedUrlProvider

    * test: fix S3PreSignedUrlProviderTest code

    * style: change ResponseEntity to DTO

    * feat: correct merge conflicts

    * feat: add validation for CreatePostRequest

    * refact: add validateContent method

    ---------

    Co-authored-by: 송영민 (YeongMin Song) <[email protected]>

commit 21c8f2e
Author: Jisu Lim <[email protected]>
Date:   Fri Dec 15 14:24:36 2023 +0900

    [OING-71] feat: 회원정보 수정 API 모킹 (#38)

    * feat: add updateMember mock api

    * feat: add updateMember mock api

commit 1919bbe
Author: ChuYong <[email protected]>
Date:   Thu Dec 14 20:15:52 2023 +0900

    hotfix: add missing parameter

commit 1e03ab5
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Thu Dec 14 20:11:57 2023 +0900

    [OING-73] feat: family, post api mock 구현 (#37)

    * feat: mock family api

    * feat: mock post api

    * feat: add sort parameter

    * docs: add description

commit d128279
Author: ChuYong <[email protected]>
Date:   Tue Dec 12 15:43:50 2023 +0900

    hotfix: remove unused import

commit 09db7c1
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Tue Dec 12 14:31:47 2023 +0900

    [OING-63] feat: 1차 와이어프레임 API 설계 (#34)

    * feat: add family api spec

    * feat: add member api sepc

    * feat: add post create logic

    * feat: add calendar query api

    * feat: add post query api

    * feat: add temporary token generate api

    * feat: change api url

    * feat: add reaction deletion api

commit 9e277b0
Author: Jisu Lim <[email protected]>
Date:   Tue Dec 12 13:29:03 2023 +0900

    [OING-66] feat: PresignedUrl 요청 API 구현 (#35)

    * feat: add S3presignedUrl API for image upload

    * refactor: add RequiredArgsConstructor in PostController

    * style: modify test code with error

    * refactor: refact PresignedUrl logic

    * fix: fix requestPresignedUrl http method

    * style: rename requestPresignedUrl uri

commit 1d570ed
Author: sckwon770 <[email protected]>
Date:   Mon Dec 11 21:46:57 2023 +0900

    [OING-41] feat: 금일 피드 업로드 여부 조회 API 추가 (#30)

    * feat: Add the mock api - getIsTodayFeedUploadedByUserId

    * fix: Fix wrong parameter annotation on getIsTodayFeedUploadedByUserId

    * refactor: Refactor fetchDailyFeeds api whose scope is ME according to code review

    * refactor: Refactor make mock api to response variously

    * feat: Add AuthenticationHolder

    * chore: Add the comment using TokenAuthenticationHolder

    * chore: Exclude QueryDSL Qdomains from git

    * chore: Organize module directory structure

    * fix: Fix compile error at MemberController

    * chore: Exclude .env file from git

commit 0e9f402
Author: sckwon770 <[email protected]>
Date:   Mon Dec 11 07:18:46 2023 +0900

    [OING-56] feat: Family 모듈 구성 (#31)

commit 162c73e
Author: sckwon770 <[email protected]>
Date:   Mon Dec 11 02:39:19 2023 +0900

    [Suggestion] chore: PR 작성 자동화 (#32)

    * chore: Add the workflos to automate the pointless writing pr template works

    * chore: Add last empty line into workflow, pr.yaml

    * chore: Add base-branch-regex

    * fix: Fix base-branch-regex to constraint branch condition

commit 5715fc4
Author: Jisu Lim <[email protected]>
Date:   Sat Dec 9 16:37:21 2023 +0900

    [OING-62] feat: 가족 구성원 Profile 조회 API 설계 (#29)

    * feat: add FamilyMemberProfileResponse DTO

    * feat: add getFamilyMemberProfile API

    * test: add FamilyMemberProfileResponseTest

    * refactor: move getFamilyMemberProfile to member module

    * refactor: move FamilyMemberProfileResponse to member module

    * style: delete unused file

    * feat: add Pagination Response and DTO

    * refactor: cherry-pick PaginationDTO

    ---------

    Co-authored-by: ChuYong <[email protected]>

commit 46fe9eb
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Sat Dec 9 16:22:27 2023 +0900

    [OING-40] feature: API 경로 변경 및 Response DTO 변경 (#33)

    * feat: change api route and controller name

    * docs: update api docs

    * feat: add hasNext to PaginationResponse

commit b1e08f9
Author: Jisu Lim <[email protected]>
Date:   Sat Dec 9 16:19:12 2023 +0900

    [OING-58] feat: MemberPost 도메인 entity & repository 구성 (#28)

    * feat: add MemberPost Entity

    * feat: add MemberPostReaction Entity

    * feat: add MemberPostComment Entity

    * feat: add Member module dependency

    * feat: add fetchType to Entity field

    * feat: add Repository in post module

    * chore: delete member dependency in post module

    * test: add domain test in MemberPost module

    * feat: add index in post table

    * fix: fix mappedBy in MemberPost

    * test: fix test error in MemberTest

    * fix: fix field in MemberPost domain

commit a52b47d
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Sat Dec 9 16:08:52 2023 +0900

    [OING-40] feat: Feed부분 API 설계하기 (#23)

    * feat: add Pagination Response and DTO

    * test: add dto, response test code

    * feat: add PostFeedController

    * fix: change package issue

    * feat: implement mock logic

    * test: fix test

    * test: add test to PostFeedResponse

    * feat: add Member API

commit dc6fbb1
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Sat Dec 9 16:07:24 2023 +0900

    [OING-47] feat: Auth 리프레시 API 추가및 경로 변경 (#22)

    * docs: add more description and example to api docs

    * feat: add refresh token logic

    * feat: add refresh token validation logic

    * style: fixed line style

    * test: add test code to new dto

    * [OING-32] refactor: S3 PresignedUrl 로직 리팩터링 (#19)

    * refactor: refact PreSignedUrlResponse

    * feat: add PreSignedUrlGenerator Interface

    * fix: fix getPreSignedUrl Test

    * chore: exclude dto from jacoco test coverage

    * refactor: delete PreSignedUrlResponse DTO from config

    * chore: add NCP ev to template file

    * docs: update environment variables on README.md

    * chore: fix Qdomains in jacocoTestReport

    * feat: delete Qdomain

    * feat: document PreSignedUrlResponse

    * chore: add dependsOn test in jacocoTestReport

    * [OING-50] refactor: Config 모듈명 Gateway로 변경 (#21)

    * docs: add more description and example to api docs

    * feat: add refresh token logic

    * feat: add refresh token validation logic

    * style: fixed line style

    * test: add test code to new dto

    * feat: add new temporary token

    * feat: add temporary token creation logic

    * feat: add register flow logic

    * feat: change api route to /register

    * refactor: add custom fromString on enum classes

    ---------

    Co-authored-by: Jisu Lim <[email protected]>
    Co-authored-by: sckwon770 <[email protected]>

commit c40dc1a
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Fri Dec 8 16:45:52 2023 +0900

    [OING-57] hotfix: Member 도메인 entity & repository 구성 오타 (#27)

commit 29a4e18
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Fri Dec 8 16:38:08 2023 +0900

    [OING-57] feat: Member 도메인 entity & repository 구성 (#26)

    * feat: add entitites for member domain

    * feat: change BaseAuditEntity to extend BaseEntity

commit 71350fd
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Fri Dec 8 16:00:51 2023 +0900

    [OING-54] chore: mysql 환경변수 설정 및 프로덕션 환경설정 (#25)

    * chore: add mysql password to env

    * chore: add hikari configurations

    * chore: disable springdoc in production

    * chore: add application-dev profile

    * chore: change ddl-auto to validate

    * chore: test profile to apply h2

commit a648dc9
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Fri Dec 8 15:26:31 2023 +0900

    [OING-33] feat: DDL 작성 및 flyway 활성화 (#24)

    * feat: add sql DDL script

    * feat: enable flyway

    * fix: change url datatype to TEXT

    * feat: change emoji to ascii

    * test: fix s3 test

commit 161755e
Author: sckwon770 <[email protected]>
Date:   Tue Dec 5 21:26:26 2023 +0900

    [OING-50] refactor: Config 모듈명 Gateway로 변경 (#21)

commit 4678f71
Author: Jisu Lim <[email protected]>
Date:   Tue Dec 5 19:38:34 2023 +0900

    [OING-32] refactor: S3 PresignedUrl 로직 리팩터링 (#19)

    * refactor: refact PreSignedUrlResponse

    * feat: add PreSignedUrlGenerator Interface

    * fix: fix getPreSignedUrl Test

    * chore: exclude dto from jacoco test coverage

    * refactor: delete PreSignedUrlResponse DTO from config

    * chore: add NCP ev to template file

    * docs: update environment variables on README.md

    * chore: fix Qdomains in jacocoTestReport

    * feat: delete Qdomain

    * feat: document PreSignedUrlResponse

    * chore: add dependsOn test in jacocoTestReport

commit 41217f7
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Tue Dec 5 11:13:23 2023 +0900

    [OING-46] feat: Member, Post 모듈 추가하기 (#20)

    * feat: add family, post module

    * chore: add workflow to check module changes

commit 90d72f3
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Sun Dec 3 13:51:49 2023 +0900

    [OING-21] feat: 기본 oAuth & 멤버 인증 관련 모듈 추가 (#17)

    * feat: create "POST /v1/auth/social" api

    * feat: create interface of apple login service

    * feat: create BaseAuditEntity

    * feat: add IdentityGenerator and impl

    * feat: add Member and SocialMember entity

    * feat: add Member Register logic

    * feat: add apple provider

    * feat: report slack on error

    * feat: only invoke slack on production

    * chore: add slack webhook conf with local props

    * feat: refactor yaml properties

    * docs: add environment example

    * feat: create "POST /v1/auth/social" api

    * feat: create interface of apple login service

    * feat: create BaseAuditEntity

    * feat: add IdentityGenerator and impl

    * feat: add Member and SocialMember entity

    * feat: add Member Register logic

    * feat: add apple provider

    * feat: report slack on error

    * feat: only invoke slack on production

    * chore: add slack webhook conf with local props

    * feat: refactor yaml properties

    * docs: add environment example

    * test: create test profile

    * test: add unit test on domain module

    * test: add object unit test codes

    * test: add component test codes

    * fix: override equals hashcode to check array

    * fix: override tostring

    * fix: remove setter for entity

    * fix: not-null on BaseAuditEntity

    * refactor: refactor codes

    * test: remove setter test for entity

commit 718b8f7
Author: Jisu Lim <[email protected]>
Date:   Sat Dec 2 17:15:14 2023 +0900

    [OING-25] chore: NCP ObjectStorage 세팅 (#16)

    * chore: add dependency for AWS S3

    * chore: add NCP ObjectStorage Config

    * feat: add File uploader

    * test: add application.yaml for test

    * test: add test code for uploadImage

    * refactor: refact ObjectStorageConfig code

    * refactor: change FileUploader for presignedUrl

    * feat: add S3PreSignedUrlProvider

    * test: add test code for presigned-url

    * style: delete unused import statement

    * delete: delete unused util file for test

    * chore: exclude dto from jacoco test coverage

    * style: delete redundant code

    * refactor: refact ObjectStorageProperties file

    * refactor: refact S3PreSignedUrlProvider code

    * delete: delete unused file

commit 6e818e5
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Fri Dec 1 17:59:54 2023 +0900

    [OING-31] fix: SpringDocs (Swagger) 수리하기 (#18)

    * fix: config fix for swagger

    * docs: add default url path for swagger

commit b19b573
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Sun Nov 26 22:49:21 2023 +0900

    [OING-26] chore: CI/CD 파이프라인 워크플로우 개선 (#15)

    * [OING-27] chore: 배포 파이프라인 이후 슬랙 알림 보내기

    * [OING-27] chore: 배포8] chore: PR시 테스트 커버리지 ì측정하기

commit a86c2fb
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Sun Nov 26 18:40:23 2023 +0900

    [OING-20] feat: JWT 토큰 관리 컴포넌트 생성 (#9)

    * feat: add token properties classes

    * feat: add token related domain classes

    * feat: add token generator and impl

    * feat: implement token generator with jwt

    * feat: add JWT Authenticator

    * test: add unit test for created classes

commit 1ea5259
Author: Jisu Lim <[email protected]>
Date:   Sun Nov 26 17:36:20 2023 +0900

    [OING-24] chore: Swagger 환경 세팅 (#10)

    * feat: add SwaggerConfig

    * feat: add SwaggerConfig environment variable

    * feat: exclude swagger-related requests from Interceptor path patterns

    * style: change swagger title

commit 5a8d17d
Author: Jisu Lim <[email protected]>
Date:   Fri Nov 24 18:46:43 2023 +0900

    [OING-23] chore: Jacoco 테스트 커버리지 범위에서 config 모듈 제외 (#8)

commit 6ec3e26
Author: Jisu Lim <[email protected]>
Date:   Fri Nov 24 12:04:54 2023 +0900

    [OING-10] chore: code coverage를 위한 Jacoco 설정 (#7)

    * chore: apply Jacoco for code coverage

    * chore: exclude specific patterns from Jacoco code coverage

    * chore: set required formats

    * fix: Jacoco configuration by moving jacoco afterEvaluate

commit 143ca89
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Fri Nov 24 09:53:08 2023 +0900

    [OINT-19] feature: 스프링 시큐리티 설정 (#6)

    * chore: change root project name

    * feat: add SpringSecurityConfig

    * feat: add auth handler filters

    * feat: add JwtAuthenticationHandler with properties

    * feat: add WebRequestInterceptor with filters

    * chore: change root project name

    * feat: add SpringSecurityConfig

    * feat: add auth handler filters

    * feat: add JwtAuthenticationHandler with properties

    * feat: add WebRequestInterceptor with filters

    * feat: change response to ErrorResponse

    * feat: add WebExceptionHandler

    * style: change line length under max line length

    * style: change line length under max line length

    * style: match line convention

commit 9984d50
Author: 송영민 (YeongMin Song) <[email protected]>
Date:   Wed Nov 22 15:04:30 2023 +0900

    [OING-18] feat: 공통 모듈 구축하기 (#5)

    * chore: add common module

    * chore: add common module to workflow

    * feat: add common exception classes

    * feat: alter DomainException to non abstract class

    * test: add DomainException unit test

    * test: add ErrorResponse unit test

    * chore: fix workflow annotations
Kwon770 added a commit that referenced this pull request Jan 14, 2024
* [OING-18] feat: 공통 모듈 구축하기 (#5)

* chore: add common module

* chore: add common module to workflow

* feat: add common exception classes

* feat: alter DomainException to non abstract class

* test: add DomainException unit test

* test: add ErrorResponse unit test

* chore: fix workflow annotations

* [OINT-19] feature: 스프링 시큐리티 설정 (#6)

* chore: change root project name

* feat: add SpringSecurityConfig

* feat: add auth handler filters

* feat: add JwtAuthenticationHandler with properties

* feat: add WebRequestInterceptor with filters

* chore: change root project name

* feat: add SpringSecurityConfig

* feat: add auth handler filters

* feat: add JwtAuthenticationHandler with properties

* feat: add WebRequestInterceptor with filters

* feat: change response to ErrorResponse

* feat: add WebExceptionHandler

* style: change line length under max line length

* style: change line length under max line length

* style: match line convention

* [OING-10] chore: code coverage를 위한 Jacoco 설정 (#7)

* chore: apply Jacoco for code coverage

* chore: exclude specific patterns from Jacoco code coverage

* chore: set required formats

* fix: Jacoco configuration by moving jacoco afterEvaluate

* [OING-23] chore: Jacoco 테스트 커버리지 범위에서 config 모듈 제외 (#8)

* [OING-24] chore: Swagger 환경 세팅 (#10)

* feat: add SwaggerConfig

* feat: add SwaggerConfig environment variable

* feat: exclude swagger-related requests from Interceptor path patterns

* style: change swagger title

* [OING-20] feat: JWT 토큰 관리 컴포넌트 생성 (#9)

* feat: add token properties classes

* feat: add token related domain classes

* feat: add token generator and impl

* feat: implement token generator with jwt

* feat: add JWT Authenticator

* test: add unit test for created classes

* [OING-26] chore: CI/CD 파이프라인 워크플로우 개선 (#15)

* [OING-27] chore: 배포 파이프라인 이후 슬랙 알림 보내기

* [OING-27] chore: 배포8] chore: PR시 테스트 커버리지 ì측정하기

* [OING-31] fix: SpringDocs (Swagger) 수리하기 (#18)

* fix: config fix for swagger

* docs: add default url path for swagger

* [OING-25] chore: NCP ObjectStorage 세팅 (#16)

* chore: add dependency for AWS S3

* chore: add NCP ObjectStorage Config

* feat: add File uploader

* test: add application.yaml for test

* test: add test code for uploadImage

* refactor: refact ObjectStorageConfig code

* refactor: change FileUploader for presignedUrl

* feat: add S3PreSignedUrlProvider

* test: add test code for presigned-url

* style: delete unused import statement

* delete: delete unused util file for test

* chore: exclude dto from jacoco test coverage

* style: delete redundant code

* refactor: refact ObjectStorageProperties file

* refactor: refact S3PreSignedUrlProvider code

* delete: delete unused file

* [OING-21] feat: 기본 oAuth & 멤버 인증 관련 모듈 추가 (#17)

* feat: create "POST /v1/auth/social" api

* feat: create interface of apple login service

* feat: create BaseAuditEntity

* feat: add IdentityGenerator and impl

* feat: add Member and SocialMember entity

* feat: add Member Register logic

* feat: add apple provider

* feat: report slack on error

* feat: only invoke slack on production

* chore: add slack webhook conf with local props

* feat: refactor yaml properties

* docs: add environment example

* feat: create "POST /v1/auth/social" api

* feat: create interface of apple login service

* feat: create BaseAuditEntity

* feat: add IdentityGenerator and impl

* feat: add Member and SocialMember entity

* feat: add Member Register logic

* feat: add apple provider

* feat: report slack on error

* feat: only invoke slack on production

* chore: add slack webhook conf with local props

* feat: refactor yaml properties

* docs: add environment example

* test: create test profile

* test: add unit test on domain module

* test: add object unit test codes

* test: add component test codes

* fix: override equals hashcode to check array

* fix: override tostring

* fix: remove setter for entity

* fix: not-null on BaseAuditEntity

* refactor: refactor codes

* test: remove setter test for entity

* [OING-46] feat: Member, Post 모듈 추가하기 (#20)

* feat: add family, post module

* chore: add workflow to check module changes

* [OING-32] refactor: S3 PresignedUrl 로직 리팩터링 (#19)

* refactor: refact PreSignedUrlResponse

* feat: add PreSignedUrlGenerator Interface

* fix: fix getPreSignedUrl Test

* chore: exclude dto from jacoco test coverage

* refactor: delete PreSignedUrlResponse DTO from config

* chore: add NCP ev to template file

* docs: update environment variables on README.md

* chore: fix Qdomains in jacocoTestReport

* feat: delete Qdomain

* feat: document PreSignedUrlResponse

* chore: add dependsOn test in jacocoTestReport

* [OING-50] refactor: Config 모듈명 Gateway로 변경 (#21)

* [OING-33] feat: DDL 작성 및 flyway 활성화 (#24)

* feat: add sql DDL script

* feat: enable flyway

* fix: change url datatype to TEXT

* feat: change emoji to ascii

* test: fix s3 test

* [OING-54] chore: mysql 환경변수 설정 및 프로덕션 환경설정 (#25)

* chore: add mysql password to env

* chore: add hikari configurations

* chore: disable springdoc in production

* chore: add application-dev profile

* chore: change ddl-auto to validate

* chore: test profile to apply h2

* [OING-57] feat: Member 도메인 entity & repository 구성 (#26)

* feat: add entitites for member domain

* feat: change BaseAuditEntity to extend BaseEntity

* [OING-57] hotfix: Member 도메인 entity & repository 구성 오타 (#27)

* [OING-47] feat: Auth 리프레시 API 추가및 경로 변경 (#22)

* docs: add more description and example to api docs

* feat: add refresh token logic

* feat: add refresh token validation logic

* style: fixed line style

* test: add test code to new dto

* [OING-32] refactor: S3 PresignedUrl 로직 리팩터링 (#19)

* refactor: refact PreSignedUrlResponse

* feat: add PreSignedUrlGenerator Interface

* fix: fix getPreSignedUrl Test

* chore: exclude dto from jacoco test coverage

* refactor: delete PreSignedUrlResponse DTO from config

* chore: add NCP ev to template file

* docs: update environment variables on README.md

* chore: fix Qdomains in jacocoTestReport

* feat: delete Qdomain

* feat: document PreSignedUrlResponse

* chore: add dependsOn test in jacocoTestReport

* [OING-50] refactor: Config 모듈명 Gateway로 변경 (#21)

* docs: add more description and example to api docs

* feat: add refresh token logic

* feat: add refresh token validation logic

* style: fixed line style

* test: add test code to new dto

* feat: add new temporary token

* feat: add temporary token creation logic

* feat: add register flow logic

* feat: change api route to /register

* refactor: add custom fromString on enum classes

---------

Co-authored-by: Jisu Lim <[email protected]>
Co-authored-by: sckwon770 <[email protected]>

* [OING-40] feat: Feed부분 API 설계하기 (#23)

* feat: add Pagination Response and DTO

* test: add dto, response test code

* feat: add PostFeedController

* fix: change package issue

* feat: implement mock logic

* test: fix test

* test: add test to PostFeedResponse

* feat: add Member API

* [OING-58] feat: MemberPost 도메인 entity & repository 구성 (#28)

* feat: add MemberPost Entity

* feat: add MemberPostReaction Entity

* feat: add MemberPostComment Entity

* feat: add Member module dependency

* feat: add fetchType to Entity field

* feat: add Repository in post module

* chore: delete member dependency in post module

* test: add domain test in MemberPost module

* feat: add index in post table

* fix: fix mappedBy in MemberPost

* test: fix test error in MemberTest

* fix: fix field in MemberPost domain

* [OING-40] feature: API 경로 변경 및 Response DTO 변경 (#33)

* feat: change api route and controller name

* docs: update api docs

* feat: add hasNext to PaginationResponse

* [OING-62] feat: 가족 구성원 Profile 조회 API 설계 (#29)

* feat: add FamilyMemberProfileResponse DTO

* feat: add getFamilyMemberProfile API

* test: add FamilyMemberProfileResponseTest

* refactor: move getFamilyMemberProfile to member module

* refactor: move FamilyMemberProfileResponse to member module

* style: delete unused file

* feat: add Pagination Response and DTO

* refactor: cherry-pick PaginationDTO

---------

Co-authored-by: ChuYong <[email protected]>

* [Suggestion] chore: PR 작성 자동화 (#32)

* chore: Add the workflos to automate the pointless writing pr template works

* chore: Add last empty line into workflow, pr.yaml

* chore: Add base-branch-regex

* fix: Fix base-branch-regex to constraint branch condition

* [OING-56] feat: Family 모듈 구성 (#31)

* [OING-41] feat: 금일 피드 업로드 여부 조회 API 추가 (#30)

* feat: Add the mock api - getIsTodayFeedUploadedByUserId

* fix: Fix wrong parameter annotation on getIsTodayFeedUploadedByUserId

* refactor: Refactor fetchDailyFeeds api whose scope is ME according to code review

* refactor: Refactor make mock api to response variously

* feat: Add AuthenticationHolder

* chore: Add the comment using TokenAuthenticationHolder

* chore: Exclude QueryDSL Qdomains from git

* chore: Organize module directory structure

* fix: Fix compile error at MemberController

* chore: Exclude .env file from git

* [OING-66] feat: PresignedUrl 요청 API 구현 (#35)

* feat: add S3presignedUrl API for image upload

* refactor: add RequiredArgsConstructor in PostController

* style: modify test code with error

* refactor: refact PresignedUrl logic

* fix: fix requestPresignedUrl http method

* style: rename requestPresignedUrl uri

* [OING-63] feat: 1차 와이어프레임 API 설계 (#34)

* feat: add family api spec

* feat: add member api sepc

* feat: add post create logic

* feat: add calendar query api

* feat: add post query api

* feat: add temporary token generate api

* feat: change api url

* feat: add reaction deletion api

* hotfix: remove unused import

* [OING-73] feat: family, post api mock 구현 (#37)

* feat: mock family api

* feat: mock post api

* feat: add sort parameter

* docs: add description

* hotfix: add missing parameter

* [OING-71] feat: 회원정보 수정 API 모킹 (#38)

* feat: add updateMember mock api

* feat: add updateMember mock api

* [OING-67] feat: 피드 업로드 API 모킹 (#36)

* feat: add V2__modify_Post DDL script

* feat: modify column in Post domain

* feat: add createPost mock API

* test: fix failed test due to added column

* refactor: refact S3 presignedUrl Api

* refactor: delete unused memberId param in requestPresignedUrl

* refactor: change ResponseEntity in requestPresignedUrl

* refactor: refact Postmodule code

* refactor: refact S3PreSignedUrlProvider

* test: fix S3PreSignedUrlProviderTest code

* style: change ResponseEntity to DTO

* feat: correct merge conflicts

* feat: add validation for CreatePostRequest

* refact: add validateContent method

---------

Co-authored-by: 송영민 (YeongMin Song) <[email protected]>

* [OING-68] feat: Post Reaction API 모킹 (#40)

* feat: add PostReaction mock API

* feat: change PostReaction DTO name

* feat: change reactToPost API name

* [OING-83] 회원 탈퇴 API 모킹 (#41)

* feat: add deleteMember mock api

* feat: delete DeleteMemberRequest dto

* feat: change deleteMember mock api logic

* style: delete /v1/members uri in url-whitelists

* [OING-88] feat: Emoji Enum 타입으로 변경 (#43)

* feat: add Emoji Enum Class

* fix: fix emoji logic

* test: fix test due to EnumType

* [OING-84] feat: Widget API 구현 (#42)

* feat: Add OptimizedImageUrlProvider component at gateway

* feat: Add the code of service and repository for calendar controller

* feat: Move Calendar controller to gateway modules and Impl getMonthlyCalendar request

* refactor: Refactor MemberPostRepository to make method name simply rather than giving meaning in detail

* feat: Impl getWeeklyCalendar requst and Substract the dupicated code lines from calendar requests

* fix: Remove the code to substract 1 day from end date at calenar request, considering between operator

* chore: Fix head branch regex for pr template automation workflow

* feat: Add api spec for the single recent family widget

* refactor: Exclude family concept from MemberPostService, MemberPostRepository

* feat: Impl getSingleRecentFamilyPostWidget request

* refactor: Rename memberId to myId

* refactor: Change the type of week paramter of getWeeklyCalendar request to Long

* refactor: Make the date parameters of CalendarCotroller required true

* chore: Add test coverage excluding pattern **.DTO*

* fix: Add cdn value  at test application yml

* refactor: Refactor for loop code to map post to calendar to functional code

* refactor: Break the line over 120 characters

* refactor: Refactor the complex JPQL code of MemberPostRepository to QueryDSL

* refactor: Change the type of paramters of MemberPost code

* refactor: Remove implementation class usage, not interface of OptimizedImageUrl component

* [OING-70] feat: Calendar API 구현 (#39)

* feat: Add OptimizedImageUrlProvider component at gateway

* feat: Add the code of service and repository for calendar controller

* feat: Move Calendar controller to gateway modules and Impl getMonthlyCalendar request

* refactor: Refactor MemberPostRepository to make method name simply rather than giving meaning in detail

* feat: Impl getWeeklyCalendar requst and Substract the dupicated code lines from calendar requests

* fix: Remove the code to substract 1 day from end date at calenar request, considering between operator

* chore: Fix head branch regex for pr template automation workflow

* refactor: Exclude family concept from MemberPostService, MemberPostRepository

* refactor: Rename memberId to myId

* refactor: Change the type of week paramter of getWeeklyCalendar request to Long

* refactor: Make the date parameters of CalendarCotroller required true

* chore: Add test coverage excluding pattern **.DTO*

* fix: Add cdn value  at test application yml

* refactor: Refactor for loop code to map post to calendar to functional code

* refactor: Break the line over 120 characters

* refactor: Refactor the complex JPQL code of MemberPostRepository to QueryDSL

* refactor: Change the type of paramters of MemberPost code

* refactor: Remove implementation class usage, not interface of OptimizedImageUrl component

---------

Co-authored-by: 송영민 (YeongMin Song) <[email protected]>

* [OING-90] hotfix: MemberService 및 WidgetController에서의 컴파일 에러 (#44)

* hotfix: update swagger header

* hotfix: add token security

* [OING-75] feat: Post 작성 API 구현 (#45)

* [OING-79] feat: 멤버 닉네임/프로필 이미지 수정 API 구현 (#47)

* feat: add updateMember API

* feat: add requestPresignedUrl for profileImg API

* feat: add transactional annotation

* style: remove getMember method

* refactor: split existing logic into two separate APIs

* feat: add deleteMemberProfileImage method

* style: update imageUrl RequestDTO example

* style: change method name for delete ObjectStorage image

* refactor: add validateName logic

* feat: change queryString to requestBody

* feat: move validateName method

* feat: add Async to deleteImage logic

* style: add newline

* [OING-77] feat: Post 조회 관련 API 구현 (#50)

* feat: implement GET v1/posts

* feat: implement search posts

* style: remove unused import

* refactor: change to query-dsl style

* [OING-81] feat: v1/families 관련 API 구현 (#49)

* feat: implement POST /v1/families

* feat: implement GET /v1/families/invitation-link

* feat; change method name

* feat: change link to constant

* feat: change to new exception class

* [OING-80] feat: 멤버 정보 조회 관련 및 가족 그룹 생성일 조회 API 구현 (#46)

* feat: add getFamilyMemberProfile API

* feat: add getMember API

* feat: add familyCreatedAt in FamiyMemberProfilesResponse DTO

* refactor: refact getFamilyMemberProfiles method

* style: code cleanup

* feat: delete family dependency in member

* feat: seperate getFamilyCreatedAt API

* style: change default value in getFamilyMemberProfiles

* style: delete unused annotation

* refactor: refact findFamilyCreatedAt method

* style: rename method for getFamilyMembersProfiles

* refactor: refact createFamilyMemberProfiles logic

* fix: remove sorting for findFamilyMembersProfiles

* style: change getFamilyCreatedAt ResponseDto

* refact: createFamilyMemberProfiles method logic

* [OING-97] CalendarApi와 관련된 에러와 잘못된 설정 해결 (#54)

* fix: Add alias name at memberPost.count() to fix runtime QueryDSL query error

* refactor: Make param require false at CalendarApi

* chore: Add Swagger params description to explain type of CalendarApi

* feat: commenting out deleteMemberProfileImage method (#55)

* [OING-97] PR54로 구현한 티켓의 런타입 에러 해결을 위한 핫픽스... (#56)

* fix: Add alias name at memberPost.count() to fix runtime QueryDSL query error

* refactor: Make param require false at CalendarApi

* chore: Add Swagger params description to explain type of CalendarApi

* fix: Change MemberPostCountDTO type to Class to use the QueryDSL projections field instead of projections bean that occur runtime error

* fix: Add NoArgsContructor at MemberPostCountDTO to fix QueryDSL projections QBean runtime error (#57)

* [OING-76] feat: Post에 대한 반응 생성/삭제 구현 (#48)

* feat: add validate logic for createPostReaction

* feat: add createPostReaction API

* feat: add deletePostReaction API

* refactor: refact post reaction logic in controller

* refactor: refact findReaction logic in service

* fix: change FetchType Eager to Lazy

* [OING-94] fix: createPost 코드 개선 (#51)

* refactor: refact createPost code

* refactor: delete unused log

* feat: add DuplicatePostUploadException

* style: add comments for upload time validation

* refactor: convert time comparison logic to use LocalDateTime

* fix: fix postDate for Asia/Seoul

* refactor: refact PostResponse

* style: detail InvalidUploadTime Exception

* fix: remove extractLocalDate method

* style: correct image request dto example

* fix: fix validateUploadTime logic to ZonedDateTime

* [OING-95] feat: 카카오 인증(로그인) 기능 구현 (#52)

* feat: add kakao provider

* feat: implement kakao

* [OING-92] feat: 회원 탈퇴 API 구현 (#58)

* feat: add BaseAuditEntityWithDelete

* feat: add member delete basic logic

* feat: add findAllSocialMemberByMember method

* fix: fix updateDeletedAt()

* refact: delete updateDeletedAt method argument

* feat: add memberId PathVariable

* refactor: refact deleteMember logic

* feat: add memberId PathVariable in Put method

* fix: fix social login provider test

* [OING-100] feat: 내 정보 조회 API & MemberResponse 누락필드 추가 (#59)

* feat: move member response to function

* feat: add me api

* hotfix: fix page count issue (#60)

* [OING-102] hotfix: Family 초대 링크 기발급 경우 기존 링크 반환 (#61)

* feat: change emoji type name

* feat: implement post reaction api

* [OING-107] 임시 토큰 통한 회원가입 불가 이슈 해결 (#62)

* hotfix: add missing transactional

* [OING-108] feature: 응답값 없는 Operation의 기본 응답값 추가 (#63)

* feat: add memberdevice domain

* feat: add device api

* fix: change missing name

* [OING-109] feat: Member, MemberPost 엔티티에 imageKey 필드 추가 (#64)

* Revert "[OING-109] feat: Member, MemberPost 엔티티에 imageKey 필드 추가 (#64)"

This reverts commit 926f381.

* Revert "Revert "[OING-109] feat: Member, MemberPost 엔티티에 imageKey 필드 추가 (#64)""

This reverts commit 0bb818d.

* [OING-111] 새로운 형태의 Object storage url으로 인해 썸네일 url이 작동하지 못한 오류 해결 #65

* feat: add not found handler

* [OING-112] feat: 딥링크 API & 딥링크 가족 가입 API 구현 (#66)

* feat: add family join api

* feat: add deep link api

* feat: add join family feature

* Revert "feat: add not found handler"

This reverts commit 6bcdaa1.

* feat: handle 404

* [OING-113] refactor: 게시물 반응 전체 조회 응답 형식 수정 (#67)

* [OING-115] feat: 프로덕션용 설정 및 앱 키 기능 추가 (#68)

* feat: fix validation

* feat: config production-ready setups

* feat: add additional logging

* feat: add app version feature

* feat: changed log targets

* feat: change method not allowed exception

* [OING-120] hotfix: 내 가족만 게시물 조회 가능하게 & 앱 키 스웨거 추가 (#69)

* feat: add version filter toggle

* feat: add app version key in swagger

* feat: only query my family

* [OING-118] hotfix: 기회원가입자 재회원가입 방지 (#70)

* test: jwt 헤더 테스트 깨지는거 해결

* feat: prevent register if already member exists

* [OING-119] feat: Post content 공백 존재 검증 로직 추가 (#71)

* feat: add spacing validate logic in post

* style: change throw InvalidParameterException

* test: jwt 헤더 테스트 깨지는거 해결

---------

Co-authored-by: ChuYong <[email protected]>

* [OING-122] hotfix: post 등록 시, 내용 길이 검증 수정 (#73)

* [OING-121] refactor: 1차 MVP 코드 전체 정리 (#72)

* style: clean up code

* refactor: common module package cleanup

* refactor: family module package cleanup

* refactor: member module package cleanup

* refactor: post module package cleanup

* style: clean up code finally

* feat: remove asyncconfig

* refactor: refact post module class name

* [OING-122] hotfix: post 등록 시, 내용 길이 검증 수정 (#73)

* style: clean up code

* refactor: common module package cleanup

* refactor: family module package cleanup

* refactor: member module package cleanup

* refactor: post module package cleanup

* style: clean up code finally

* feat: remove asyncconfig

* refactor: refact post module class name

---------

Co-authored-by: jisu <[email protected]>
Co-authored-by: Jisu Lim <[email protected]>

* [OING-124] hotfix: 리프레시 api 작동 안함 해결 (#75)

* feat: add links to whitelisted url

* fix: change image key extraction logic (#74)

* [OING-125] hotfix: 유효하지 않은 토큰에 대해 401 예외 반환하는 핸들러 추가 (#76)

* hotfix: add handleAuthenticationFailedException

* style: change log message

* [OING-125] hotfix: PR76 핫픽스 (#77)

* hotfix: add handleAuthenticationFailedException

* style: change log message

* fix: change 401 to HttpStatus UNAUTHORIZED

* [OING-125] hotfix: PR76 핫픽스 2 (#78)

* [OING-127] feat: 구글 oAuth 추가 (#79)

* [OING-128] refactor: 가족 멤버 프로필 조회 시, 탈퇴한 회원은 응답에서 제외되도록 수정 (#80)

* feat: add DeletedAtIsNull to findFamilyMembers

* test: fix SocialLoginProviderTest

* style: delete unused lines

* [OING-129] Widget용 이미지 압축 기능 추가 (#82)

* [OING-130] feat: postDate 컬럼 삭제 및 가족이 없는 멤버에 대해 가족 프로필 조회 시, 예외 반환 로직 추가 (#83)

* feat: delete postDate column in post

* style: change method name

* feat: add delete postdate column sql

* fix: fix existsByMemberIdAndCreatedAt method

* test: fix memberPost test

* feat: add FamilyNotFoundException

* [OING-129] OING-129 의 컴파일 에러 핫픽스 (#84)

* feat: Add getKBImageUrlGenerator at OptimizedImageUrlGenerator and Append image optimizing code at getSingleRecentFamilyPostWidget at WidgetController

* fix: Hotfix compile error

* [OING-129] hotfix: OING-129 PR의 핫픽스가 머지되는 중에 꼬인 에러 해결 (#85)

* feat: Add getKBImageUrlGenerator at OptimizedImageUrlGenerator and Append image optimizing code at getSingleRecentFamilyPostWidget at WidgetController

* fix: Hotfix compile error

* fix: Fix wrongly twisted merged getKBImageUrlGenerator code

* chore: update swarm service name

* [OING-129] OING-129 PR에서 이미지 최적화 쿼리를 변경 (#86)

* feat: Add getKBImageUrlGenerator at OptimizedImageUrlGenerator and Append image optimizing code at getSingleRecentFamilyPostWidget at WidgetController

* fix: Hotfix compile error

* fix: Fix wrongly twisted merged getKBImageUrlGenerator code

* refactor: Change KB_IMAGE_OPTIMIZER_QUERY_STRING

* chore: update prod swarm service name

* [OING-131] 위젯 응답 객체에 게시자 이름 추가 (#87)

* test: add MemberControllerTest for change profile info

* test: add MemberControllerTest for get Member Profile info

* test: add MemberControllerTest for memberDelete

* test: add MemberControllerTest for exception and presignedUrl

* [OING-129] 이미지 최적화 빈의 NullPointerException 방지 (#88)

* [OING-104] test: 월간 캘린더 API 통합테스트 추가 (#81)

* feat: Add test code for getMonthlyCalendar of CalendarController

* fix: Fix calendar query that cant group the posts daily and Fix test code according to changed calendar query

* refactor: Change the integration test, CalendarControllerTest to CalendarApiTest

* fix: Add fake token expiration value in applicaiton-test.yaml

* fix: Remove post_date column from meber_post insertion sql at CalenarApiTest

* test: add additional test for nickname validate

* test: add additional test for nickname validate

* fix: fix getThumbnailUrlGenerator typo

* hotfix: fix getThumbnailUrlGenerator typo (#90)

* [OING-135] hotfix: 닉네임 길이 제한 조건 수정 (#92)

* fix: fix validateMemberName condition

* feat: add/fix @Valid for DTO

* feat: add @notblank to CreateNewUserDto

* test: fix Nickname validate test

* test: add MemberControllerTest for change profile info

* test: add MemberControllerTest for get Member Profile info

* test: add MemberControllerTest for memberDelete

* test: add additional test for nickname validate

* test: add additional test for nickname validate

* fix: fix getThumbnailUrlGenerator typo

* hotfix: fix getThumbnailUrlGenerator typo (#90)

* [OING-135] hotfix: 닉네임 길이 제한 조건 수정 (#92)

* fix: fix validateMemberName condition

* feat: add/fix @Valid for DTO

* feat: add @notblank to CreateNewUserDto

* [OING-135] hotfix: 닉네임 길이 제한 조건 수정 (#92)

* fix: fix validateMemberName condition

* feat: add/fix @Valid for DTO

* feat: add @notblank to CreateNewUserDto

* test: fix Nickname validate test

* test: remove spy

---------

Co-authored-by: 송영민 (YeongMin Song) <[email protected]>
Co-authored-by: sckwon770 <[email protected]>
CChuYong added a commit that referenced this pull request Jan 18, 2024
* docs: add new properties to application local template

* fix: Fix broken integration test of CalendarApiTest due to changed FamilyApi (#96)

* [OING-126] test: 회원 정보수정/조회/탈퇴에 대한 단위 테스트 코드 추가 (#89)

* [OING-18] feat: 공통 모듈 구축하기 (#5)

* chore: add common module

* chore: add common module to workflow

* feat: add common exception classes

* feat: alter DomainException to non abstract class

* test: add DomainException unit test

* test: add ErrorResponse unit test

* chore: fix workflow annotations

* [OINT-19] feature: 스프링 시큐리티 설정 (#6)

* chore: change root project name

* feat: add SpringSecurityConfig

* feat: add auth handler filters

* feat: add JwtAuthenticationHandler with properties

* feat: add WebRequestInterceptor with filters

* chore: change root project name

* feat: add SpringSecurityConfig

* feat: add auth handler filters

* feat: add JwtAuthenticationHandler with properties

* feat: add WebRequestInterceptor with filters

* feat: change response to ErrorResponse

* feat: add WebExceptionHandler

* style: change line length under max line length

* style: change line length under max line length

* style: match line convention

* [OING-10] chore: code coverage를 위한 Jacoco 설정 (#7)

* chore: apply Jacoco for code coverage

* chore: exclude specific patterns from Jacoco code coverage

* chore: set required formats

* fix: Jacoco configuration by moving jacoco afterEvaluate

* [OING-23] chore: Jacoco 테스트 커버리지 범위에서 config 모듈 제외 (#8)

* [OING-24] chore: Swagger 환경 세팅 (#10)

* feat: add SwaggerConfig

* feat: add SwaggerConfig environment variable

* feat: exclude swagger-related requests from Interceptor path patterns

* style: change swagger title

* [OING-20] feat: JWT 토큰 관리 컴포넌트 생성 (#9)

* feat: add token properties classes

* feat: add token related domain classes

* feat: add token generator and impl

* feat: implement token generator with jwt

* feat: add JWT Authenticator

* test: add unit test for created classes

* [OING-26] chore: CI/CD 파이프라인 워크플로우 개선 (#15)

* [OING-27] chore: 배포 파이프라인 이후 슬랙 알림 보내기

* [OING-27] chore: 배포8] chore: PR시 테스트 커버리지 ì측정하기

* [OING-31] fix: SpringDocs (Swagger) 수리하기 (#18)

* fix: config fix for swagger

* docs: add default url path for swagger

* [OING-25] chore: NCP ObjectStorage 세팅 (#16)

* chore: add dependency for AWS S3

* chore: add NCP ObjectStorage Config

* feat: add File uploader

* test: add application.yaml for test

* test: add test code for uploadImage

* refactor: refact ObjectStorageConfig code

* refactor: change FileUploader for presignedUrl

* feat: add S3PreSignedUrlProvider

* test: add test code for presigned-url

* style: delete unused import statement

* delete: delete unused util file for test

* chore: exclude dto from jacoco test coverage

* style: delete redundant code

* refactor: refact ObjectStorageProperties file

* refactor: refact S3PreSignedUrlProvider code

* delete: delete unused file

* [OING-21] feat: 기본 oAuth & 멤버 인증 관련 모듈 추가 (#17)

* feat: create "POST /v1/auth/social" api

* feat: create interface of apple login service

* feat: create BaseAuditEntity

* feat: add IdentityGenerator and impl

* feat: add Member and SocialMember entity

* feat: add Member Register logic

* feat: add apple provider

* feat: report slack on error

* feat: only invoke slack on production

* chore: add slack webhook conf with local props

* feat: refactor yaml properties

* docs: add environment example

* feat: create "POST /v1/auth/social" api

* feat: create interface of apple login service

* feat: create BaseAuditEntity

* feat: add IdentityGenerator and impl

* feat: add Member and SocialMember entity

* feat: add Member Register logic

* feat: add apple provider

* feat: report slack on error

* feat: only invoke slack on production

* chore: add slack webhook conf with local props

* feat: refactor yaml properties

* docs: add environment example

* test: create test profile

* test: add unit test on domain module

* test: add object unit test codes

* test: add component test codes

* fix: override equals hashcode to check array

* fix: override tostring

* fix: remove setter for entity

* fix: not-null on BaseAuditEntity

* refactor: refactor codes

* test: remove setter test for entity

* [OING-46] feat: Member, Post 모듈 추가하기 (#20)

* feat: add family, post module

* chore: add workflow to check module changes

* [OING-32] refactor: S3 PresignedUrl 로직 리팩터링 (#19)

* refactor: refact PreSignedUrlResponse

* feat: add PreSignedUrlGenerator Interface

* fix: fix getPreSignedUrl Test

* chore: exclude dto from jacoco test coverage

* refactor: delete PreSignedUrlResponse DTO from config

* chore: add NCP ev to template file

* docs: update environment variables on README.md

* chore: fix Qdomains in jacocoTestReport

* feat: delete Qdomain

* feat: document PreSignedUrlResponse

* chore: add dependsOn test in jacocoTestReport

* [OING-50] refactor: Config 모듈명 Gateway로 변경 (#21)

* [OING-33] feat: DDL 작성 및 flyway 활성화 (#24)

* feat: add sql DDL script

* feat: enable flyway

* fix: change url datatype to TEXT

* feat: change emoji to ascii

* test: fix s3 test

* [OING-54] chore: mysql 환경변수 설정 및 프로덕션 환경설정 (#25)

* chore: add mysql password to env

* chore: add hikari configurations

* chore: disable springdoc in production

* chore: add application-dev profile

* chore: change ddl-auto to validate

* chore: test profile to apply h2

* [OING-57] feat: Member 도메인 entity & repository 구성 (#26)

* feat: add entitites for member domain

* feat: change BaseAuditEntity to extend BaseEntity

* [OING-57] hotfix: Member 도메인 entity & repository 구성 오타 (#27)

* [OING-47] feat: Auth 리프레시 API 추가및 경로 변경 (#22)

* docs: add more description and example to api docs

* feat: add refresh token logic

* feat: add refresh token validation logic

* style: fixed line style

* test: add test code to new dto

* [OING-32] refactor: S3 PresignedUrl 로직 리팩터링 (#19)

* refactor: refact PreSignedUrlResponse

* feat: add PreSignedUrlGenerator Interface

* fix: fix getPreSignedUrl Test

* chore: exclude dto from jacoco test coverage

* refactor: delete PreSignedUrlResponse DTO from config

* chore: add NCP ev to template file

* docs: update environment variables on README.md

* chore: fix Qdomains in jacocoTestReport

* feat: delete Qdomain

* feat: document PreSignedUrlResponse

* chore: add dependsOn test in jacocoTestReport

* [OING-50] refactor: Config 모듈명 Gateway로 변경 (#21)

* docs: add more description and example to api docs

* feat: add refresh token logic

* feat: add refresh token validation logic

* style: fixed line style

* test: add test code to new dto

* feat: add new temporary token

* feat: add temporary token creation logic

* feat: add register flow logic

* feat: change api route to /register

* refactor: add custom fromString on enum classes

---------

Co-authored-by: Jisu Lim <[email protected]>
Co-authored-by: sckwon770 <[email protected]>

* [OING-40] feat: Feed부분 API 설계하기 (#23)

* feat: add Pagination Response and DTO

* test: add dto, response test code

* feat: add PostFeedController

* fix: change package issue

* feat: implement mock logic

* test: fix test

* test: add test to PostFeedResponse

* feat: add Member API

* [OING-58] feat: MemberPost 도메인 entity & repository 구성 (#28)

* feat: add MemberPost Entity

* feat: add MemberPostReaction Entity

* feat: add MemberPostComment Entity

* feat: add Member module dependency

* feat: add fetchType to Entity field

* feat: add Repository in post module

* chore: delete member dependency in post module

* test: add domain test in MemberPost module

* feat: add index in post table

* fix: fix mappedBy in MemberPost

* test: fix test error in MemberTest

* fix: fix field in MemberPost domain

* [OING-40] feature: API 경로 변경 및 Response DTO 변경 (#33)

* feat: change api route and controller name

* docs: update api docs

* feat: add hasNext to PaginationResponse

* [OING-62] feat: 가족 구성원 Profile 조회 API 설계 (#29)

* feat: add FamilyMemberProfileResponse DTO

* feat: add getFamilyMemberProfile API

* test: add FamilyMemberProfileResponseTest

* refactor: move getFamilyMemberProfile to member module

* refactor: move FamilyMemberProfileResponse to member module

* style: delete unused file

* feat: add Pagination Response and DTO

* refactor: cherry-pick PaginationDTO

---------

Co-authored-by: ChuYong <[email protected]>

* [Suggestion] chore: PR 작성 자동화 (#32)

* chore: Add the workflos to automate the pointless writing pr template works

* chore: Add last empty line into workflow, pr.yaml

* chore: Add base-branch-regex

* fix: Fix base-branch-regex to constraint branch condition

* [OING-56] feat: Family 모듈 구성 (#31)

* [OING-41] feat: 금일 피드 업로드 여부 조회 API 추가 (#30)

* feat: Add the mock api - getIsTodayFeedUploadedByUserId

* fix: Fix wrong parameter annotation on getIsTodayFeedUploadedByUserId

* refactor: Refactor fetchDailyFeeds api whose scope is ME according to code review

* refactor: Refactor make mock api to response variously

* feat: Add AuthenticationHolder

* chore: Add the comment using TokenAuthenticationHolder

* chore: Exclude QueryDSL Qdomains from git

* chore: Organize module directory structure

* fix: Fix compile error at MemberController

* chore: Exclude .env file from git

* [OING-66] feat: PresignedUrl 요청 API 구현 (#35)

* feat: add S3presignedUrl API for image upload

* refactor: add RequiredArgsConstructor in PostController

* style: modify test code with error

* refactor: refact PresignedUrl logic

* fix: fix requestPresignedUrl http method

* style: rename requestPresignedUrl uri

* [OING-63] feat: 1차 와이어프레임 API 설계 (#34)

* feat: add family api spec

* feat: add member api sepc

* feat: add post create logic

* feat: add calendar query api

* feat: add post query api

* feat: add temporary token generate api

* feat: change api url

* feat: add reaction deletion api

* hotfix: remove unused import

* [OING-73] feat: family, post api mock 구현 (#37)

* feat: mock family api

* feat: mock post api

* feat: add sort parameter

* docs: add description

* hotfix: add missing parameter

* [OING-71] feat: 회원정보 수정 API 모킹 (#38)

* feat: add updateMember mock api

* feat: add updateMember mock api

* [OING-67] feat: 피드 업로드 API 모킹 (#36)

* feat: add V2__modify_Post DDL script

* feat: modify column in Post domain

* feat: add createPost mock API

* test: fix failed test due to added column

* refactor: refact S3 presignedUrl Api

* refactor: delete unused memberId param in requestPresignedUrl

* refactor: change ResponseEntity in requestPresignedUrl

* refactor: refact Postmodule code

* refactor: refact S3PreSignedUrlProvider

* test: fix S3PreSignedUrlProviderTest code

* style: change ResponseEntity to DTO

* feat: correct merge conflicts

* feat: add validation for CreatePostRequest

* refact: add validateContent method

---------

Co-authored-by: 송영민 (YeongMin Song) <[email protected]>

* [OING-68] feat: Post Reaction API 모킹 (#40)

* feat: add PostReaction mock API

* feat: change PostReaction DTO name

* feat: change reactToPost API name

* [OING-83] 회원 탈퇴 API 모킹 (#41)

* feat: add deleteMember mock api

* feat: delete DeleteMemberRequest dto

* feat: change deleteMember mock api logic

* style: delete /v1/members uri in url-whitelists

* [OING-88] feat: Emoji Enum 타입으로 변경 (#43)

* feat: add Emoji Enum Class

* fix: fix emoji logic

* test: fix test due to EnumType

* [OING-84] feat: Widget API 구현 (#42)

* feat: Add OptimizedImageUrlProvider component at gateway

* feat: Add the code of service and repository for calendar controller

* feat: Move Calendar controller to gateway modules and Impl getMonthlyCalendar request

* refactor: Refactor MemberPostRepository to make method name simply rather than giving meaning in detail

* feat: Impl getWeeklyCalendar requst and Substract the dupicated code lines from calendar requests

* fix: Remove the code to substract 1 day from end date at calenar request, considering between operator

* chore: Fix head branch regex for pr template automation workflow

* feat: Add api spec for the single recent family widget

* refactor: Exclude family concept from MemberPostService, MemberPostRepository

* feat: Impl getSingleRecentFamilyPostWidget request

* refactor: Rename memberId to myId

* refactor: Change the type of week paramter of getWeeklyCalendar request to Long

* refactor: Make the date parameters of CalendarCotroller required true

* chore: Add test coverage excluding pattern **.DTO*

* fix: Add cdn value  at test application yml

* refactor: Refactor for loop code to map post to calendar to functional code

* refactor: Break the line over 120 characters

* refactor: Refactor the complex JPQL code of MemberPostRepository to QueryDSL

* refactor: Change the type of paramters of MemberPost code

* refactor: Remove implementation class usage, not interface of OptimizedImageUrl component

* [OING-70] feat: Calendar API 구현 (#39)

* feat: Add OptimizedImageUrlProvider component at gateway

* feat: Add the code of service and repository for calendar controller

* feat: Move Calendar controller to gateway modules and Impl getMonthlyCalendar request

* refactor: Refactor MemberPostRepository to make method name simply rather than giving meaning in detail

* feat: Impl getWeeklyCalendar requst and Substract the dupicated code lines from calendar requests

* fix: Remove the code to substract 1 day from end date at calenar request, considering between operator

* chore: Fix head branch regex for pr template automation workflow

* refactor: Exclude family concept from MemberPostService, MemberPostRepository

* refactor: Rename memberId to myId

* refactor: Change the type of week paramter of getWeeklyCalendar request to Long

* refactor: Make the date parameters of CalendarCotroller required true

* chore: Add test coverage excluding pattern **.DTO*

* fix: Add cdn value  at test application yml

* refactor: Refactor for loop code to map post to calendar to functional code

* refactor: Break the line over 120 characters

* refactor: Refactor the complex JPQL code of MemberPostRepository to QueryDSL

* refactor: Change the type of paramters of MemberPost code

* refactor: Remove implementation class usage, not interface of OptimizedImageUrl component

---------

Co-authored-by: 송영민 (YeongMin Song) <[email protected]>

* [OING-90] hotfix: MemberService 및 WidgetController에서의 컴파일 에러 (#44)

* hotfix: update swagger header

* hotfix: add token security

* [OING-75] feat: Post 작성 API 구현 (#45)

* [OING-79] feat: 멤버 닉네임/프로필 이미지 수정 API 구현 (#47)

* feat: add updateMember API

* feat: add requestPresignedUrl for profileImg API

* feat: add transactional annotation

* style: remove getMember method

* refactor: split existing logic into two separate APIs

* feat: add deleteMemberProfileImage method

* style: update imageUrl RequestDTO example

* style: change method name for delete ObjectStorage image

* refactor: add validateName logic

* feat: change queryString to requestBody

* feat: move validateName method

* feat: add Async to deleteImage logic

* style: add newline

* [OING-77] feat: Post 조회 관련 API 구현 (#50)

* feat: implement GET v1/posts

* feat: implement search posts

* style: remove unused import

* refactor: change to query-dsl style

* [OING-81] feat: v1/families 관련 API 구현 (#49)

* feat: implement POST /v1/families

* feat: implement GET /v1/families/invitation-link

* feat; change method name

* feat: change link to constant

* feat: change to new exception class

* [OING-80] feat: 멤버 정보 조회 관련 및 가족 그룹 생성일 조회 API 구현 (#46)

* feat: add getFamilyMemberProfile API

* feat: add getMember API

* feat: add familyCreatedAt in FamiyMemberProfilesResponse DTO

* refactor: refact getFamilyMemberProfiles method

* style: code cleanup

* feat: delete family dependency in member

* feat: seperate getFamilyCreatedAt API

* style: change default value in getFamilyMemberProfiles

* style: delete unused annotation

* refactor: refact findFamilyCreatedAt method

* style: rename method for getFamilyMembersProfiles

* refactor: refact createFamilyMemberProfiles logic

* fix: remove sorting for findFamilyMembersProfiles

* style: change getFamilyCreatedAt ResponseDto

* refact: createFamilyMemberProfiles method logic

* [OING-97] CalendarApi와 관련된 에러와 잘못된 설정 해결 (#54)

* fix: Add alias name at memberPost.count() to fix runtime QueryDSL query error

* refactor: Make param require false at CalendarApi

* chore: Add Swagger params description to explain type of CalendarApi

* feat: commenting out deleteMemberProfileImage method (#55)

* [OING-97] PR54로 구현한 티켓의 런타입 에러 해결을 위한 핫픽스... (#56)

* fix: Add alias name at memberPost.count() to fix runtime QueryDSL query error

* refactor: Make param require false at CalendarApi

* chore: Add Swagger params description to explain type of CalendarApi

* fix: Change MemberPostCountDTO type to Class to use the QueryDSL projections field instead of projections bean that occur runtime error

* fix: Add NoArgsContructor at MemberPostCountDTO to fix QueryDSL projections QBean runtime error (#57)

* [OING-76] feat: Post에 대한 반응 생성/삭제 구현 (#48)

* feat: add validate logic for createPostReaction

* feat: add createPostReaction API

* feat: add deletePostReaction API

* refactor: refact post reaction logic in controller

* refactor: refact findReaction logic in service

* fix: change FetchType Eager to Lazy

* [OING-94] fix: createPost 코드 개선 (#51)

* refactor: refact createPost code

* refactor: delete unused log

* feat: add DuplicatePostUploadException

* style: add comments for upload time validation

* refactor: convert time comparison logic to use LocalDateTime

* fix: fix postDate for Asia/Seoul

* refactor: refact PostResponse

* style: detail InvalidUploadTime Exception

* fix: remove extractLocalDate method

* style: correct image request dto example

* fix: fix validateUploadTime logic to ZonedDateTime

* [OING-95] feat: 카카오 인증(로그인) 기능 구현 (#52)

* feat: add kakao provider

* feat: implement kakao

* [OING-92] feat: 회원 탈퇴 API 구현 (#58)

* feat: add BaseAuditEntityWithDelete

* feat: add member delete basic logic

* feat: add findAllSocialMemberByMember method

* fix: fix updateDeletedAt()

* refact: delete updateDeletedAt method argument

* feat: add memberId PathVariable

* refactor: refact deleteMember logic

* feat: add memberId PathVariable in Put method

* fix: fix social login provider test

* [OING-100] feat: 내 정보 조회 API & MemberResponse 누락필드 추가 (#59)

* feat: move member response to function

* feat: add me api

* hotfix: fix page count issue (#60)

* [OING-102] hotfix: Family 초대 링크 기발급 경우 기존 링크 반환 (#61)

* feat: change emoji type name

* feat: implement post reaction api

* [OING-107] 임시 토큰 통한 회원가입 불가 이슈 해결 (#62)

* hotfix: add missing transactional

* [OING-108] feature: 응답값 없는 Operation의 기본 응답값 추가 (#63)

* feat: add memberdevice domain

* feat: add device api

* fix: change missing name

* [OING-109] feat: Member, MemberPost 엔티티에 imageKey 필드 추가 (#64)

* Revert "[OING-109] feat: Member, MemberPost 엔티티에 imageKey 필드 추가 (#64)"

This reverts commit 926f381.

* Revert "Revert "[OING-109] feat: Member, MemberPost 엔티티에 imageKey 필드 추가 (#64)""

This reverts commit 0bb818d.

* [OING-111] 새로운 형태의 Object storage url으로 인해 썸네일 url이 작동하지 못한 오류 해결 #65

* feat: add not found handler

* [OING-112] feat: 딥링크 API & 딥링크 가족 가입 API 구현 (#66)

* feat: add family join api

* feat: add deep link api

* feat: add join family feature

* Revert "feat: add not found handler"

This reverts commit 6bcdaa1.

* feat: handle 404

* [OING-113] refactor: 게시물 반응 전체 조회 응답 형식 수정 (#67)

* [OING-115] feat: 프로덕션용 설정 및 앱 키 기능 추가 (#68)

* feat: fix validation

* feat: config production-ready setups

* feat: add additional logging

* feat: add app version feature

* feat: changed log targets

* feat: change method not allowed exception

* [OING-120] hotfix: 내 가족만 게시물 조회 가능하게 & 앱 키 스웨거 추가 (#69)

* feat: add version filter toggle

* feat: add app version key in swagger

* feat: only query my family

* [OING-118] hotfix: 기회원가입자 재회원가입 방지 (#70)

* test: jwt 헤더 테스트 깨지는거 해결

* feat: prevent register if already member exists

* [OING-119] feat: Post content 공백 존재 검증 로직 추가 (#71)

* feat: add spacing validate logic in post

* style: change throw InvalidParameterException

* test: jwt 헤더 테스트 깨지는거 해결

---------

Co-authored-by: ChuYong <[email protected]>

* [OING-122] hotfix: post 등록 시, 내용 길이 검증 수정 (#73)

* [OING-121] refactor: 1차 MVP 코드 전체 정리 (#72)

* style: clean up code

* refactor: common module package cleanup

* refactor: family module package cleanup

* refactor: member module package cleanup

* refactor: post module package cleanup

* style: clean up code finally

* feat: remove asyncconfig

* refactor: refact post module class name

* [OING-122] hotfix: post 등록 시, 내용 길이 검증 수정 (#73)

* style: clean up code

* refactor: common module package cleanup

* refactor: family module package cleanup

* refactor: member module package cleanup

* refactor: post module package cleanup

* style: clean up code finally

* feat: remove asyncconfig

* refactor: refact post module class name

---------

Co-authored-by: jisu <[email protected]>
Co-authored-by: Jisu Lim <[email protected]>

* [OING-124] hotfix: 리프레시 api 작동 안함 해결 (#75)

* feat: add links to whitelisted url

* fix: change image key extraction logic (#74)

* [OING-125] hotfix: 유효하지 않은 토큰에 대해 401 예외 반환하는 핸들러 추가 (#76)

* hotfix: add handleAuthenticationFailedException

* style: change log message

* [OING-125] hotfix: PR76 핫픽스 (#77)

* hotfix: add handleAuthenticationFailedException

* style: change log message

* fix: change 401 to HttpStatus UNAUTHORIZED

* [OING-125] hotfix: PR76 핫픽스 2 (#78)

* [OING-127] feat: 구글 oAuth 추가 (#79)

* [OING-128] refactor: 가족 멤버 프로필 조회 시, 탈퇴한 회원은 응답에서 제외되도록 수정 (#80)

* feat: add DeletedAtIsNull to findFamilyMembers

* test: fix SocialLoginProviderTest

* style: delete unused lines

* [OING-129] Widget용 이미지 압축 기능 추가 (#82)

* [OING-130] feat: postDate 컬럼 삭제 및 가족이 없는 멤버에 대해 가족 프로필 조회 시, 예외 반환 로직 추가 (#83)

* feat: delete postDate column in post

* style: change method name

* feat: add delete postdate column sql

* fix: fix existsByMemberIdAndCreatedAt method

* test: fix memberPost test

* feat: add FamilyNotFoundException

* [OING-129] OING-129 의 컴파일 에러 핫픽스 (#84)

* feat: Add getKBImageUrlGenerator at OptimizedImageUrlGenerator and Append image optimizing code at getSingleRecentFamilyPostWidget at WidgetController

* fix: Hotfix compile error

* [OING-129] hotfix: OING-129 PR의 핫픽스가 머지되는 중에 꼬인 에러 해결 (#85)

* feat: Add getKBImageUrlGenerator at OptimizedImageUrlGenerator and Append image optimizing code at getSingleRecentFamilyPostWidget at WidgetController

* fix: Hotfix compile error

* fix: Fix wrongly twisted merged getKBImageUrlGenerator code

* chore: update swarm service name

* [OING-129] OING-129 PR에서 이미지 최적화 쿼리를 변경 (#86)

* feat: Add getKBImageUrlGenerator at OptimizedImageUrlGenerator and Append image optimizing code at getSingleRecentFamilyPostWidget at WidgetController

* fix: Hotfix compile error

* fix: Fix wrongly twisted merged getKBImageUrlGenerator code

* refactor: Change KB_IMAGE_OPTIMIZER_QUERY_STRING

* chore: update prod swarm service name

* [OING-131] 위젯 응답 객체에 게시자 이름 추가 (#87)

* test: add MemberControllerTest for change profile info

* test: add MemberControllerTest for get Member Profile info

* test: add MemberControllerTest for memberDelete

* test: add MemberControllerTest for exception and presignedUrl

* [OING-129] 이미지 최적화 빈의 NullPointerException 방지 (#88)

* [OING-104] test: 월간 캘린더 API 통합테스트 추가 (#81)

* feat: Add test code for getMonthlyCalendar of CalendarController

* fix: Fix calendar query that cant group the posts daily and Fix test code according to changed calendar query

* refactor: Change the integration test, CalendarControllerTest to CalendarApiTest

* fix: Add fake token expiration value in applicaiton-test.yaml

* fix: Remove post_date column from meber_post insertion sql at CalenarApiTest

* test: add additional test for nickname validate

* test: add additional test for nickname validate

* fix: fix getThumbnailUrlGenerator typo

* hotfix: fix getThumbnailUrlGenerator typo (#90)

* [OING-135] hotfix: 닉네임 길이 제한 조건 수정 (#92)

* fix: fix validateMemberName condition

* feat: add/fix @Valid for DTO

* feat: add @notblank to CreateNewUserDto

* test: fix Nickname validate test

* test: add MemberControllerTest for change profile info

* test: add MemberControllerTest for get Member Profile info

* test: add MemberControllerTest for memberDelete

* test: add additional test for nickname validate

* test: add additional test for nickname validate

* fix: fix getThumbnailUrlGenerator typo

* hotfix: fix getThumbnailUrlGenerator typo (#90)

* [OING-135] hotfix: 닉네임 길이 제한 조건 수정 (#92)

* fix: fix validateMemberName condition

* feat: add/fix @Valid for DTO

* feat: add @notblank to CreateNewUserDto

* [OING-135] hotfix: 닉네임 길이 제한 조건 수정 (#92)

* fix: fix validateMemberName condition

* feat: add/fix @Valid for DTO

* feat: add @notblank to CreateNewUserDto

* test: fix Nickname validate test

* test: remove spy

---------

Co-authored-by: 송영민 (YeongMin Song) <[email protected]>
Co-authored-by: sckwon770 <[email protected]>

* fix: update filter condition

* [OING-142] feat: 댓글 기능 설계 & 구현 & 테스트 (#97)

* fix: fix generic response return issue

* feat: structure api document

* feat: update dto

* feat: implement crud

* feat: add some validations

* feat: add family validation

* test: add MemberPostCommentControllerTest

* test: add MemberPostCommentControllerTest

* test: add MemberPostCommentApiTest

* feat: add count to member post

* fix: update exception type

* [OING-143] feat: 회원탈퇴 이유 기능 추가 (#98)

* feat: add quit reason feature

* test: add MemberQuitReasonServiceTest

* test: add MemberApiTest with quit

* feat: change type to enum

* feat: allow multi cause

* test: fix test

* feat: add dayOfBirth in FamilyMemberProfileResponse (#103)

* [OING-148] feat: Post 삭제 기능 추가 (#102)

* feat: add DeleteMemberPost Api

* refactor: add EventListener for DeleteMemberPost

* [OING-147] feat: 리얼 이모지 테이블 클래스 및 리얼 이모지 API 틀 추가 (#101)

* chore: add real emoji tbl migration file

* feat: add RealEmoji Entity class

* feat: add RealEmojiApi class

* test: add additional field

* feat: add PostRealEmojiResponse

* feat: add RealEmoji Controller class

* fix: change MemberPostRealEmoji's realEmoji Type

* fix: change MemberPostRealEmoji's realEmoji relationship

* style: change realEmoji dto

* fix: delete BodyRequest in deleteRealEmoji API

* refactor: refact RealEmojiApi uri

* fix: fix comment saving issue

* [OING-144] feat: 가족 탈퇴 API 추가 (#99)

* [OING-105] feat: 캘린더 API를 위한 테스트 추가 (#104)

* feat: Add the integration test for weekly calendarApiTest

* feat: Add edge case of the integration test at CalendarApiTest

* feat: Add unit test for CalendarController

* feat: Add DataJpaTest for MemberPostRepositoryCustom methods for calendar

* refactor: Change variable name from User to Member

* [OING-151] feat: 회원의 리얼이모지 POST/PUT API 구현 (#105)

* feat: add requestPresignedUrl for RealEmoji

* feat: add MemberRealEmoji Post/Put API

* feat: add MemberRealEmoji post/put api test

* feat: add MemberRealEmoji post/put Integration test

* fix: fix MemberRealEmojiControllerTest

* test: add additional unit test code

* style: add line

* docs: README, LICENSE 추가

* fix: fix saved time issue

* [OING-156] refactor: 이미지의 예상되지 않은 url 패턴으로 인한 OptimizedImageProvider의 런타임 예외를 방지 (#108)

* [OING-146] feat: 현재 어플리케이션 최신버전 유무 API 추가 (#100)

* [OING-154] feat: 회원의 리얼이모지 조회 API 구현 (#109)

* test: fix createPostComment test

* feat: add getMemberRealEmoji api

* style: modify description

* test: add getMemberRealEmoji test

* test: add getMemberRealEmoji integration test

* [OING-161] test: 피드 리액션 등록/삭제/남긴 멤버 조회 기능 테스트 코드 작성 (#111)

* test: add MemberPostReactionController unit test

* test: add MemberPostReactionController integration test

* [OING-159] feat: 피드에 등록된 리얼이모지 리스트 조회 API 모킹 (#110)

* [OING-153] feat: 피드 리얼이모지 POST/DELETE API 구현 (#106)

* feat: add createPostRealEmoji Api

* feat: add deletePostRealEmoji Api

* test: add MemberPostRealEmoji unit test

* test: add MemberPostRealEmoji integration test

---------

Co-authored-by: 송영민 (YeongMin Song) <[email protected]>

* [OING-158] feat: 피드 리얼이모지 조회 API 구현 (#113)

* feat: add getMemberPostRealEmoji api

* style: change dto name

* refactor: refact getPostRealEmojiMembers code

* test: add MemberPostRealEmojiController get api unit test

* test: add MemberPostRealEmojiController get api integration test

* [OING-162] test: Post PresignedUrl/POST/DELETE 테스트 코드 추가 (#112)

* test: add MemberPostController test

* test: add MemberPostController integration test

* test: add MemberPostRepository test

---------

Co-authored-by: 송영민 (YeongMin Song) <[email protected]>
Co-authored-by: sckwon770 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ FEATURE 기능 추가 🔒 HOLD 머지하지 말고 잠시 홀드
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants