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

feat!: Tag && Type #557

Merged
merged 55 commits into from
Jul 9, 2023
Merged

feat!: Tag && Type #557

merged 55 commits into from
Jul 9, 2023

Conversation

jimin52
Copy link
Member

@jimin52 jimin52 commented Jul 9, 2023

개요

태그기능 추가, zod 추가

middlefitting and others added 30 commits May 17, 2023 15:42
리뷰 컨트롤러가 두번씩 호출되는 에러 수정
* chore(tag): checkout 후 merge된 부분 수정

merge가 잘못된 부분 수정

* feat(tag): condition에 isPublic 추가

condition에 isPublic 추가

* docs(tag): swagger example 도서명 통일

swagger exmaple 도서명 깐깐하게 배우는 C에서 개발자의 코드로 변경

* feat(tag): merge 및 id에 해당하는 태그가 몇 개 있는지 세는 함수 추가

merge 및 id에 해당하는 태그가 몇 개 있는지 세는 함수 추가

* feat(tag): merge service 구현

merge service 구현

* chore(tag): 함수 오타 수정

함수 오타 수정

* feat(tag): 유효하지 않은 태그 id의 에러 코드 추가

유효하지 않은 태그 id의 에러 코드 추가

* feat(tag): id를 패러미터로 받는 것 대신 object로 조건을 받게 함

id를 패러미터로 받는 것 대신 object로 조건을 받게 함

* feat(tag): 유효한 태그 id들인지 확인하는 함수 추가

유효한 태그 id들인지 확인하는 함수 추가

* feat(tag): tag merge 컨트롤러 추가

tag merge 컨트롤러 추가

* feat(tag): 라우터와 컨트롤러 연결

라우터와 컨트롤러 연결

* chore(tag): tag DTO 파일 위치 및 이름 변경

tag DTO 파일 위치 및 이름 변경

* feat(tag): /tags patch 구현

/tags patch의 controller, service, repository 구현

* feat(tag): next를 리턴하도록 함

next를 실행하는 것이 아니라 리턴하도록 함

* docs(tag): 불필요한 request 삭제

불필요한 request 삭제

* feat(tag): superTagId가 default일 경우 예외 처리 추가

superTagId가 default일 경우 예외 처리 추가

* docs(tag): 불필요햔 parameter 제거

불필요햔 parameter 제거

* docs(tag): 디폴트 태그에 대한 에러 코드 추가

디폴트 태그에 대한 수정 작업 시, 디폴트 태그는 수정 불가임을 알리는 에러 코드 추가

* docs(tag): 서브 태그 수정 추가 및 줄맞춤

서브 태그 수정 추가 및 줄맞춤

* feat(tag): 서브 태그 수정 기능 추가

서브 태그는 비공개 여부만 수정할 수 있게 함

* docs(tag): 일부 문구 수정

일부 문구 수정

* feat(tag): response 시, id 값 반환

response 시, id 값 반환
* feat(tag): 컨트롤러 틀 생성

컨트롤러 틀 생성

* feat(tag): 엔티티 수정

엔티티 수정

* feat(tag): 컨트롤러 추가

컨트롤러 추가

* feat(tag): 서비스 구현

서비스 구현

* feat(tag): 라우터 인덱스 추가

라우터 인덱스 추가

* feat(tag): bookInfoId 컬럼추가

bookInfoId 컬럼추가

* feat(tag): 경로 재설정 및 불필요한 코드 제거

경로 재설정 및 불필요한 코드 제거

* feat(tag): 레포지토리 추가

레포지토리 추가

* chore(tag): entity lint 수정

entity 정의 부분 lint에 맞게 수정

* feat(tag): import error 수정

import 정상 작동하도록 수정

* chore(tag): eslint 수정

eslint 수정

* chore(tag): eslint 수정

eslint 수정

* feat(tag): getDefaultTagId 함수 추가

getDefaultTagId 함수 추가

* feat(tag): Tag Error Code 추가

Tag Error Code 추가

* feat(tag): 'userid' 에서 'userId' 로 변경

'userid' 에서 'userId' 으로 변경

* feat(tag): Repository 함수 변경

Repository 함수 변경

* feat(tag): 함수 추가 및 마이너한 변경

함수 추가 및 마이너한 변경

* chore(tag): eslint 수정

eslint 수정

* feat(tag): service에서 객체가 아닌 클래스를 export

service.ts 에서 객체를 export하는 게 아니라 클래스를 export하게 함

* feat(tag): class default 삭제

class default 삭제

* feat(tag): wrapAsyncController 제거

wrapAsyncController 제거

* feat(tag): HTTP 응답값 변경

HTTP 응답값 변경

* feat(tag): regex 추가

regex 추가

* feat(tag): 유효한 입력 값인지 확인하는 모듈 controller로 옮김

tag의 input값이 유효한지 확인하는 모듈을 controller에서 동작하도록 수정

* feat(tag): 라우트 경로설정

라우트 경로설정

* feat(tag): 주석 삭제 및 슈퍼태그 함수 생성

주석 삭제 및 슈퍼태그 함수 생성

* feat(tag): 컨텐트 trim 추가

컨텐트 trim 추가

* feat(tag): delete routes 추가

delete routes 추가

* feat(tag): 컨트롤러 delete Super/Sub 태그 생성

컨트롤러 delete Super/Sub 태그 생성

* feat(tag): 리포지토리 delete Super/Sub 태그 생성

리포지토리 delete Super/Sub 태그 생성

* feat(tag): 서비스 delete Super/Sub 태그 추가

서비스 delete Super/Sub 태그 추가

* feat(tag): routes 경로설정

routes 경로 설정

* feat(tag): 변수명 재설정

변수명 재설정

---------

Co-authored-by: yena <50291995+nyj001012@users.noreply.github.com>
merge 후 동작하지 않는 부분 수정
* feat(tag): 라우트 에러코드 수정

라우트 에러코드 수정

* feat(tag): errorcode, regex 수정

errorcode, regex 수정
* bug(tag): merge 시, 사서가 아니라면 권한 없음 에러 발생하게 함

merge 시, 사서가 아니라면 권한 없음 에러 발생하게 함

* feat(tag): 라우터 권한만 all로 하고, 나머지 권한 처리 삭제

라우터 권한만 all로 하고, 나머지 권한 처리 삭제

* bug(tag): 슈퍼 태그에 속한 서브 태그의 개수가 정상적으로 보이지 않는 문제 해결

슈퍼 태그에 속한 서브 태그의 개수가 정상적으로 보이지 않는 문제 해결

* bug(tag): 디폴트 태그가 없다면 해당 디폴트 태그의 내용을 조회하지 않게 함

디폴트 태그가 없다면 해당 디폴트 태그의 내용을 조회하지 않게 함

* feat(tag): isDeleted, isPublic 적용

isDeleted, isPublic 적용
* bug(tag): merge 시, 사서가 아니라면 권한 없음 에러 발생하게 함

merge 시, 사서가 아니라면 권한 없음 에러 발생하게 함

* feat(tag): 라우터 권한만 all로 하고, 나머지 권한 처리 삭제

라우터 권한만 all로 하고, 나머지 권한 처리 삭제

* bug(tag): 슈퍼 태그에 속한 서브 태그의 개수가 정상적으로 보이지 않는 문제 해결

슈퍼 태그에 속한 서브 태그의 개수가 정상적으로 보이지 않는 문제 해결

* bug(tag): 디폴트 태그가 없다면 해당 디폴트 태그의 내용을 조회하지 않게 함

디폴트 태그가 없다면 해당 디폴트 태그의 내용을 조회하지 않게 함

* feat(tag): isDeleted, isPublic 적용

isDeleted, isPublic 적용

* feat(tag): /api/tags/{bookInfoId} 에서 login도 조회하게 함

/api/tags/{bookInfoId} 에서 login도 조회하게 함
* feat(tag): 레포지토리에서 count를 integer로 형변환하여 반환

레포지토리에서 count를 integer로 형변환하여 반환

* feat(tag): 레포지토리가 아닌 서비스에서 형변환 진행

레포지토리가 아닌 서비스에서 형변환 진행
* feat(tag): bookInfoId가 유효한지 확인하는 모듈 추가

bookInfoId가 유효한지 확인하는 모듈 추가

* feat(tag): regex, next return값 수정

regex, next return값 수정

* feat(tag): console.log 삭제

console.log 삭제

---------

Co-authored-by: cjho0316 <cjho03160316@gmail.com>
* feat(tag): view에 visibility 추가 및 DTO에도 해당 사항 반영

view에 visibility 추가 및 DTO에도 해당 사항 반영

* docs(tag): visibility 응답 스키마 추가

visibility 응답 스키마 추가

* feat(tag): 삭제된 태그는 가져오지 않게 함

삭제된 태그는 가져오지 않게 함

* Update backend/src/DTO/tags.model.ts

Co-authored-by: sujikim <sujikim@student.42seoul.kr>

---------

Co-authored-by: sujikim <sujikim@student.42seoul.kr>
* feat(tag): 레포지토리에서 count를 integer로 형변환하여 반환

레포지토리에서 count를 integer로 형변환하여 반환

* feat(tag): 레포지토리가 아닌 서비스에서 형변환 진행

레포지토리가 아닌 서비스에서 형변환 진행

* docs(tag): 태그가 슈퍼인지 디폴트인지 구분하는 type 추가

태그가 슈퍼인지 디폴트인지 구분하는 type 추가

* feat(tag): DTO에 type 추가 및 값 할당

DTO에 type 추가

* Update backend/src/DTO/tags.model.ts

Co-authored-by: sujikim <sujikim@student.42seoul.kr>

---------

Co-authored-by: sujikim <sujikim@student.42seoul.kr>
서브 태그 공개 여부 수정은 사서만 가능하게 함
* build: 패키지 관리자를 프론트엔드와 같은 pnpm으로 통일

- yarn.lock을 pnpm-lock.yaml으로 전환

* build: yarn 대신 pnpm 사용

* style: 공백 제거
* docs(tag): merge의 superTagId에 null을 허용하게 함

superTagId가 null일 경우, 디폴트 태그로의 병합을 의미하도록 수정

* feat(tag): 슈퍼 태그와 서브 태그의 유효성 검사를 분리

슈퍼 태그와 서브 태그의 유효성 검사를 한 번에 하던 작업을 분리함

* feat(tag): 서브 태그를 디폴트 태그로도 옮길 수 있게 함

서브 태그를 디폴트 태그로도 옮길 수 있게 함

* chore(tag): 불필요한 함수 제거

불필요한 함수 제거

* Update tags.controller.ts
* feat(tag): 슈퍼태그 리턴값 생성

슈퍼태그 리턴값 생성

* feat(tag): getSuperTagLogin 함수 생성

login 반환해주는 함수

* feat(tag): createSuperTags의 return생성

createSuperTags의 return생성
* feat(tag): 디폴트 태그 생성 시 중복 검사하는 모듈 추가

디폴트 태그를 생성할 때, 기존의 서브 및 디폴트 태그와 내용이 같은지 확인함

* feat(tag): 슈퍼 태그 생성 시 중복 검사하는 모듈 추가

슈퍼 태그를 생성할 때, 기존의 슈퍼 태그와 내용이 같은지 확인함

* docs(tag): POST 스웨거 에러 코드 변경

POST에서 스웨거 에러 코드 변경
도서 상세 페이지, 병합 용의 태그를 조회할 때 태그 내용으로도 조회 가능하게 함
* bug(tag): bookInfoId를 가져올 때 params에서 가져오게 함

bookInfoId를 가져올 때 request body가 아닌 params에서 가져오게 함

* feat(tag): bookInfoId 유효성 검사에서 null, undefined, 0인 경우 추가

bookInfoId 유효성 검사에서 null, undefined, 0인 경우, DB를 거치지 않고 바로 false를 반환하게 함

* chore(tag): merge 시 request param들 Number 형으로 명시적 형변환

merge 시 request param들 Number 형으로 명시적 형변환
* feat(tag): queryRunner를 해제하는 함수 추가

tagService 멤버 변수 queryRunner를 해제하는 함수 추가

* feat(tag): tagsService의 사용이 끝나면 컨트롤러에서 connection release

tagsService의 사용이 끝나면 컨트롤러에서 connection release함으로써 연결 해제
* fix(tag): superTagId가 null인지 검사 시, === null 대신 === 0 사용

superTagId를 Number로 형변환하여 사용 시, null을 검사할 때 0인지 확인하는 방법을 적용

* fix(tag): default tag id 반환 시, id 0이 반환되는 것 수정

컨트롤러에서 default tag id 반환 시, 0이 반환되지 않고 해당 default tag id가 반환되도록 수정
* fix(tag): superTag delete 시, NaN 체크 추가

superTag를 delete 할 때, superTagId가 0인지 및 NaN인지 체크하는 로직 추가

* fix(tag): default tag delete 시, NaN 체크 추가

defaultTag delete 할 때, defaultTagId가 0인지 및 NaN인지 체크하는 로직 추가
orderBy() -> addOrderBy()

Co-authored-by: scarf <greenscarf005@gmail.com>
scarf005 and others added 25 commits June 20, 2023 17:40
…-경우-만들기

refactor: repository 반환값이 `any`인 메서드에 타입 명시
* bug(history): 정렬 조건을 수정 시간 내림차순으로 변경

기록 조회 시, 정렬 조건을 수정 시간 내림차순으로 변경

* bug(history): 반납 시, updatedAt 값 갱신하도록 수정

반납 시, updatedAt의 값도 갱신하도록 수정
* feat(tag): entityManager, createDefaultTags의 넘겨주는 값 변경

entityManager, createDefaultTags의 넘겨주는 값 변경

* feat(tag): createDefaultTags에서 넘겨주는 set 생성

createDefaultTags에서 넘겨주는 set 생성
* style: eslint 적용

* chore: `scripts`에 lint 명령어 추가
일반 개발용 tsconfig.json과 배포용 tsconfig.prod.json (spec.ts 제외)로 분리
* chore: env 타입 설명을 `@types/` 경로로 이동

`typeRoots`에 명시적으로 포함

* refactor: env/ 경로 생성

process.env 처리 위치를 통일하기 위한 경로입니다.

* refactor: getConnectOption 분리

* refactor: destructuring 중복 제거

* feat: 42 oauth API 파싱

* feat: 네이버 도서검색 API 파싱

* refactor: env.ts를 index.ts로 변경

* refactor: MODE 환경 변수를 별개 스키마로 분리

* refactor: oauth URL 분리

* feat: jwt 설정 파싱

* chore: 사용하지 않는 config의 nodeEnv와 mode 필드 제거

* refactor: log level 타입 강화

* feat: isbn API 파싱

* feat: 슬랙봇 Oauth 토큰 파싱

* refactor: process.env.MODE 대신 connectMode 사용

* feat: NODE_ENV 파싱

* feat: loglevel 파싱

* refactor: config.databse 필드 제거

* refactor: oauth옵션 사용

* refactor: config.ts 제거

* refactor: Option으로 파일명 통일

* chore: env -> config로 이름 변경

.env와 혼동 가능성을 줄이기 위해 config로 이름을 변경했습니다.

* docs: 타입 추출 및 docstring 추가
* feat: user controller search 함수의 request 의 타입 추가 및 검사

* feat: add zod test case in users.controller.ts

* refactor: zod 스키마명 단순화

Co-authored-by: jhmin95 <tesla52@naver.com>
* build: http-terminator 설치

* fix: graceful shutdown 구현

nodemon등으로 빠르게 재시작시 기존 포트가 사용중이어서 오류가 발생하는 경우가 있습니다.
종료 및 재시작 시그널을 받을 시 기존 연결을 끊고 종료하도록 수정하였습니다.
* feat: `createReviews` zod로 파싱

* feat: `getReviews` zod로 파싱

* refactor: id 파싱을 userSchema로 대체

* refactor: 리뷰 patch 및 delete에 zod 적용
* build: winston과 dotenv의 불필요한 타입 패키지 제거

두 패키지는 이미 패키지 내부에 타입 정의가 되어있기 때문에 제거했습니다.

* build: devDependencies 버전 최신화

- typescript를 제외하고 devDependencies 패키지의 버전을 모두 최신화
- @typescript-eslint와의 호환성을 위해 typescript 버전을 5.0.4로 고정

* chore: eslint에서 typeorm 자동 생성 파일 무시

* fix: ignorePattern에서 entity 제거

Co-authored-by: yena <50291995+nyj001012@users.noreply.github.com>

* ci: 배포 노드 버전 20으로 업데이트

* build: 노드 20 이하 버전 사용시 경고

---------

Co-authored-by: nocontribute <>
Co-authored-by: yena <50291995+nyj001012@users.noreply.github.com>
요구 노드 버전이 20으로 상승한 #527 (2023-07-01) 이후로 노드 버전을 업데이트한 경우 (20.3.0 릴리즈: 2023-06-26)에는
(#547)을 일으킨 버그가 수정되었으므로 추가 다운그레이드가 필요하지 않습니다.
users 저장소에서 혼자서 다른 쿼리러너를 사용중이어서 올바르게 자원 해제가 되지 않고 있었습니다.
* build: add pnpm-lock
* ci: 수동 배포 허용

---------
Co-authored-by: Ji-Hyuck, Min <45284810+jhMin95@users.noreply.github.com>
Co-authored-by: gilee <gilee@student.42seoul.kr>
Co-authored-by: jhmin95 <tesla52@naver.com>
Copy link
Member

@scarf005 scarf005 left a comment

Choose a reason for hiding this comment

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

신비한 git의 세계...

Copy link
Contributor

@nyj001012 nyj001012 left a comment

Choose a reason for hiding this comment

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

LGTM

@jimin52 jimin52 merged commit d7e0fd8 into main Jul 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants