Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

[release] v1.0.1 배포 #489

Merged
merged 243 commits into from
Dec 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
243 commits
Select commit Hold shift + click to select a range
b094689
♻️ Chatting 컴포넌트의 props로 사용자 정보 전체를 받도록 변경
js43o Dec 8, 2023
6f0d956
✨ 채팅방 입장/퇴장 시 알림 메시지 전송
js43o Dec 8, 2023
43b5f61
💄 알림 메시지 전용 스타일 추가
js43o Dec 8, 2023
ce4070c
💄 채팅 아이템 메시지 스타일 수정
js43o Dec 8, 2023
c0ed68a
🔨 메타 태그 추가
ttaerrim Dec 9, 2023
7df1398
♻️ useChatting 훅의 useEffect를 컴포넌트에서 처리하도록 변경
js43o Dec 9, 2023
c457c6d
✨ 모각코 참석/참석 취소 시점에 입장/퇴장 알림 메시지를 전송하도록 변경
js43o Dec 9, 2023
e460261
🐛 알림 메시지 컴포넌트에 key props 추가
js43o Dec 9, 2023
3ad77ae
🔨 모락 메타 태그 수정
ttaerrim Dec 9, 2023
ab52419
Merge pull request #399 from ttaerrim/389-meta
ttaerrim Dec 9, 2023
09e3c06
✨ 그룹 없음 컴포넌트 추가
ttaerrim Dec 9, 2023
556ab7c
🔨 속한 그룹 없을 경우 글쓰기 버튼 비활성화
ttaerrim Dec 9, 2023
724fc61
🐛 참석 취소 후 채팅 아이템이 초기화되지 않는 버그 수정
js43o Dec 10, 2023
b4953e0
✨ 사용자가 참여한 모각코 확인 API 구현
ldhbenecia Dec 10, 2023
c5fb71e
♻️ 사용자가 가입한 그룹 id 찾는 중복 로직 함수화
ldhbenecia Dec 10, 2023
3f2abd1
🎨 참여 모각코 조회 Swagger 문구 수정
ldhbenecia Dec 10, 2023
eb62db3
✨ 404 페이지 추가
ttaerrim Dec 10, 2023
9fb5451
Merge pull request #402 from ttaerrim/401-group
ttaerrim Dec 10, 2023
eab377a
Merge pull request #400 from boostcampwm2023/meta
ttaerrim Dec 10, 2023
32c4498
♻️ Swagger BearerAuth 제거
ldhbenecia Dec 10, 2023
b8d4f17
♻️ Swagger BearerAuth 제거 및 수정
ldhbenecia Dec 10, 2023
bd152a3
♻️ AtGuard에서 verify를 위한 provider, exports 추가
ldhbenecia Dec 10, 2023
b23b4fd
✨ Bearer Token 방식에서 서버에서 쿠키를 추출하는 방식으로 인가 처리 변경
ldhbenecia Dec 10, 2023
ca96b69
✨ 사용자의 id PK값을 추출해내는 함수 구현
ldhbenecia Dec 10, 2023
7a17e12
✨ JWT 토큰 생성 시 Payload 타입 세부 설정
ldhbenecia Dec 10, 2023
2b1763e
♻️ cookie httponly=true 설정
ldhbenecia Dec 10, 2023
87a2040
🎨 console log 출력 제거
ldhbenecia Dec 10, 2023
cb3ed21
Merge pull request #405 from ldhbenecia/feature/getMogaco
ldhbenecia Dec 10, 2023
df2f6d9
🐛 채팅 내역이 20개 이하일 때 스크롤을 맨 위로 올리면 다시 스크롤이 내려가는 버그 수정
js43o Dec 10, 2023
0bab312
💄 그룹 컴포넌트 디자인 수정
ttaerrim Dec 10, 2023
74f2547
🔥 모바일 그룹 참가 버튼 컴포넌트 삭제
ttaerrim Dec 10, 2023
71ae755
Merge pull request #411 from ttaerrim/410-404
ttaerrim Dec 10, 2023
0b26c87
🐛 이전 메시지 페칭 시 채팅 스크롤 위치가 잘못 지정되는 문제 수정
js43o Dec 10, 2023
4803c91
♻️ 불필요한 loading 로직 제거
js43o Dec 10, 2023
474494b
Merge pull request #386 from js43o/enhance-chatting-2
js43o Dec 10, 2023
9e974da
✨ 입장/퇴장 메시지 수신 시 모각코 정보 리페칭
js43o Dec 10, 2023
5235841
💄 정보가 확인되지 않는 채팅 참여자를 위한 스타일 추가
js43o Dec 10, 2023
50d55c7
:lipstick: 프로필 페이지 내 그룹 스타일 수정
LEEJW1953 Dec 10, 2023
433c13a
Merge pull request #413 from ldhbenecia/feature/oauth
ldhbenecia Dec 10, 2023
86f55a7
♻️ 본인이 참여한 모각코 조회 API 수정
ldhbenecia Dec 10, 2023
ac73a63
Merge pull request #422 from ldhbenecia/feature/getMogaco
ldhbenecia Dec 10, 2023
2253622
✨ GET /posts/my-mogacos에 대한 API 요청 및 쿼리 키 추가
js43o Dec 10, 2023
58dd94c
🏷️ MogacoItem 컴포넌트의 props에서 불필요한 필드 제외
js43o Dec 10, 2023
e5fad73
✨ 현재 참가한 모각코 컴포넌트 구현
js43o Dec 10, 2023
c7a84ad
💄 참가한 모각코가 없을 때 UI 수정
js43o Dec 10, 2023
40af2d0
💄 공통 스타일 모듈 통합
js43o Dec 10, 2023
0d8d811
:lipstick: 메인페이지 반응형 height 수정
LEEJW1953 Dec 10, 2023
962c842
📝 README에 기술 스택 뱃지 추가
ttaerrim Dec 11, 2023
570ecbf
Update README.md
js43o Dec 11, 2023
12bb659
Merge pull request #423 from boostcampwm2023/js43o-patch-1
js43o Dec 11, 2023
456a179
📝 README 기능 설명 추가
ttaerrim Dec 11, 2023
b515d91
Merge pull request #420 from LEEJW1953/fe-profile
LEEJW1953 Dec 11, 2023
9332bcd
Merge pull request #417 from LEEJW1953/fe-main
LEEJW1953 Dec 11, 2023
9535681
Merge pull request #421 from js43o/add-particpated-mogaco
js43o Dec 11, 2023
3fe3983
🐛 중복 전송 방지를 위해 isComposing을 분기 조건문에 추가
js43o Dec 11, 2023
2e5b5a1
Merge pull request #415 from ttaerrim/408-group-bug
ttaerrim Dec 11, 2023
4cdfcd2
♻️ MessageWrapper에서 쓰는 스타일 공통으로 사용하도록 리팩토링
ttaerrim Dec 10, 2023
c0127c5
Merge pull request #419 from js43o/enhance-chatting-3
js43o Dec 11, 2023
9b0be39
Merge pull request #412 from ttaerrim/message-contents-style
ttaerrim Dec 11, 2023
0133e40
💄 알림 메시지 스타일에 최대 너비 지정
js43o Dec 11, 2023
98bb9f5
:bug: backend Dockerfile DB ip 유동성 추가
ccxz84 Dec 11, 2023
547b21a
✨ 입장/퇴장 메시지 닉네임을 최대 10글자까지 표시
js43o Dec 11, 2023
c046bd9
💄 닉네임을 자를 시 말줄임표 문자 추가
js43o Dec 11, 2023
2d310d3
Merge pull request #424 from boostcampwm2023/readme-feature
ttaerrim Dec 11, 2023
ab5bbea
💄 사이드바 contents 스타일 추가
js43o Dec 11, 2023
033366e
📝 README에 기술적 도전, 브랜치 전략, 개발 일지 추가 등 전면 수정
ttaerrim Dec 11, 2023
39e2e9c
Merge pull request #426 from js43o/enhance-chatting-4
js43o Dec 11, 2023
d757691
💄 모각코 게시글 contents 스타일 추가
js43o Dec 11, 2023
3ad0370
💄 더보기 버튼 padding 값 수정
js43o Dec 11, 2023
7b4e4a9
📦 cypress 설치
ttaerrim Dec 11, 2023
93283e7
📝 README에 아키텍처 구조도 추가
ttaerrim Dec 11, 2023
4f04651
Merge pull request #430 from boostcampwm2023/readme-feature
ttaerrim Dec 11, 2023
7631c5f
📝 README 수정
ttaerrim Dec 11, 2023
9859eb1
📝 README command 부분 수정
ttaerrim Dec 11, 2023
215c6a5
Merge pull request #429 from js43o/fix-notification-message
js43o Dec 11, 2023
e1284f0
📦️ cypress-image-diff-js 설치
ttaerrim Dec 11, 2023
3cfe959
📦️ cypress-image-snapshot 패키지 설치
ttaerrim Dec 11, 2023
adb92c3
🔧 cypress 회귀 테스트 설정 파일 추가
ttaerrim Dec 11, 2023
28d96c1
✅ 시각적 회귀 테스트 메인 페이지 추가
ttaerrim Dec 11, 2023
ad90120
Merge pull request #431 from js43o/fix-sidebar-overflow
js43o Dec 12, 2023
8ab674e
Merge pull request #428 from ccxz84/develop
ccxz84 Dec 12, 2023
6dc8744
📦️ cypress 설치
ttaerrim Dec 12, 2023
f3661a0
✅ cypress e2e 테스트 코드 기본 세팅 추가
ttaerrim Dec 12, 2023
ad4e19b
🔧 turbo cypress 추가
ttaerrim Dec 12, 2023
2528581
Merge pull request #435 from ttaerrim/cypress-setting
ttaerrim Dec 12, 2023
db2d708
Revert "[Feat] 시각적 회귀 테스트를 위한 cypress 세팅 추가"
ttaerrim Dec 12, 2023
329db41
Merge pull request #437 from boostcampwm2023/revert-435-cypress-setting
ttaerrim Dec 12, 2023
80f61e7
Merge pull request #436 from ttaerrim/cypress
ttaerrim Dec 12, 2023
7638881
📦️ cypress-image-snapshot 패키지 설치
ttaerrim Dec 12, 2023
c51c6be
🔧 시각적 회귀 테스트 설정 추가
ttaerrim Dec 12, 2023
89e0fb9
✅ 시각적 회귀 테스트 예시 코드 및 결과 추가
ttaerrim Dec 12, 2023
ea1b397
♻️ Swagger BearerAuth 제거
ldhbenecia Dec 10, 2023
105e492
♻️ Swagger BearerAuth 제거 및 수정
ldhbenecia Dec 10, 2023
3a0c2d6
♻️ AtGuard에서 verify를 위한 provider, exports 추가
ldhbenecia Dec 10, 2023
1a64a3d
✨ Bearer Token 방식에서 서버에서 쿠키를 추출하는 방식으로 인가 처리 변경
ldhbenecia Dec 10, 2023
c30afef
✨ 사용자의 id PK값을 추출해내는 함수 구현
ldhbenecia Dec 10, 2023
37fca80
✨ JWT 토큰 생성 시 Payload 타입 세부 설정
ldhbenecia Dec 10, 2023
7dae106
♻️ cookie httponly=true 설정
ldhbenecia Dec 10, 2023
8eac0ca
🎨 console log 출력 제거
ldhbenecia Dec 10, 2023
a98da5c
Merge pull request #439 from ttaerrim/auth-develop
ttaerrim Dec 12, 2023
6565df1
🔨 헤더에 cypress e2e 테스트를 위한 data-cy 필드 추가
ttaerrim Dec 12, 2023
7d05880
✅ 비로그인 시 메뉴 접근 테스트 작성
ttaerrim Dec 12, 2023
f370f45
🔨 로그인 버튼에 cypress e2e용 data-cy 속성 추가
ttaerrim Dec 12, 2023
c1563cc
✅ 비로그인 시 로그인 버튼 visible
ttaerrim Dec 12, 2023
80e1812
✅ e2e 로그인 테스트 작성
ttaerrim Dec 12, 2023
1682d5e
🍱 메인 이미지 webp 버전 추가
js43o Dec 12, 2023
ee389b0
⚡️ webp 버전 메인 이미지를 source 태그를 통해 사용
js43o Dec 12, 2023
641e268
🔥 spec.cy.ts 임시 테스트 파일 삭제
ttaerrim Dec 12, 2023
eabf37f
💡 cypress access token 관련 주석 작성
ttaerrim Dec 12, 2023
c7e04d9
♿️ 헤더 ARIA 태그 추가
js43o Dec 12, 2023
86e5b49
Merge pull request #433 from js43o/fix-mogaco-contents
js43o Dec 12, 2023
25569a8
:sparkles: 모각코 상세 글 지도 static map 으로 변경
LEEJW1953 Dec 10, 2023
0ca9ccc
:sparkles: 모각코 상세 글 지도 static map 이미지 사용
LEEJW1953 Dec 11, 2023
4cd381d
✅ 비로그인 테스트 전에 clearCookie 추가
ttaerrim Dec 12, 2023
bf5f5c5
🔥 useSetUserInfo 훅 삭제
ttaerrim Dec 12, 2023
8e12559
🔨 getMyInfoQuery 수정하고 useGetLoginBasedMyInfoQuery 추가
ttaerrim Dec 12, 2023
fa241ed
♻️ getCookie 대신 useGetLoginBasedMyInfoQuery 사용
ttaerrim Dec 12, 2023
07966ef
🔥 getCookie 유틸 함수 삭제
ttaerrim Dec 12, 2023
1164ebf
📦️ react-cookie 패키지 삭제
ttaerrim Dec 12, 2023
a5c194c
🔨 useGetLoginBasedMyInfoQuery에서 isLoading, isLogin만 리턴하도록 변경
ttaerrim Dec 12, 2023
559c2dd
🐛 라우터에서 새로고침 시 홈으로 이동하지 않도록 isLoading과 함께 로그인 여부 판단
ttaerrim Dec 12, 2023
2978c40
♿️ 페이지네이터 화살표 버튼에 aria-label 속성 추가
js43o Dec 12, 2023
f6447cf
♿️ 메뉴 및 본문 영역에 nav, main 태그 추가
js43o Dec 12, 2023
fda04a7
♿️ 헤더 컴포넌트에 header 태그 적용
js43o Dec 12, 2023
f26aac9
Merge pull request #446 from js43o/enhance-mogaco-page
js43o Dec 12, 2023
b453bc1
Merge pull request #416 from LEEJW1953/fe-static-map
LEEJW1953 Dec 12, 2023
2de4997
🔥 screenshots/snapshot 삭제
ttaerrim Dec 12, 2023
090e0cf
🙈 gitignore에 cypress snapshots, screenshots 추가
ttaerrim Dec 12, 2023
d749627
♻️ Textarea 컴포넌트 props를 Input 컴포넌트와 동일한 형태로 변경
js43o Dec 12, 2023
110777e
Merge pull request #438 from ttaerrim/cypress-regression
ttaerrim Dec 12, 2023
2efc2cf
💄 Input, Textarea 폰트 크기 1.4rem으로 조정
js43o Dec 12, 2023
25a48c7
Merge pull request #452 from js43o/refactor-input
js43o Dec 12, 2023
e48c7bb
🎉 @morak/ui 내부 패키지 추가
ttaerrim Dec 12, 2023
9ab6fc3
🔧 eslint와 tsconfig 설정 파일 추가
ttaerrim Dec 12, 2023
8e30d43
📦️ frontend에 morak/ui 패키지 추가
ttaerrim Dec 12, 2023
d9a2b26
✨ morak/ui src/index.ts 파일 추가
ttaerrim Dec 12, 2023
6607938
✨ @morak/ui에 Button 컴포넌트 추가
ttaerrim Dec 12, 2023
28b5eeb
✨ @morak/ui에 styles 파일 추가
ttaerrim Dec 12, 2023
0cde819
♻️ Button 컴포넌트 @morak/ui의 컴포넌트를 사용
ttaerrim Dec 12, 2023
ae1a381
🔧 morak/ui src/index.ts에 Button export
ttaerrim Dec 12, 2023
7b157b2
♻️ Button 컴포넌트 props 줄여서 사용하기
ttaerrim Dec 12, 2023
406a2d3
Merge pull request #442 from ttaerrim/440-login-e2e
ttaerrim Dec 12, 2023
dfe0ea4
Merge pull request #445 from ttaerrim/440-auth-2
ttaerrim Dec 12, 2023
48c5db0
Merge pull request #453 from ttaerrim/package/ui
ttaerrim Dec 12, 2023
8484cb8
🔧 @morak/ui build scripts 추가
ttaerrim Dec 12, 2023
d286574
Merge pull request #454 from ttaerrim/package-ui-button
ttaerrim Dec 12, 2023
06552a5
♻️ Swagger BearerAuth 제거
ldhbenecia Dec 10, 2023
876e096
♻️ Swagger BearerAuth 제거 및 수정
ldhbenecia Dec 10, 2023
634ce56
♻️ AtGuard에서 verify를 위한 provider, exports 추가
ldhbenecia Dec 10, 2023
423b700
✨ Bearer Token 방식에서 서버에서 쿠키를 추출하는 방식으로 인가 처리 변경
ldhbenecia Dec 10, 2023
f4144c2
✨ 사용자의 id PK값을 추출해내는 함수 구현
ldhbenecia Dec 10, 2023
203691f
✨ JWT 토큰 생성 시 Payload 타입 세부 설정
ldhbenecia Dec 10, 2023
a221c3a
♻️ cookie httponly=true 설정
ldhbenecia Dec 10, 2023
b2565d5
🎨 console log 출력 제거
ldhbenecia Dec 10, 2023
11cfb68
Merge branch 'develop' into enhance-main-page
js43o Dec 12, 2023
8b9e0dd
📦️ testing /coverage 추가
ldhbenecia Dec 12, 2023
18597a3
🗒️ .sample.dev.env
ldhbenecia Dec 12, 2023
9be5be7
♻️ 개발 환경에서만 Swagger 동작
ldhbenecia Dec 12, 2023
4a9556f
✨ Cookie Token 옵션 추가
ldhbenecia Dec 12, 2023
b4b88dc
Merge pull request #455 from ldhbenecia/feature/oauth
ldhbenecia Dec 12, 2023
91991b8
Merge pull request #443 from js43o/enhance-main-page
js43o Dec 12, 2023
0538807
🚚 메인 페이지 스냅샷 테스트 폴더 이동
ttaerrim Dec 12, 2023
fe1a9df
✅ groups 페이지 스냅샷 테스트 추가
ttaerrim Dec 12, 2023
1ed54cd
🔨 main 스냅샷 test code image 저장 위치 변경
ttaerrim Dec 12, 2023
3cfefc7
✅ modal 스냅샷 테스트 코드 추가
ttaerrim Dec 12, 2023
beb9234
📦️ nestjs platform-express install
ldhbenecia Dec 12, 2023
d51c01a
✅ Mogaco 페이지 스냅샷 테스트 코드 추가
ttaerrim Dec 12, 2023
5d88d08
✅ Post 페이지 스냅샷 테스트 코드 추가
ttaerrim Dec 12, 2023
b93775d
Merge pull request #459 from ldhbenecia/develop
ldhbenecia Dec 12, 2023
17ed5ba
✅ Calendar 페이지 스냅샷 테스트 코드 추가
ttaerrim Dec 12, 2023
f8b6c14
📦️ cache-manager 패키지 설치
ttaerrim Dec 12, 2023
7e113ed
Merge pull request #464 from ttaerrim/back-cache-manager
ttaerrim Dec 12, 2023
0b4b126
Merge branch 'develop' into feature/auth-refactor
ttaerrim Dec 12, 2023
fdab927
🐛 CookieProvider 삭제
ttaerrim Dec 12, 2023
ae2728b
Merge pull request #466 from ttaerrim/feature/auth-refactor
ttaerrim Dec 12, 2023
5f5056d
Merge pull request #467 from boostcampwm2023/feature/auth-refactor
ttaerrim Dec 12, 2023
a608156
🎨 현재 환경 콘솔 로그 제거
ldhbenecia Dec 12, 2023
360c22a
Merge pull request #468 from ldhbenecia/develop
ldhbenecia Dec 12, 2023
749252d
Merge pull request #462 from ttaerrim/457-test
ttaerrim Dec 12, 2023
de1695b
🚚 @morak/ui에 FieldLabel 컴포넌트 이동
ttaerrim Dec 12, 2023
faf5531
♻️ fontStyle과 color 변수 import 방식 변경
ttaerrim Dec 12, 2023
80da5a5
♻️ FieldLabel @morak/ui에서 사용하도록 변경
ttaerrim Dec 12, 2023
be593b6
♻️ Input과 Textarea @morak/ui로 이동하여 사용
ttaerrim Dec 12, 2023
a0c3277
Merge pull request #471 from ttaerrim/457-input
ttaerrim Dec 12, 2023
e333d06
♻️ Button 컴포넌트 @morak/ui의 컴포넌트 사용하도록 변경
ttaerrim Dec 12, 2023
2dc8b4c
🔥 Button 컴포넌트 삭제
ttaerrim Dec 12, 2023
531e7ab
📦️ peerDependencies에서 vanilla-extract/recipes 삭제
ttaerrim Dec 12, 2023
7f957db
Merge pull request #469 from ttaerrim/457-button
ttaerrim Dec 12, 2023
cf4c1e8
📝 README 수정
ttaerrim Dec 12, 2023
46bb40a
♿️ useClickMenu에 onEnterMenu() 핸들러 추가 및 메뉴 아이템 할당
js43o Dec 12, 2023
8f9e04c
♿️ 각 메뉴의 aria-label을 한글로 변경
js43o Dec 13, 2023
d447ca7
🚚 Pagination 컴포넌트를 @morak/ui로 이동
js43o Dec 13, 2023
52752ed
🔥 Pagination 컴포넌트 인덱스 내보내기 추가, 기존 components 하위 파일 삭제
js43o Dec 13, 2023
5e3783b
💄 Pagination 각 아이템 디자인 수정
js43o Dec 13, 2023
54b3658
✨ 페이지 이동 시 스크롤을 맨 위로 이동
js43o Dec 13, 2023
dfff239
Merge pull request #475 from js43o/enhance-header
js43o Dec 13, 2023
c45d1e3
Merge pull request #476 from js43o/paginator
js43o Dec 13, 2023
a0ac9ee
♿️ 사이드바 및 참여자 목록 토글 버튼에 aria-label 속성 추가
js43o Dec 12, 2023
3cbfe91
♿️ 채팅 각 아이템 컴포넌트를 li 태그로 교체
js43o Dec 12, 2023
f60216e
♿️ Textarea 컴포넌트에 ariaLabel props 추가
js43o Dec 12, 2023
d5f7061
♿️ 본문 영역을 main 태그로 교체
js43o Dec 12, 2023
70952bc
♿️ 참석자 목록 토글 버튼 aria-label 속성 수정
js43o Dec 13, 2023
502e766
♿️ 모각코 리스트 페이지 시맨틱 태그 적용
js43o Dec 13, 2023
e7eec48
♿️ 날짜 형식 변경
js43o Dec 13, 2023
d4bff3d
♿️ Pagination 요소별 aria-label 속성 추가
js43o Dec 13, 2023
eeb0953
♿️ 각 모각코 아이템을 요약해서 읽어주도록 변경
js43o Dec 13, 2023
2cc4f52
✅ 모각코 모집 필터링 테스트 및 404 오류 구현
ldhbenecia Dec 13, 2023
45cae37
✅ 모각코 시간이 지나면 종료로 상태 변경 메서드 테스트
ldhbenecia Dec 13, 2023
adaf022
🔨 Tmapv2를 Tmapv3으로 변경
ttaerrim Dec 13, 2023
b6c02c2
🔨 맵 모달 useMap 훅 Tmapv2에서 Tmapv3로 변경
ttaerrim Dec 13, 2023
84737a5
♿️ 사이드바가 닫혀있을 때 패널 영역 visibility: hidden 적용
js43o Dec 13, 2023
25501cf
🚚 FieldLabel 컴포넌트를 TextLabel로 이름 변경
ttaerrim Dec 12, 2023
b0ab560
♻️ Input과 TextLabel을 나누어 FormInput으로 사용하도록 변경
ttaerrim Dec 12, 2023
59d62f3
♻️ Input 관련 사용하지 않는 코드 정리
ttaerrim Dec 12, 2023
80b89db
♻️ Textarea와 TextLabel을 나누어 FormTextarea으로 사용하도록 변경
ttaerrim Dec 12, 2023
7833d74
✨ @morak/ui에 Label 컴포넌트 추가
ttaerrim Dec 12, 2023
58adb48
♻️ vars.color 구조 분해 할당하여 사용
ttaerrim Dec 12, 2023
605fbf0
🔥 Label 컴포넌트 삭제
ttaerrim Dec 12, 2023
0e0b369
♻️ @morak/ui의 Label 사용하도록 변경
ttaerrim Dec 12, 2023
4bb4ded
🔨 main 스냅샷 테스트에 wait 추가
ttaerrim Dec 12, 2023
204f3c8
Merge pull request #472 from ttaerrim/457-input-develop
ttaerrim Dec 13, 2023
3dd3411
Merge pull request #470 from ttaerrim/457-label
ttaerrim Dec 13, 2023
75354b5
Merge pull request #479 from ttaerrim/tmap-v3
ttaerrim Dec 13, 2023
b498b02
Merge pull request #450 from js43o/enhance-mogaco
js43o Dec 13, 2023
3a2f567
🐛 사이드바 닫힘 시 실시간 참가자 갱신이 안 되는 버그 수정
js43o Dec 13, 2023
be54828
🔧 prettier 설정 추가
ttaerrim Dec 13, 2023
d024bcc
🚨 prettier 설정 적용
ttaerrim Dec 13, 2023
714d9b5
📝 CODEOWNER 파일에 morak/ui 추가
ttaerrim Dec 13, 2023
9f4dcdd
Merge pull request #482 from ttaerrim/morak-ui-prettier
ttaerrim Dec 13, 2023
69b725a
✅ 모각코 메서드에 대한 오류 처리 구현
ldhbenecia Dec 13, 2023
5380f20
Merge pull request #477 from js43o/mogaco-list
js43o Dec 13, 2023
5d224f1
Merge pull request #480 from boostcampwm2023/map-개선
ttaerrim Dec 13, 2023
8a66657
✅ 그룹 레포지토리 그룹 조회 인원 추가 및 오류 처리 구현
ldhbenecia Dec 13, 2023
c622a7f
:bug: 지도 초기 중심좌표 설정
LEEJW1953 Dec 13, 2023
9e270ef
:bug: 마커 이미지 경로 수정
LEEJW1953 Dec 13, 2023
2d1c65d
:lipstick: 마커 라벨 간격 수정
LEEJW1953 Dec 13, 2023
14765fe
Merge pull request #484 from js43o/enhance-chatting
js43o Dec 13, 2023
e9d265d
Merge pull request #486 from LEEJW1953/fe-fix-map
LEEJW1953 Dec 13, 2023
82efae8
🐛 페이지네이션 다음 페이지 계산 로직과 그에 필요한 props 수정
ttaerrim Dec 13, 2023
b71a023
Merge pull request #481 from ttaerrim/473-pagination
ttaerrim Dec 14, 2023
5cc513d
Merge pull request #478 from ldhbenecia/feature/test-code
ldhbenecia Dec 14, 2023
4f0dde1
♻️ 모각코 리스트 생성일 내림차순으로 조회 구현
ldhbenecia Dec 14, 2023
ed7dfda
Merge pull request #488 from ldhbenecia/feature/getMogaco
ldhbenecia Dec 14, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
/app/backend/ @ldhbenecia @ccxz84
/app/frontend/ @ttaerrim @LEEJW1953 @js43o
/packages/morak-ui @ttaerrim @LEEJW1953 @js43o
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,6 @@ lerna-debug.log*

# turbo
.turbo

# testing
**/coverage
113 changes: 80 additions & 33 deletions README.md

Large diffs are not rendered by default.

18 changes: 11 additions & 7 deletions app/backend/.sample.env → app/backend/.sample.dev.env
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
PORT=
DOMAIN=
SOCKET_PORT=
GOOGLE_CLIENT_ID=
GOOGLE_SECRET=
GOOGLE_CALLBACK_URL=
DATABASE_URL=
JWT_ACCESS_SECRET=
JWT_REFRESH_SECRET=
DOMAIN=
REDIS_PORT=
REDIS_HOST=
REDIS_MAX_AGE_REFRESH_TOKEN=
MAX_AGE_ACCESS_TOKEN=
MAX_AGE_REFRESH_TOKEN=
VAULT_ADDR=
VAULT_TOKEN=
VAULT_SECRET_URL=
DB_PORT=
DB_PASSWORD=
DB_USER=
DB_DATABASE_NAME=
DB_DATABASE_NAME=
DB_PORT=
DB_ROOT_PASSWORD=
MONGO_HOST=
MONGO_PORT=
MONGO_CHAT_DB=
CHAT_USER=
CHAT_PASSWORD=
DATABASE_URL=
2 changes: 1 addition & 1 deletion app/backend/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,4 @@ RUN chmod +x /docker-entrypoint.sh
RUN sed -i 's/\r//' /wait-for-it.sh
RUN sed -i 's/\r//' /docker-entrypoint.sh

CMD ["/wait-for-it.sh", "db:3306", "--", "/docker-entrypoint.sh"]
CMD ["/wait-for-it.sh", "--", "/docker-entrypoint.sh"]
9 changes: 0 additions & 9 deletions app/backend/libs/utils/swagger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,6 @@ export function setupSwagger(app: INestApplication): void {
.setVersion('1.0.0')
.addTag('moraks')
.addCookieAuth('token')
.addBearerAuth(
{
type: 'http',
scheme: 'bearer',
name: 'JWT',
in: 'header',
},
'access_token',
)
.build();

const document = SwaggerModule.createDocument(app, config);
Expand Down
6 changes: 4 additions & 2 deletions app/backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,20 @@
"test:e2e": "jest --config ./test/jest-e2e.json"
},
"dependencies": {
"@morak/vault": "^1.0.0",
"@nestjs/cache-manager": "^2.1.1",
"@nestjs/common": "^10.0.0",
"@nestjs/core": "^10.0.0",
"@nestjs/jwt": "^10.2.0",
"@nestjs/mapped-types": "*",
"@nestjs/mongoose": "^10.0.2",
"@nestjs/passport": "^10.0.2",
"@nestjs/platform-express": "^10.0.0",
"@nestjs/platform-socket.io": "^10.2.10",
"@nestjs/swagger": "^7.1.14",
"@nestjs/websockets": "^10.2.10",
"@prisma/client": "^5.5.2",
"cache-manager": "^5.3.1",
"cache-manager-redis-store": "^2.0.0",
"class-transformer": "^0.5.1",
"class-validator": "^0.14.0",
Expand All @@ -42,8 +45,7 @@
"passport-google-oauth20": "^2.0.0",
"passport-jwt": "^4.0.1",
"reflect-metadata": "^0.1.13",
"rxjs": "^7.8.1",
"@morak/vault": "^1.0.0"
"rxjs": "^7.8.1"
},
"devDependencies": {
"@morak/apitype": "^1.0.0",
Expand Down
39 changes: 33 additions & 6 deletions app/backend/src/auth/auth.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ import { GoogleOauthGuard } from './guards/google-oauth.guard';
import { LogoutDto } from './dto/user.dto';
import { getSecret } from '@morak/vault';

const isProduction = getSecret('NODE_ENV') === 'production';

@ApiTags('Oauth API')
@Controller('auth')
export class AuthController {
Expand Down Expand Up @@ -81,9 +83,16 @@ export class AuthController {

res.setHeader('Authorization', 'Bearer ' + [tokens.access_token, tokens.refresh_token]);

res.cookie('access_token', tokens.access_token, { httpOnly: false, maxAge: getSecret('MAX_AGE_ACCESS_TOKEN') });
res.cookie('access_token', tokens.access_token, {
httpOnly: true,
secure: isProduction ? true : false,
sameSite: 'lax',
maxAge: getSecret('MAX_AGE_ACCESS_TOKEN'),
});
res.cookie('refresh_token', tokens.refresh_token, {
httpOnly: true,
secure: isProduction ? true : false,
sameSite: 'lax',
maxAge: getSecret('MAX_AGE_REFRESH_TOKEN'),
});

Expand Down Expand Up @@ -119,14 +128,24 @@ export class AuthController {

res.setHeader('Authorization', 'Bearer ' + newAccessToken);
res.cookie('access_token', newAccessToken, {
httpOnly: false,
httpOnly: true,
secure: isProduction ? true : false,
sameSite: 'lax',
maxAge: getSecret('MAX_AGE_ACCESS_TOKEN'),
});

res.json({ newAccessToken });
} catch (err) {
res.clearCookie('access_token', { httpOnly: false });
res.clearCookie('refresh_token', { httpOnly: false });
res.clearCookie('access_token', {
httpOnly: true,
secure: isProduction ? true : false,
sameSite: 'lax',
});
res.clearCookie('refresh_token', {
httpOnly: true,
secure: isProduction ? true : false,
sameSite: 'lax',
});
throw new UnauthorizedException('Failed to refresh token');
}
}
Expand All @@ -149,8 +168,16 @@ export class AuthController {
const { providerId } = body;
await this.authService.logout(providerId);

res.clearCookie('access_token', { httpOnly: false });
res.clearCookie('refresh_token', { httpOnly: false });
res.clearCookie('access_token', {
httpOnly: true,
secure: isProduction ? true : false,
sameSite: 'lax',
});
res.clearCookie('refresh_token', {
httpOnly: true,
secure: isProduction ? true : false,
sameSite: 'lax',
});
} catch (error) {
console.error('Logout error:', error);
throw new UnauthorizedException('Failed to logout');
Expand Down
5 changes: 3 additions & 2 deletions app/backend/src/auth/auth.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,12 @@ import { AuthService } from './auth.service';
import { AuthController } from './auth.controller';
import { AuthRepository } from './auth.repository';
import { AtStrategy, GoogleStrategy, RtStrategy } from './strategies';
import { AtGuard } from './guards/at.guard';

@Module({
imports: [JwtModule.register({})],
controllers: [AuthController],
providers: [AuthService, AuthRepository, GoogleStrategy, AtStrategy, RtStrategy],
exports: [AuthService, AtStrategy],
providers: [AuthService, AuthRepository, GoogleStrategy, AtStrategy, RtStrategy, AtGuard],
exports: [AuthService, JwtModule, AtStrategy, AtGuard],
})
export class AuthModule {}
12 changes: 12 additions & 0 deletions app/backend/src/auth/auth.repository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,18 @@ export class AuthRepository {
@Inject(CACHE_MANAGER) private cacheManager: Cache,
) {}

async getUserIdFromToken(providerId: string): Promise<bigint> {
const user = await this.prisma.member.findUnique({
where: {
providerId,
},
select: {
id: true,
},
});

return user.id;
}
async saveUser(userDto: CreateUserDto): Promise<Member> {
const { providerId, socialType, email, nickname, profilePicture } = userDto;

Expand Down
9 changes: 8 additions & 1 deletion app/backend/src/auth/auth.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ export class AuthService {
private authRepository: AuthRepository,
) {}

private async getUserIdFromToken(providerId: string): Promise<bigint> {
return await this.authRepository.getUserIdFromToken(providerId);
}

async handleLogin(userDto: CreateUserDto): Promise<Tokens> {
const { providerId } = userDto;
const existingUser = await this.authRepository.findUserByIdentifier(providerId);
Expand Down Expand Up @@ -39,6 +43,7 @@ export class AuthService {

async signIn(userDto: CreateUserDto): Promise<Tokens | null> {
const { providerId, socialType, email, profilePicture, nickname } = userDto;
const userId = await this.getUserIdFromToken(providerId);

const existingUser = await this.authRepository.findUserByIdentifier(providerId);

Expand All @@ -49,6 +54,7 @@ export class AuthService {
}

const token = this.generateJwt({
userId,
providerId,
socialType,
email,
Expand All @@ -67,7 +73,7 @@ export class AuthService {
async refresh(refreshToken: string): Promise<string> {
try {
const decodedRefreshToken = this.jwtService.verify(refreshToken, { secret: getSecret('JWT_REFRESH_SECRET') });
const { providerId, socialType, email, profilePicture, nickname } = decodedRefreshToken;
const { userId, providerId, socialType, email, profilePicture, nickname } = decodedRefreshToken;

const storedRefreshToken = await this.authRepository.getRefreshToken(providerId);

Expand All @@ -76,6 +82,7 @@ export class AuthService {
}

const token = this.generateJwt({
userId,
providerId,
socialType,
email,
Expand Down
35 changes: 33 additions & 2 deletions app/backend/src/auth/guards/at.guard.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,36 @@
import { Injectable } from '@nestjs/common';
import { Injectable, ExecutionContext, UnauthorizedException } from '@nestjs/common';
import { JwtService } from '@nestjs/jwt';
import { AuthGuard } from '@nestjs/passport';
import { getSecret } from '@morak/vault';

@Injectable()
export class AtGuard extends AuthGuard('jwt') {}
export class AtGuard extends AuthGuard('jwt') {
constructor(private jwtService: JwtService) {
super();
}

canActivate(context: ExecutionContext) {
const request = context.switchToHttp().getRequest();

if (!request.cookies) {
throw new UnauthorizedException('Unauthorized');
}

const accessToken = request.cookies.access_token;

try {
const decodedToken = this.jwtService.verify(accessToken, {
secret: getSecret('JWT_ACCESS_SECRET'),
});

const { userId, providerId, socialType, email, profilePicture, nickname } = decodedToken;
const userIdBigInt = BigInt(userId);

request.user = { id: userIdBigInt, providerId, socialType, email, profilePicture, nickname };

return true;
} catch (error) {
throw new UnauthorizedException('Invalid access token');
}
}
}
4 changes: 4 additions & 0 deletions app/backend/src/auth/interface/payload.interface.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
import { JwtPayload } from 'jsonwebtoken';

export interface Payload extends JwtPayload {
userId: bigint;
providerId: string;
socialType: string;
email: string;
profilePicture: string;
nickname: string;
}
3 changes: 1 addition & 2 deletions app/backend/src/groups/groups.controller.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Body, Controller, Delete, Get, Param, ParseIntPipe, Post, UseGuards } from '@nestjs/common';
import { ApiBearerAuth, ApiBody, ApiOperation, ApiParam, ApiResponse, ApiTags } from '@nestjs/swagger';
import { ApiBody, ApiOperation, ApiParam, ApiResponse, ApiTags } from '@nestjs/swagger';
import { GroupsService } from './groups.service';
import { GetUser } from 'libs/decorators/get-user.decorator';
import { AtGuard } from 'src/auth/guards/at.guard';
Expand All @@ -12,7 +12,6 @@ import { CreateGroupsDto } from './dto/create-groups.dto';
@ApiTags('Group API')
@Controller('groups')
@UseGuards(AtGuard)
@ApiBearerAuth('access_token')
export class GroupsController {
constructor(private readonly groupsService: GroupsService) {}

Expand Down
Loading
Loading