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: 42 API로부터 사용자의 과제 정보 받아오는 기능 구현 #690

Conversation

nyj001012
Copy link
Contributor

개요

  • 도서 추천 컨트롤러 추가
  • books.routes.ts에서 도서 추천 라우터 순서 변경
  • 도서 추천 컨트롤러 내에서 42 API 통신 테스트

비고

  • 어차피 access_token 만료 기간 짧은 거 그냥 API 호출 때마다 새로 토큰 받아오면 안 되나?
    • 그러면 너무 느릴까?

- 도서 추천 컨트롤러 추가
- books.routes.ts에서 도서 추천 라우터 순서 변경
- 도서 추천 컨트롤러 내에서 42 API 통신 테스트
@nyj001012 nyj001012 linked an issue Aug 21, 2023 that may be closed by this pull request
@nyj001012 nyj001012 self-assigned this Aug 21, 2023
@nyj001012 nyj001012 temporarily deployed to development August 21, 2023 11:33 — with GitHub Actions Inactive
@nyj001012 nyj001012 added the enhancement New feature or request label Aug 21, 2023
@nyj001012 nyj001012 changed the title feat(books): 도서 추천 컨트롤러 추가 42 API로부터 사용자의 과제 정보 받아오는 기능 구현 Aug 22, 2023
- access token을 가져오는 함수 서비스에 구현
- user의 42 API 상 id를 가져오는 함수 서비스에 구현
- 사용자의 과제 정보를 가져오는 서비스 함수 추가
- 사용자의 과제 정보를 담을 DTO 정의(추후 schema로 변경)
@nyj001012 nyj001012 temporarily deployed to development August 22, 2023 04:55 — with GitHub Actions Inactive
@nyj001012 nyj001012 temporarily deployed to development August 22, 2023 05:09 — with GitHub Actions Inactive
* description: error decription
* example: { errorCode: 500 }
*/
.get('/recommand', authValidate(roleSet.all), recommandBook);

Check failure

Code scanning / CodeQL

Missing rate limiting

This route handler performs [authorization](1), but is not rate-limited.
@nyj001012 nyj001012 changed the title 42 API로부터 사용자의 과제 정보 받아오는 기능 구현 feat: 42 API로부터 사용자의 과제 정보 받아오는 기능 구현 Aug 22, 2023
@nyj001012 nyj001012 temporarily deployed to development August 22, 2023 05:58 — with GitHub Actions Inactive
- 사용자의 intraId를 DB에서 조회하게 변경
- access_token을 service의 전역변수로 설정
- access_token값이 만료될 경우, 재발급 후 42API와 통신
@nyj001012 nyj001012 temporarily deployed to development August 25, 2023 06:17 — with GitHub Actions Inactive
@nyj001012 nyj001012 marked this pull request as ready for review August 25, 2023 06:17
}
}
}
res.status(status.OK).send();
Copy link
Member

Choose a reason for hiding this comment

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

send가 비어있는 거면 응답으로 아무것도 보내주지 않는 건가요?

Copy link
Contributor Author

@nyj001012 nyj001012 Aug 26, 2023

Choose a reason for hiding this comment

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

넵 지금은 그냥 상태값만 보내주고 있어요.
추후 도서 목록을 보내줄 예정입니다 :)

Copy link
Member

Choose a reason for hiding this comment

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

아하 그렇군요! 잘 보았습니다.

Copy link
Member

Choose a reason for hiding this comment

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

그러면 헤더만 전송되는건가요?

Copy link
Member

@Jiwon-Woo Jiwon-Woo left a comment

Choose a reason for hiding this comment

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

확인했습니다.

Copy link
Member

@Jake1152 Jake1152 left a comment

Choose a reason for hiding this comment

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

코드 잘 보았습니다 :)

backend/src/v1/books/books.controller.ts Show resolved Hide resolved
backend/src/v1/books/books.controller.ts Show resolved Hide resolved
@nyj001012 nyj001012 merged commit 919fb4a into develop Aug 26, 2023
nyj001012 added a commit that referenced this pull request Aug 26, 2023
* feat(books): 도서 추천 컨트롤러 추가

- 도서 추천 컨트롤러 추가
- books.routes.ts에서 도서 추천 라우터 순서 변경
- 도서 추천 컨트롤러 내에서 42 API 통신 테스트

* feat(books): 컨트롤러 내 함수를 서비스 함수로 분리

- access token을 가져오는 함수 서비스에 구현
- user의 42 API 상 id를 가져오는 함수 서비스에 구현

* feat(books): 사용자의 과제 정보 가져오는 모듈 추가

- 사용자의 과제 정보를 가져오는 서비스 함수 추가
- 사용자의 과제 정보를 담을 DTO 정의(추후 schema로 변경)

* feat(books): 사용자 login을 인자로 받아 프로젝트 받아오게 함

* feat(books): authvalidate 호출, req.user에 유저 정보를 담음

* feat: Project 타입에 marked_at 추가

* feat(books): 사용자의 project 정보 가져오는 컨트롤러 및 서비스 수정

- 사용자의 intraId를 DB에서 조회하게 변경
- access_token을 service의 전역변수로 설정
- access_token값이 만료될 경우, 재발급 후 42API와 통신
nyj001012 added a commit that referenced this pull request Aug 28, 2023
* feat(cursus): 과제 정보 가져오는 API 추가

- 과제 정보 가져오는 라우터 추가
- 과제 정보 관련 컨트롤러 추가

* feat: 42 API로부터 사용자의 과제 정보 받아오는 기능 구현 (#690)

* feat(books): 도서 추천 컨트롤러 추가

- 도서 추천 컨트롤러 추가
- books.routes.ts에서 도서 추천 라우터 순서 변경
- 도서 추천 컨트롤러 내에서 42 API 통신 테스트

* feat(books): 컨트롤러 내 함수를 서비스 함수로 분리

- access token을 가져오는 함수 서비스에 구현
- user의 42 API 상 id를 가져오는 함수 서비스에 구현

* feat(books): 사용자의 과제 정보 가져오는 모듈 추가

- 사용자의 과제 정보를 가져오는 서비스 함수 추가
- 사용자의 과제 정보를 담을 DTO 정의(추후 schema로 변경)

* feat(books): 사용자 login을 인자로 받아 프로젝트 받아오게 함

* feat(books): authvalidate 호출, req.user에 유저 정보를 담음

* feat: Project 타입에 marked_at 추가

* feat(books): 사용자의 project 정보 가져오는 컨트롤러 및 서비스 수정

- 사용자의 intraId를 DB에서 조회하게 변경
- access_token을 service의 전역변수로 설정
- access_token값이 만료될 경우, 재발급 후 42API와 통신

* refactor: getAccessToken() 함수 auth로 이동

* feat: 42API로부터 과제 정보 받아오는 API 변경

- index에 등록 및 라우터 반환값 수정

* feat(cursus): 42 API로부터 과제 정보 받아와서 저장하는 모듈 추가

- router 작성
- controller 추가
- service 추가

* feat(cursus): cursus의 서비스 파일 추가

* refactor: 변수명 path에서 uri로 변경

* feat(cursus): mode로 파일 덮어쓰기 및 붙여쓰기 결정

- mode 추가하여 파일 덮어쓸지 이후에 붙여쓸지를 결정
- json화 할 때 들여쓰기 적용

* feat(cursus): 빈 배열은 저장되지 않게 함

* feat(cursus): error 처리

* feat(cursus): error 시 반환 값 추가

* feat(cursus): 관련 DTO 추가

- ProjectFrom42 추가
- Campus 추가
- Cursus 추가

* feat: express-rate-limit 적용

- express-rate-limit 적용으로 분당 100회로 요청 횟수 제한

* feat: express-rate-limit을 books/recommand에만 적용

* feat(app): express-rate-limit 전체 적용

- express-rate-limit 전체 적용
- 오타 수정

* feat: rate limiter 호출 순서 변경

* feat: express rate limit 적용
@scarf005 scarf005 deleted the 684-42-api로부터-사용자의-과제-정보-받아오는-기능-구현 branch September 14, 2023 05:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: 완료
Development

Successfully merging this pull request may close these issues.

42 API로부터 사용자의 과제 정보 받아오는 기능 구현
3 participants