Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
711 commits
Select commit Hold shift + click to select a range
6b01cba
Fix: 종료일자가 먼 날짜부터 나오도록 수정
tl1l1l1s Feb 11, 2025
46e1e16
Merge branch 'dev' into feature/#117
tl1l1l1s Feb 11, 2025
469ad31
Merge pull request #129 from OtakuMap/feature/#117
tl1l1l1s Feb 11, 2025
7d38ee3
Fix: conflict 해결
tl1l1l1s Feb 11, 2025
2ec3ba2
Merge pull request #136 from OtakuMap/feature/#117
tl1l1l1s Feb 11, 2025
224b2a5
Merge dev branch into feature/#13
haerxeong Feb 11, 2025
385c54e
Merge pull request #133 from OtakuMap/feature/#13
haerxeong Feb 11, 2025
201cff2
Merge pull request #134 from OtakuMap/feature/#86
haerxeong Feb 11, 2025
a2f8f62
Revert "Feat: 후기 작성 API 구현"
haerxeong Feb 11, 2025
62ee510
Merge pull request #137 from OtakuMap/revert-133-feature/#13
haerxeong Feb 11, 2025
8078073
Refactor: isLiked로 변경
ParkSenn Feb 12, 2025
de25c2d
Feat: CurrentUser required=false 속성 추가
ParkSenn Feb 12, 2025
5679f34
Feat: api/map/** url Get 요청 비회원 허용 설정 추가
ParkSenn Feb 12, 2025
57bece1
Feat: @CurrentUser(required=false) 설정 추가
ParkSenn Feb 12, 2025
c651581
Feat: 비회원일 때 user에 null 반환하도록 변경
ParkSenn Feb 12, 2025
0f25bdb
Feat: 비회원일 때 isLiked에 false 대입
ParkSenn Feb 12, 2025
5b88991
Refactor: 안 쓰는 annotation 및 필드 삭제
ParkSenn Feb 12, 2025
8259808
Fix: 변경된 EventLocation 적용
haerxeong Feb 12, 2025
8a33154
Fix: 되돌리기
haerxeong Feb 11, 2025
826ceea
Feat: 저장한 루트가 새로 생성되지 않고 기존 것을 반환하도록 변경
Feb 12, 2025
3563c39
Feat: isFavorite -> isLiked 필드명 및 반환값 변경
Feb 12, 2025
1b65782
Feat: 저장한 루트가 새로 생성되지 않고 기존 것을 반환하도록 변경
starbea Feb 12, 2025
2f6c26b
Feat: isFavorite -> isLiked 필드명 및 반환값 변경
starbea Feb 12, 2025
3d751cf
Feat: HTTPS 적용
Feb 12, 2025
974f30c
Feat: HTTPS 적용
starbea Feb 12, 2025
6df1447
Fix: CORS 에러 해결을 위해 WebConfig에 배포된 프론트엔드 URL 추가
Feb 12, 2025
08c4b0b
Fix: CORS 에러 해결을 위해 WebConfig에 배포된 프론트엔드 URL 추가
starbea Feb 12, 2025
6e2e2fd
Merge branch 'dev' of https://github.com/OtaquMap/Otaqu_SB into featu…
ParkSenn Feb 12, 2025
f49a2fd
Feat: isLiked 판별 로직 exists로 통일
ParkSenn Feb 12, 2025
87ba95b
Merge pull request #139 from ParkSenn/feature/#138
ParkSenn Feb 12, 2025
41c8518
Feat: animationName 필드 삭제 및 이벤트 관련 애니 이름 가져오는 로직 수정
ParkSenn Feb 12, 2025
9f3f83e
Merge pull request #140 from OtakuMap/feature/#13
haerxeong Feb 12, 2025
035a58d
Feat: 이미지 가져오는 로직 수정
ParkSenn Feb 12, 2025
b41a828
Refactor: conflict 해결하고 dev pull
ParkSenn Feb 12, 2025
936dde6
Feat: Service 전체 리뷰 구하는 로직 수정
ParkSenn Feb 12, 2025
260f050
feature: 루트 제목도 반환할 수 있게 추가
Feb 12, 2025
26ddf3f
feature: 애니메이션 제목도 반환할 수 있게 추가
Feb 12, 2025
334192c
feature: 관련된 애니메이션이 없을 때 예외처리
Feb 12, 2025
7b112eb
Feat: 해시태그 관련 필드 AnimationReviewGroupDTO로 이동
ParkSenn Feb 12, 2025
e3d6285
Feat: dto 수정에 따른 Converter 수정
ParkSenn Feb 12, 2025
7ad20ca
Feat: Service에서 PlaceAnimation을 기준으로 애니메이션 관련 해시태그를 가져오도록 수정
ParkSenn Feb 12, 2025
4d23d7f
Merge pull request #148 from ParkSenn/feature/#147
ParkSenn Feb 12, 2025
9da2d2c
Feat: QueryDSL 구문에서 PlaceReviewPlace를 사용하도록 수정
ParkSenn Feb 12, 2025
3b35eec
Refactor: 전체 리뷰 리스트를 가져오는 로직을 PlaceReviewPlace를 사용하도록 수정
ParkSenn Feb 12, 2025
4a9c300
Feat: Ensure unique placeAnimation and store placeAnimationId in plac…
haerxeong Feb 13, 2025
1a297d8
Fix: PlaceReview에 PlaceAnimationId 저장되도록 수정
haerxeong Feb 13, 2025
d58b5fc
Refactor: 로그 삭제
ParkSenn Feb 13, 2025
bab2497
Merge pull request #152 from ParkSenn/feature/#149
ParkSenn Feb 13, 2025
cd90bcd
Merge dev to fetuare/#153
ParkSenn Feb 13, 2025
c87f40e
Feat: DTO에서 event/place id 삭제
ParkSenn Feb 13, 2025
2d605d9
Merge pull request #154 from ParkSenn/feature/#153
ParkSenn Feb 13, 2025
4697b2b
Fix: 저장된 장소 연관관계 수정
Feb 13, 2025
cd31d23
Feat: 루트 상세 정보 조회 API 로직 수정
Feb 13, 2025
bf1559e
Fix: 인기 이벤트 조회 API 랜덤 로직 변경
tl1l1l1s Feb 13, 2025
e10405e
Fix: 홈 화면 배너 API 랜덤 로직 변경
tl1l1l1s Feb 13, 2025
95bf9af
Fix: No sources given error 해결
tl1l1l1s Feb 13, 2025
78dffe6
Fix: 저장된 장소 연관관계 수정
starbea Feb 13, 2025
b0094d7
Feat: 루트 내 특정 장소 상세 정보 조회 API 로직 수정
starbea Feb 13, 2025
b0df899
Merge pull request #160 from OtakuMap/fix/#122
tl1l1l1s Feb 13, 2025
b2d972a
Merge pull request #156 from OtakuMap/feature/#13
haerxeong Feb 13, 2025
a1c919b
Feat: 이메일 수정 API 구현
haerxeong Feb 13, 2025
ceea21e
Refactor: 스웨거 설명 변경
haerxeong Feb 13, 2025
62a7904
Feat: 좋아요 누른 이벤트 시작 알림, 루트 저장 알림 전송 API 구현
haerxeong Feb 13, 2025
b836d8a
Refactor: 루트 저장 알림 전송 조건 변경
haerxeong Feb 13, 2025
5e7f7ce
Refactor: 루트 저장 알림 message 문구 수정
haerxeong Feb 13, 2025
8f62820
Fix: 루트 작성자에게 알림 전송되도록 수정
haerxeong Feb 13, 2025
5d9657e
Refactor: 루트 저장 알림 전송 성능 개선
haerxeong Feb 13, 2025
be884e3
Feat: @Scheduled 사용을 위해 @EnableScheduling 추가
haerxeong Feb 13, 2025
695c3f8
Feat: 회원가입 시 프로필로 기본 이미지 설정
Feb 14, 2025
db89706
Feat: 이벤트 한 줄 리뷰 수정 API 구현
Feb 14, 2025
328cb76
Feat: 지도에서 장소 및 이벤트 정보 보기 api 구현
tl1l1l1s Feb 14, 2025
fc4fe14
Feat: 이벤트 한 줄 리뷰 삭제 API 구현
Feb 14, 2025
25ffafd
Feat: 이벤트 한 줄 리뷰 수정, 삭제 API 구현
starbea Feb 14, 2025
f61fd8f
Chore: 패키지명 DTO to dto로 변경
Feb 14, 2025
faf6e0e
Feat: 명소 한 줄 리뷰 수정 API 구현
Feb 14, 2025
a0dcb87
Refactor: 이벤트 한 줄 리뷰 엔드포인트 수정
Feb 14, 2025
2baa2d2
Feat: 명소 한 줄 리뷰 삭제 API 구현
Feb 14, 2025
b3140c1
Feat: 회원가입 시 프로필로 기본 이미지 설정
starbea Feb 14, 2025
1bb2ace
Feat: 명소 한 줄 리뷰 수정, 삭제 API 구현
starbea Feb 14, 2025
a4f554c
Feat: 지도에서 장소 및 이벤트 정보 보기 api에 찜 여부 데이터 추가
tl1l1l1s Feb 14, 2025
776c018
feature: placeReview 엔티티 활용해서 animation 정보 받아오는 걸로 수정
Feb 14, 2025
f6aa2e3
Merge branch 'dev' into feature/#131-1
Kkimdoyeon Feb 14, 2025
9d6fbba
Feat: 회원가입 시 닉네임 랜덤 생성 추가
Feb 15, 2025
0620af0
refactor: 안 쓰는 메소드 삭제 및 converter 분리
Feb 15, 2025
826169d
Merge remote-tracking branch 'origin/feature/#131-1' into feature/#131-1
Feb 15, 2025
39e705d
Feat: 회원가입 시 닉네임 랜덤 생성
starbea Feb 15, 2025
a10b861
Fix: Redis 비밀번호 설정 추가
Feb 15, 2025
b5583c3
Fix: Redis 비밀번호 설정 추가
starbea Feb 15, 2025
ee3fc1b
Feat: RouteId를 PlaceReview 또는 EventReview에서 받아올 수 있도록 수정
Feb 15, 2025
e05e409
Style: isFavorite 변수명 isLiked로 수정
tl1l1l1s Feb 15, 2025
3128a11
Feat: 현재 진행 중인 event만 반환하도록 수정
tl1l1l1s Feb 15, 2025
2ac7cd0
Merge pull request #161 from OtakuMap/feature/#36
haerxeong Feb 15, 2025
ea94525
Merge pull request #162 from OtakuMap/feature/#135
haerxeong Feb 15, 2025
e8a38fd
Merge branch 'dev' into feature/#131-1
Kkimdoyeon Feb 15, 2025
3db781f
Merge pull request #151 from OtakuMap/feature/#131-1
Kkimdoyeon Feb 15, 2025
6cae01c
Fix: 오타 수정
Feb 15, 2025
b97c2aa
Refactor: Place 이미지 제거 및 Service method 리팩토링
tl1l1l1s Feb 15, 2025
733d201
Merge branch 'dev' into feature/#150
tl1l1l1s Feb 15, 2025
7856d58
Merge pull request #169 from OtakuMap/feature/#150
tl1l1l1s Feb 15, 2025
092cfd9
Refactor: Event Review Service 명칭 수정
tl1l1l1s Feb 16, 2025
58786f7
Refactor: Handler 수정 및 유저 데이터 추가, 명소 한 줄 리뷰 api에 데이터가 없는 경우 빈 리스트를 반환…
tl1l1l1s Feb 16, 2025
c62b7c6
Refactor: 인증 필요 없는 api 추가
tl1l1l1s Feb 16, 2025
07ed72c
Refactor: Review Converter 추가 및 이미지 처리 수정
tl1l1l1s Feb 16, 2025
8a3fb21
Refactor: Event 저장하기 api에서 이미 저장된 event일 경우의 에러 처리 추가
tl1l1l1s Feb 16, 2025
ccd839c
Refactor: Review Controller response를 inline하여 단순화
tl1l1l1s Feb 16, 2025
b2d55c0
Feat: 저장한 이벤트 삭제 API 수정
Feb 16, 2025
64cd21a
Feat: 저장한 이벤트 삭제 API 수정
starbea Feb 16, 2025
b83e2cf
Feat: 카카오 로그인 시 이름 대신 닉네임으로 가져오도록 임시 변경
Feb 16, 2025
be2eb97
Feat: 애니메이션 저장 시 해시태그도 같이 저장
Feb 16, 2025
d18afa7
Feat: Animation : HashTag = N:M로 변경
Feb 16, 2025
88adfde
Chore: 해시태그 변경에 따라 기존 API 주석 처리
Feb 16, 2025
c379d88
Feat: 리뷰 작성하기 수정
Feb 16, 2025
4463672
Feat: Animation : 이벤트/장소 리뷰 = 1 : N 으로 변경
Feb 16, 2025
bfab449
Feat: 루트 내 특정 장소 상세 정보 조회 API에서 place 가져오는 방법 변경
Feb 16, 2025
4148c55
Chore: 안 쓰는 메서드 삭제
Feb 16, 2025
0e1c85f
Feat: 후기 작성 시 이미지 필수 X로 변경
Feb 16, 2025
d181a89
Feat: 카카오 로그인 시 이름 대신 닉네임으로 가져오도록 임시 변경
starbea Feb 16, 2025
507ade7
Refactor: Service 분리
tl1l1l1s Feb 16, 2025
af76908
Merge pull request #175 from OtakuMap/refactor/#174
tl1l1l1s Feb 16, 2025
3e98276
Merge branch 'dev' into feature/#180
starbea Feb 16, 2025
ef46b90
Feat: 전체적으로 수정
starbea Feb 16, 2025
194e3f3
Feature: 결제 기능과 관련된 기본 설정 및 entity
Feb 16, 2025
e2af2c3
Feat: 진행 중인 이벤트 api에 isLiked 데이터 추가
tl1l1l1s Feb 16, 2025
f171d1b
Feat: 특정 장소 전체 후기 조회 기능의 애니메이션 해시태그 로직 수정
ParkSenn Feb 16, 2025
317af29
Feat: 이벤트/작품명 지도 검색 기능의 애니메이션 해시태그 로직 수정
ParkSenn Feb 16, 2025
43a8545
Comment: 주석 추가
ParkSenn Feb 16, 2025
3335cb5
Merge pull request #188 from ParkSenn/feature/#185
ParkSenn Feb 16, 2025
908d1af
Merge pull request #186 from OtakuMap/feature/#184
tl1l1l1s Feb 17, 2025
576e07d
Refactor: pointAfterCharge 삭제
Feb 17, 2025
458250f
Merge pull request #183 from OtakuMap/feature/#170
Kkimdoyeon Feb 17, 2025
44ec84b
Revert "Feat: 결제 기능과 관련된 기본 설정 및 entity"
tl1l1l1s Feb 17, 2025
c164d31
Merge pull request #190 from OtakuMap/revert-183-feature/#170
tl1l1l1s Feb 17, 2025
eeeda73
feature: 구매하기 기능 기본 entity & enum
Feb 17, 2025
ba45f03
Feat: 저장된 장소 상세 조회 API 수정
Feb 17, 2025
751ddbe
Feat: 루트 내 특정 장소 상세 정보 조회 API 수정
Feb 17, 2025
9d9cc42
Feat: 저장된 장소 상세 조회 API, 루트 내 특정 장소 상세 정보 조회 API 수정
starbea Feb 17, 2025
d5825fa
Feat: 저장한 장소 삭제 API 구현- 지도창에서 하트 누르기
Feb 17, 2025
c32b819
Feat: 저장한 장소 삭제 API 구현- 지도창에서 하트 누르기
starbea Feb 17, 2025
2380987
feature: cors 추가
Feb 17, 2025
897758d
Merge pull request #193 from OtakuMap/feature/#170-1
Kkimdoyeon Feb 17, 2025
ec69927
Feat: 이벤트 한줄리뷰 좋아요/싫어요 API 구현
haerxeong Feb 17, 2025
5edd3ee
Refactor: DTO -> dto 디렉토리명 변경
haerxeong Feb 17, 2025
b1a698a
Refactor: 지도에서 장소 및 이벤트 정보 보기 API 해시태그 관련 로직 수정 및 애니메이션 관련 데이터 추가
tl1l1l1s Feb 18, 2025
e501c81
Refactor: 이미지 파일 url만 반환하도록 수정
tl1l1l1s Feb 18, 2025
eb08983
Feat: 구매하기 기능 entity 및 enum
tl1l1l1s Feb 18, 2025
2d20c2e
Feat: 소셜 로그인 시 프로필로 기본 이미지 설정
Feb 18, 2025
7ee39a4
Feat: 소셜 로그인 시 프로필로 기본 이미지 설정
starbea Feb 18, 2025
d8375a2
Merge pull request #197 from OtakuMap/feature/#189
haerxeong Feb 18, 2025
96193bc
Merge pull request #199 from OtakuMap/feature/#170-2
tl1l1l1s Feb 18, 2025
838ee51
feature: 결제 검증 api 구현
Feb 18, 2025
097c72a
Merge pull request #202 from OtakuMap/feature/#170-1
Kkimdoyeon Feb 18, 2025
9361ecb
feature: override 안되어있어서 추가
Feb 18, 2025
0dcfa0d
Feat: 포인트 충전 내역 확인 API 구현
Feb 18, 2025
834810b
Feat: 포인트 충전 내역 확인 API 구현
starbea Feb 18, 2025
b30691e
feature: 포인트 충전 api 구현
Feb 18, 2025
5e229b2
Chore: unused import 삭제
Feb 18, 2025
bf9dab6
Feat: 포인트 충전 내역 확인 api
Feb 18, 2025
b817597
Feat: 거래 내역 조회 API
tl1l1l1s Feb 18, 2025
a65e832
Merge pull request #198 from OtakuMap/refactor/#187
tl1l1l1s Feb 18, 2025
5e2d518
Feat: 포인트 잔액 조회 API
tl1l1l1s Feb 18, 2025
10cac21
Refactor: API method 수정
tl1l1l1s Feb 18, 2025
55da60c
Merge pull request #204 from OtakuMap/feature/#170-2
tl1l1l1s Feb 18, 2025
6886bb4
Refactor: API method 수정
tl1l1l1s Feb 18, 2025
42a2fbf
Feat: 포인트 충전 api
Feb 18, 2025
c6a7e1d
Feat: deploy.yml 수정
Feb 18, 2025
ea372b0
Merge pull request #205 from OtakuMap/feature/#170-4
tl1l1l1s Feb 18, 2025
9bb4dd3
Refactor: 명소 한 줄 리뷰 목록 조회 API 반환 데이터 수정
tl1l1l1s Feb 18, 2025
3fa973f
Merge pull request #208 from OtakuMap/refactor/#207
tl1l1l1s Feb 18, 2025
09f5341
Feat: 결제 검증 api .. -> 결제 정보가 없다는 오류
Feb 18, 2025
80a23a4
Feat: Error status 추가
ParkSenn Feb 18, 2025
1170580
Merge branch 'dev' into feature/#170-1
Kkimdoyeon Feb 18, 2025
bad0b04
Feat: 이벤트 이벤트명/작품명으로 검색 repository 구현
ParkSenn Feb 18, 2025
088c8a3
Feat: Service 구현
ParkSenn Feb 18, 2025
5d3b075
Feat: 이벤트/작품명 검색 controller 구현
ParkSenn Feb 18, 2025
a9d873f
Feat: 후기 구매 API 구현
tl1l1l1s Feb 18, 2025
87f05e4
Feat: 후기 상세 조회 API price 데이터 반환 추가
tl1l1l1s Feb 18, 2025
f91dc36
Merge pull request #210 from ParkSenn/feature/#206
ParkSenn Feb 18, 2025
7f2d2f9
Refactor: 판매자 point 객체가 없는 경우 수정
tl1l1l1s Feb 19, 2025
d5d4c78
Refactor: 후기 구매 API 수정사항 반영
tl1l1l1s Feb 19, 2025
f299c7c
Merge pull request #211 from OtakuMap/feature/#170-5
tl1l1l1s Feb 19, 2025
a23543f
Fix: 한줄 리뷰 entity에 @OnDelete 추가
haerxeong Feb 19, 2025
950584c
Fix: event_reaction 테이블에 review 올바르게 저장
haerxeong Feb 19, 2025
7b93e35
Refactor: 이벤트 반응 테이블 이름 수정
haerxeong Feb 19, 2025
4c5f5be
Refactor: cascade 방식 수정
haerxeong Feb 19, 2025
989915e
Merge pull request #213 from OtakuMap/fix/#212
haerxeong Feb 19, 2025
d722dae
Feat: 비밀번호 변경 API 구현
haerxeong Feb 19, 2025
e715f9d
Refactor: Use encodePassword method for password updates
haerxeong Feb 19, 2025
91cd4fe
Merge pull request #216 from OtakuMap/feature/#215
haerxeong Feb 19, 2025
caa5fa0
Fix: 결제 검증 api 에러 해결
Feb 19, 2025
3f8848e
Merge remote-tracking branch 'origin/feature/#170-1' into feature/#170-1
Feb 19, 2025
6ca48c2
Merge branch 'dev' into feature/#170-1
Kkimdoyeon Feb 19, 2025
22dece0
Chore: 불필요한 공백&import문 삭제
Feb 19, 2025
a7faf9e
Merge remote-tracking branch 'origin/feature/#170-1' into feature/#170-1
Feb 19, 2025
748259a
Chore: 쓰지 않는 메소드 삭제
Feb 19, 2025
02106f4
Merge pull request #209 from OtakuMap/feature/#170-1
Kkimdoyeon Feb 19, 2025
8ec754d
Feat: 유저 개인정보 조회 API 호출 시 후기 후원금 내역 조회 가능하게 변경
tl1l1l1s Feb 19, 2025
90ca995
Merge pull request #218 from OtakuMap/feature/#170-6
tl1l1l1s Feb 19, 2025
66dc88f
Refactor: 내 후기 조회 시 이벤트 리뷰도 조회
haerxeong Feb 19, 2025
45d4d5d
Refactor: 주석 정리
haerxeong Feb 19, 2025
ed319b4
Refactor: 내 후기 전체 삭제 시 이벤트 리뷰도 포함
haerxeong Feb 19, 2025
ef1c70f
Refactor: 내 후기 비어있는 경우 예외처리
haerxeong Feb 19, 2025
82b847a
Refactor: 리뷰 작성 request에 열람 범위 포함
haerxeong Feb 19, 2025
db6faab
Feat: 후원하기 알림 생성 구현
haerxeong Feb 19, 2025
9568ad6
Feat: 후기 작성에 열람범위 설정
haerxeong Feb 19, 2025
4d984c5
Refactor: import 정리
haerxeong Feb 19, 2025
8051b5e
Fix: 결제 검증 & 포인트 충전 api
Feb 19, 2025
ee6f172
Refactor: 반환 형식 수정
Feb 19, 2025
9582893
Feature: order 테이블에 BaseEntity 추가
Feb 19, 2025
982b1dc
Refactor: 루트저장 알림 빈도 수정
haerxeong Feb 19, 2025
8b147cc
Feat: 리뷰와 루트 1:N 관계로 수정 및 후기 작성할 때 작성자 여부 true되게 수정
Feb 19, 2025
3180139
Chore: unused import문 삭제
Feb 19, 2025
2aa41db
Merge pull request #222 from OtakuMap/feature/#170-1
Kkimdoyeon Feb 19, 2025
b6d9b80
Merge pull request #220 from OtakuMap/refactor/#217
haerxeong Feb 20, 2025
d6fa9e5
Merge pull request #223 from OtakuMap/feature/#221
haerxeong Feb 20, 2025
ed9fb8c
Fix: 알림 설정 변경 API가 정상 작동하지 않는 문제 수정
haerxeong Feb 20, 2025
94f9615
Refactor: 구매 로직 변동에 따른 현재 포인트 반환 API 로직 변경
tl1l1l1s Feb 20, 2025
97575ee
Feat: 입력받은 placeId로 변경되도록 수정
Feb 20, 2025
6761171
Merge pull request #227 from OtakuMap/feature/#170-6
tl1l1l1s Feb 20, 2025
aaaf417
Feat: 입력받은 placeId로 변경되도록 수정
starbea Feb 20, 2025
66c7907
Feat: 특정 여행 후기 조회 & 그냥 루트 상세 정보 조회 (작성자 여부가 true인 리뷰 정보를 불러오게 수정)
Feb 20, 2025
319550f
Chore: unused import문 삭제
Feb 20, 2025
622bb75
Feat: 이벤트&명소 리뷰에서 루트 조회 수정 (isWritten이 True인 경우만 조회되게)
Feb 20, 2025
ddc5f81
Merge branch 'dev' into feature/#219
Kkimdoyeon Feb 20, 2025
907f310
Merge pull request #226 from OtakuMap/fix/#225
haerxeong Feb 20, 2025
4ac6819
Refactor: 이벤트 한 줄 리뷰 반환 데이터 추가
tl1l1l1s Feb 20, 2025
cc9d812
Merge pull request #230 from OtakuMap/refactor/#229
tl1l1l1s Feb 20, 2025
64196b0
Refactor: NotNull처리 & findById로 수정
Feb 20, 2025
56599f0
Fix: 필요한 import문 추가
Feb 20, 2025
83d1441
Fix: getRoute() 에러 해결
Feb 20, 2025
7443b09
Merge pull request #224 from OtakuMap/feature/#219
Kkimdoyeon Feb 20, 2025
2f7b537
Feat: 구매 여부 조회 API 구현
tl1l1l1s Feb 20, 2025
2e4c4a1
Refactor: 상세 후기 조회 시 placeReview는 price를 반환하지 않는 에러 해결
tl1l1l1s Feb 20, 2025
beb08a2
Refactor: converter 추가
tl1l1l1s Feb 20, 2025
92ed8a5
Merge pull request #232 from OtakuMap/feature/#231
tl1l1l1s Feb 20, 2025
d2faffa
Refactor: Order 테이블 삭제 및 Point 테이블 칼럼 추가 (Point 충전 내역은 Point 테이블에 업데이트)
Feb 20, 2025
26a3eb2
Refactor: 포인트 충전될 때마다 user의 totalPoint 값 업데이트되도록
Feb 20, 2025
495285e
Merge pull request #233 from OtakuMap/feature/#170-7
Kkimdoyeon Feb 20, 2025
e9607fb
Refactor: Entity 변경에 맞춰 후기 구매 api 수정
tl1l1l1s Feb 20, 2025
ed5112c
Refactor: 포인트 충전 내역을 user의 totalPoint 칼럼값 반환하게 수정
Feb 20, 2025
b762bf4
Merge pull request #234 from OtakuMap/feature/#170-6
tl1l1l1s Feb 20, 2025
c5af72e
Merge pull request #235 from OtakuMap/feature/#170-7
Kkimdoyeon Feb 20, 2025
aa33b1b
Chore: 안 쓰는 import문 삭제
Feb 20, 2025
03edd74
Merge pull request #236 from OtakuMap/feature/#170-7
Kkimdoyeon Feb 20, 2025
6bf435c
Feat: type도 같이 반환하도록 변경
Feb 21, 2025
8968c71
Feat: reviewId도 같이 반환하도록 변경
Feb 21, 2025
705baed
Feat: nickname을 반환하도록 수정
ParkSenn Feb 24, 2025
159f8e4
Chore: add untracked files
ParkSenn Feb 24, 2025
8f43a87
Merge pull request #238 from ParkSenn/feature/#237
ParkSenn Feb 24, 2025
814b9cd
Feat: deploy.yml 수정
Mar 9, 2025
cc4cada
Feat: deploy.yml 수정
Mar 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
75 changes: 75 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: CI/CD using github actions & docker

on:
push:
branches: [ "dev" ]

permissions:
contents: read

jobs:
build:
runs-on: ubuntu-24.04
steps:
## JDK setting - github actions에서 사용할 JDK 설정
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin' # https://github.com/actions/setup-java

## gradle caching - 빌드 시간 향상
- name: Gradle Caching
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-

## gradlew 파일에 실행 권한을 부여
- name: Grant execute permission for gradlew
run:
chmod +x gradlew

## yml 파일 생성
- name: make application.yml
if: contains(github.ref, 'dev')
run: |
cd ./src/main
mkdir -p resources
cd ./resources
touch ./application.yml
echo "${{ secrets.APPLICATION_YML }}" >> ./application.yml
shell: bash

# gradle build
- name: Build with Gradle
run: ./gradlew build -x test

## docker build & push to production
- name: Docker build & push to prod
if: contains(github.ref, 'dev')
run: |
echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin
docker build -f Dockerfile -t ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }} .
docker push ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }}

## deploy to production
- name: Deploy to prod
uses: appleboy/ssh-action@v0.1.6
id: deploy-prod
if: contains(github.ref, 'dev')
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_PRIVATE_KEY }}
script: |
sudo docker rm -f $(docker ps -qa)
sudo docker pull ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }}
sudo docker-compose down
sudo docker-compose up -d
sudo docker image prune -f
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,6 @@ out/

### VS Code ###
.vscode/

src/main/resources

4 changes: 4 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
FROM openjdk:17-jdk
ARG JAR_FILE=./build/libs/*-SNAPSHOT.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT [ "java", "-jar", "/app.jar" ]
53 changes: 51 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,14 @@ configurations {

repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}

jar{
enabled=false
}


dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
Expand All @@ -35,10 +41,53 @@ dependencies {
// validation 관련 기능
implementation 'org.springframework.boot:spring-boot-starter-validation'

// swagger
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0'
// security 관련
implementation 'org.springframework.boot:spring-boot-starter-security'

//
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0'

// 이메일 인증 기능
implementation 'org.springframework.boot:spring-boot-starter-mail'
implementation 'org.springframework.boot:spring-boot-starter-data-redis'

// JWT
implementation 'io.jsonwebtoken:jjwt-api:0.12.3'
implementation 'io.jsonwebtoken:jjwt-impl:0.12.3'
implementation 'io.jsonwebtoken:jjwt-jackson:0.12.3'

// queryDSL
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"

// OAuth2
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'

implementation 'com.google.code.gson:gson'

// 구글 places api 관련
//implementation 'com.google.maps:google-maps-services:0.42.2'
// Jackson: JSON 응답을 파싱
implementation 'com.fasterxml.jackson.core:jackson-databind'

// AWS S3
implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'

// iamport 결제 관련
implementation group: 'com.github.iamport', name: 'iamport-rest-client-java', version: '0.2.22'
implementation group: 'com.squareup.retrofit2', name: 'adapter-rxjava2', version: '2.9.0'
//implementation group: 'com.google.code.gson', name: 'gson', version: '2.11.0'
implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: '4.9.3'
implementation group: 'com.squareup.retrofit2', name: 'converter-gson', version: '2.3.0'
}

tasks.named('test') {
useJUnitPlatform()
}

// Querydsl 설정부
clean {
delete file('src/main/generated')
}
6 changes: 6 additions & 0 deletions src/main/java/com/otakumap/OtakumapApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,13 @@

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;

@EnableJpaAuditing
@EnableAsync
@EnableScheduling
@SpringBootApplication
public class OtakumapApplication {

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package com.otakumap.domain.animation.controller;

import com.otakumap.domain.animation.dto.AnimationRequestDTO;
import com.otakumap.domain.animation.dto.AnimationResponseDTO;
import com.otakumap.domain.animation.converter.AnimationConverter;
import com.otakumap.domain.animation.entity.Animation;
import com.otakumap.domain.animation.service.AnimationCommandService;
import com.otakumap.domain.animation.service.AnimationQueryService;
import com.otakumap.global.apiPayload.ApiResponse;
import com.otakumap.global.apiPayload.code.status.ErrorStatus;
import com.otakumap.global.apiPayload.exception.handler.SearchHandler;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Pattern;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Validated
@RestController
@RequiredArgsConstructor
@RequestMapping("/api/animations")
public class AnimationController {
private final AnimationQueryService animationQueryService;
private final AnimationCommandService animationCommandService;

@GetMapping("/search")
@Operation(summary = "애니메이션 검색", description = "키워드로 애니메이션 제목을 검색해서 조회합니다. 공백은 허용되지 않습니다.")
public ApiResponse<AnimationResponseDTO.AnimationResultListDTO> searchAnimation(
@RequestParam @NotBlank(message = "검색어를 입력해주세요")
@Pattern(regexp = "^[^\\s].*$", message = "첫 글자는 공백이 될 수 없습니다") String keyword) {
List<Animation> animationList = animationQueryService.searchAnimation(keyword);

if (animationList.isEmpty()) {
throw new SearchHandler(ErrorStatus.ANIMATION_NOT_FOUND);
}

return ApiResponse.onSuccess(AnimationConverter.animationResultListDTO(animationList));
}

@PostMapping
@Operation(summary = "애니메이션 등록", description = "원하는 애니메이션이 없을 경우, 사용자가 애니메이션을 직접 등록합니다.")
public ApiResponse<AnimationResponseDTO.AnimationCreationResponseDTO> createAnimation(
@RequestBody @Valid AnimationRequestDTO.AnimationCreationRequestDTO request) {
Animation animation = animationCommandService.createAnimation(request.getName());
return ApiResponse.onSuccess(AnimationConverter.toAnimationCreationResponseDTO(animation));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package com.otakumap.domain.animation.converter;

import com.otakumap.domain.animation.dto.AnimationResponseDTO;
import com.otakumap.domain.animation.entity.Animation;
import com.otakumap.domain.hash_tag.dto.HashTagResponseDTO;
import com.otakumap.domain.mapping.PlaceAnimation;

import java.util.List;

public class AnimationConverter {

public static AnimationResponseDTO.AnimationInfoDTO toAnimationInfoDTO(PlaceAnimation placeAnimation, Boolean isLiked,
List<HashTagResponseDTO.HashTagDTO> hashTags) {
return AnimationResponseDTO.AnimationInfoDTO.builder()
.animationId(placeAnimation.getAnimation().getId())
.animationName(placeAnimation.getAnimation().getName())
.isLiked(isLiked)
.hashTags(hashTags)
.build();
}

public static AnimationResponseDTO.AnimationResultDTO animationResultDTO(Animation animation) {
return AnimationResponseDTO.AnimationResultDTO.builder()
.animationId(animation.getId())
.name(animation.getName())
.build();
}

public static AnimationResponseDTO.AnimationResultListDTO animationResultListDTO(List<Animation> animations) {
List<AnimationResponseDTO.AnimationResultDTO> animationResultDTOs = animations.stream()
.map(AnimationConverter::animationResultDTO)
.toList();

return AnimationResponseDTO.AnimationResultListDTO.builder()
.animations(animationResultDTOs)
.listSize(animationResultDTOs.size())
.build();
}

public static AnimationResponseDTO.AnimationCreationResponseDTO toAnimationCreationResponseDTO(Animation animation) {
return AnimationResponseDTO.AnimationCreationResponseDTO.builder()
.animationId(animation.getId())
.name(animation.getName())
.createdAt(animation.getCreatedAt())
.build();
}

public static Animation toAnimation(String name) {
return Animation.builder()
.name(name)
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.otakumap.domain.animation.dto;

import jakarta.validation.constraints.NotBlank;
import lombok.Getter;

public class AnimationRequestDTO {
@Getter
public static class AnimationCreationRequestDTO {
@NotBlank
String name;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package com.otakumap.domain.animation.dto;

import com.otakumap.domain.hash_tag.dto.HashTagResponseDTO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.List;

public class AnimationResponseDTO {
@Builder
@Getter
@NoArgsConstructor
@AllArgsConstructor
public static class AnimationInfoDTO {
private Long animationId;
private String animationName;
private Boolean isLiked;
private List<HashTagResponseDTO.HashTagDTO> hashTags;
}

@Builder
@Getter
@NoArgsConstructor
@AllArgsConstructor
public static class AnimationResultDTO {
Long animationId;
String name;
}

@Builder
@Getter
@NoArgsConstructor
@AllArgsConstructor
public static class AnimationResultListDTO {
List<AnimationResultDTO> animations;
Integer listSize;
}

@Builder
@Getter
@NoArgsConstructor
@AllArgsConstructor
public static class AnimationCreationResponseDTO {
Long animationId;
String name;
LocalDateTime createdAt;
}
}
34 changes: 34 additions & 0 deletions src/main/java/com/otakumap/domain/animation/entity/Animation.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.otakumap.domain.animation.entity;

import com.otakumap.domain.event_review.entity.EventReview;
import com.otakumap.domain.mapping.AnimationHashtag;
import com.otakumap.domain.place_review.entity.PlaceReview;
import com.otakumap.global.common.BaseEntity;
import jakarta.persistence.*;
import lombok.*;

import java.util.ArrayList;
import java.util.List;

@Entity
@Getter
@Builder
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
public class Animation extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(nullable = false, length = 50)
private String name;

@OneToMany(mappedBy = "animation")
private List<EventReview> eventReviews = new ArrayList<>();

@OneToMany(mappedBy = "animation")
private List<PlaceReview> placeReviews = new ArrayList<>();

@OneToMany(mappedBy = "animation", cascade = CascadeType.ALL)
private List<AnimationHashtag> animationHashtags = new ArrayList<>();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.otakumap.domain.animation.repository;

import com.otakumap.domain.animation.entity.Animation;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;

public interface AnimationRepository extends JpaRepository<Animation, Long> {
@Query("SELECT a FROM Animation a WHERE REPLACE(LOWER(a.name), ' ', '') LIKE CONCAT('%', REPLACE(LOWER(:keyword), ' ', ''), '%')")
List<Animation> searchAnimationByKeyword(@Param("keyword") String keyword);
}
Loading