From cbe131ed7ed5855f9c552f9c802cd83895dc0db1 Mon Sep 17 00:00:00 2001 From: siwonpada Date: Mon, 23 Dec 2024 17:20:34 +0900 Subject: [PATCH] [Documentation] lib documentation Fixes #95 --- libs/infoteam-idp/src/infoteam-idp.module.md | 30 ++++++++++++++++++++ libs/logger/src/index.ts | 2 ++ libs/logger/src/logger.decorator.register.ts | 3 ++ libs/logger/src/logger.module.md | 14 +++++++++ libs/logger/src/logger.module.ts | 1 + libs/object/src/object.module.md | 27 ++++++++++++++++++ libs/prisma/src/prisma.module.md | 28 ++++++++++++++++++ libs/prisma/src/prisma.service.ts | 3 ++ 8 files changed, 108 insertions(+) create mode 100644 libs/infoteam-idp/src/infoteam-idp.module.md create mode 100644 libs/logger/src/logger.module.md create mode 100644 libs/object/src/object.module.md create mode 100644 libs/prisma/src/prisma.module.md diff --git a/libs/infoteam-idp/src/infoteam-idp.module.md b/libs/infoteam-idp/src/infoteam-idp.module.md new file mode 100644 index 0000000..eec01f2 --- /dev/null +++ b/libs/infoteam-idp/src/infoteam-idp.module.md @@ -0,0 +1,30 @@ +# Infoteam idp Module + +인포팀의 idp를 더 쉽게 사용하기 위한 module입니다. + +## Environment + +사용되는 package들은 다음과 같습니다. + +- @nestjs/common +- @nestjs/config +- @nestjs/axios +- rxjs +- axios + +이용하기 위해서 필요한 설정 변수는 다음과 같습니다. + +``` env + IDP_URL=https://api.idp.gistory.me + IDP_CLIENT_ID=yourclientid + IDP_CLIENT_SECRET=yourclientsecret +``` + +위의 설정변수를 보면 알 수 있겠지만, 해당 모듈을 사용하기 위해서는 먼저 infoteam idp에서 client등록을 해야지 사용할 수 있습니다. + +## Function + +기능은 다음과 같습니다. + +- authorization_code를 이용해서 AccessToken으로 돌려받음. +- AccessToken을 이용해서, 해당 유저의 정보들을 돌려받음. diff --git a/libs/logger/src/index.ts b/libs/logger/src/index.ts index 712259a..2085e34 100644 --- a/libs/logger/src/index.ts +++ b/libs/logger/src/index.ts @@ -1 +1,3 @@ export * from './logger.module'; +export * from './logger.decorator.register'; +export * from './decorator/loggable'; diff --git a/libs/logger/src/logger.decorator.register.ts b/libs/logger/src/logger.decorator.register.ts index 7fd94f2..19e07fc 100644 --- a/libs/logger/src/logger.decorator.register.ts +++ b/libs/logger/src/logger.decorator.register.ts @@ -9,6 +9,9 @@ export class LoggerDecoratorRegister implements OnModuleInit { private readonly metadataScanner: MetadataScanner, ) {} + /** + * if the decorator, loggable, is founded, it will log before and after the method + */ onModuleInit() { return this.discoveryService .getProviders() diff --git a/libs/logger/src/logger.module.md b/libs/logger/src/logger.module.md new file mode 100644 index 0000000..2529d64 --- /dev/null +++ b/libs/logger/src/logger.module.md @@ -0,0 +1,14 @@ +# Logger Module + +logging을 더 편하게 하기 위한 module입니다. + +## Environment + +사용되는 package들은 다음과 같습니다. + +- @nestjs/core +- @nestjs/common + +## Function + +loggable이라는 데코레이터가 붙어있는 class의 함수가 실행시키기 이전, 이후의 함수의 로그를 찍는다. diff --git a/libs/logger/src/logger.module.ts b/libs/logger/src/logger.module.ts index 9451f01..480d369 100644 --- a/libs/logger/src/logger.module.ts +++ b/libs/logger/src/logger.module.ts @@ -5,5 +5,6 @@ import { LoggerDecoratorRegister } from './logger.decorator.register'; @Module({ imports: [DiscoveryModule], providers: [LoggerDecoratorRegister], + exports: [LoggerDecoratorRegister], }) export class LoggerModule {} diff --git a/libs/object/src/object.module.md b/libs/object/src/object.module.md new file mode 100644 index 0000000..728488c --- /dev/null +++ b/libs/object/src/object.module.md @@ -0,0 +1,27 @@ +# Object Module + +AWS의 S3를 더 쉽게 조작하기 위해서 사용되는 module입니다. + +## Environment + +사용되는 package들은 다음과 같습니다. + +- @nestjs/common +- @nestjs/config +- @aws-sdk/client-s3 + +이용하기 위해서 필요한 설정 변수는 다음과 같습니다. + +``` env + AWS_S3_REGION=yourbucketregion + AWS_S3_BUCKET=yourbucket + AWS_ACCESS_KEY_ID=xxxxxxxxxx + AWS_SECRET_ACCESS_KEY=xxxxxxx +``` + +## Function + +기능은 다음과 같습니다. + +- AWS S3에 object를 업로드합니다. +- AWS S3에 object를 삭제합니다. diff --git a/libs/prisma/src/prisma.module.md b/libs/prisma/src/prisma.module.md new file mode 100644 index 0000000..e42214e --- /dev/null +++ b/libs/prisma/src/prisma.module.md @@ -0,0 +1,28 @@ +# Prisma Module + +데이터베이스를 조작하기 위한 ORM, prisma를 nestjs의 module화 시킨 module입니다. + +## Environment + +사용되는 package들은 다음과 같습니다. + +- @nestjs/common +- @nestjs/config +- @prisma/client + +dev-package들은 다음과 같습니다. + +- prisma + +이용하기 위해서 필요한 설정 변수는 다음과 같습니다. + +``` env + DATABASE_URL=postgresql://janedoe:mypassword@localhost:5432/mydb +``` + +## Function + +기능은 다음과 같습니다. + +- 모듈이 켜질때, 데이터베이스에 연결함. +- 모듈이 꺼질떄, 데이터베이스에 연결을 해제함. diff --git a/libs/prisma/src/prisma.service.ts b/libs/prisma/src/prisma.service.ts index e8601e4..8c49a8b 100644 --- a/libs/prisma/src/prisma.service.ts +++ b/libs/prisma/src/prisma.service.ts @@ -2,6 +2,9 @@ import { Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { PrismaClient } from '@prisma/client'; +/** + * Service for using Prisma. + */ @Injectable() export class PrismaService extends PrismaClient