diff --git a/.github/workflows/be-cd-dev.yml b/.github/workflows/be-cd-dev.yml index d4fe36a..26833d0 100644 --- a/.github/workflows/be-cd-dev.yml +++ b/.github/workflows/be-cd-dev.yml @@ -5,6 +5,10 @@ on: branches: - dev +defaults: + run: + working-directory: ./BE + jobs: build: runs-on: self-hosted @@ -20,4 +24,4 @@ jobs: sudo docker build -t ${{secrets.BE_DOCKER_USERNAME}}/${{secrets.BE_DOCKER_REPO}}:${{secrets.DOCKER_DEV_TAG}} --platform linux/amd64 . sudo docker push ${{secrets.BE_DOCKER_USERNAME}}/${{secrets.BE_DOCKER_REPO}}:${{secrets.DOCKER_DEV_TAG}} - name: Run Docker Container - run: sudo docker run -d -p 8080:8080 -e TZ=Asia/Seoul --name ${{secrets.BE_DOCKER_CONTAINER}} ${{secrets.BE_DOCKER_USERNAME}}/${{secrets.BE_DOCKER_REPO}}:${{secrets.DOCKER_DEV_TAG}} + run: docker run --oom-kill-disable --restart on-failure -d -p 80:8080 -e TZ=Asia/Seoul --name ${{secrets.BE_DOCKER_CONTAINER}} ${{secrets.BE_DOCKER_USERNAME}}/${{secrets.BE_DOCKER_REPO}}:${{secrets.DOCKER_DEV_TAG}} diff --git a/BE/src/app.controller.ts b/BE/src/app.controller.ts index 3edf3b6..3ff45f3 100644 --- a/BE/src/app.controller.ts +++ b/BE/src/app.controller.ts @@ -1,16 +1,19 @@ import { Controller, Get } from '@nestjs/common'; import { AppService } from './app.service'; +import { ApiExcludeEndpoint } from '@nestjs/swagger'; @Controller() export class AppController { constructor(private readonly appService: AppService) {} @Get() + @ApiExcludeEndpoint() async getHello() { return this.appService.getHello(); } @Get('/initializeDummy') + @ApiExcludeEndpoint() async saveDummy() { await this.appService.saveDummy(); } diff --git a/BE/src/auth/service/auth.service.ts b/BE/src/auth/service/auth.service.ts index 258b19b..b783c17 100644 --- a/BE/src/auth/service/auth.service.ts +++ b/BE/src/auth/service/auth.service.ts @@ -8,8 +8,7 @@ import { CategoryRepository } from '../../category/repository/category.repositor import { QuestionRepository } from '../../question/repository/question.repository'; import { Category } from '../../category/entity/category'; import { Question } from '../../question/entity/question'; - -const BEARER_PREFIX: string = 'Bearer '; +import { BEARER_PREFIX } from 'src/constant/constant'; @Injectable() export class AuthService { diff --git a/BE/src/constant/constant.ts b/BE/src/constant/constant.ts index 34502a5..48ff5a6 100644 --- a/BE/src/constant/constant.ts +++ b/BE/src/constant/constant.ts @@ -1,5 +1,7 @@ import 'dotenv/config'; +export const BEARER_PREFIX: string = 'Bearer '; + export const companies = [ '네이버', '카카오', diff --git a/BE/src/token/service/token.service.ts b/BE/src/token/service/token.service.ts index 31e3296..e65c4aa 100644 --- a/BE/src/token/service/token.service.ts +++ b/BE/src/token/service/token.service.ts @@ -69,6 +69,10 @@ export class TokenService { } } + async getDevToken() { + return this.createToken(1); // 1번은 developndd 이메일로 가입한 개발자용 회원임 + } + private async findByAccessToken(accessToken: string) { return await this.tokenRepository.findByAccessToken(accessToken); } diff --git a/BE/src/token/token.controller.ts b/BE/src/token/token.controller.ts new file mode 100644 index 0000000..7789e97 --- /dev/null +++ b/BE/src/token/token.controller.ts @@ -0,0 +1,17 @@ +import { Controller, Get, Res } from '@nestjs/common'; +import { TokenService } from './service/token.service'; +import { Response } from 'express'; +import { BEARER_PREFIX } from 'src/constant/constant'; +import { ApiExcludeEndpoint } from '@nestjs/swagger'; + +@Controller('/api/token') +export class TokenController { + constructor(private tokenService: TokenService) {} + + @Get() + @ApiExcludeEndpoint() + async getDevToken(@Res() res: Response) { + const devToken = await this.tokenService.getDevToken(); + res.setHeader('Authorization', `${BEARER_PREFIX} ${devToken}`).send(); + } +} diff --git a/BE/src/token/token.module.ts b/BE/src/token/token.module.ts index 87260aa..d0448ba 100644 --- a/BE/src/token/token.module.ts +++ b/BE/src/token/token.module.ts @@ -10,6 +10,7 @@ import { ConfigModule, ConfigService } from '@nestjs/config'; import { JwtModule } from '@nestjs/jwt'; import 'dotenv/config'; import { AccessTokenStrategy } from './strategy/access.token.strategy'; +import { TokenController } from './token.controller'; @Module({ imports: [ @@ -30,5 +31,6 @@ import { AccessTokenStrategy } from './strategy/access.token.strategy'; AccessTokenStrategy, ], exports: [TokenService], + controllers: [TokenController], }) export class TokenModule {}