미리 import 와 네이밍을 맞춰서 편하게 사용할 수 있는 템플릿입니다.
work, Work,WORK 세 글자를 각각 원하는대로 바꾸면 됩니다.
src/01_controller/workModule.ts
import { Module } from '@nestjs/common';
import { WorkController } from 'src/01_controller/work/work.controller';
import { WorkUseCase } from 'src/02_usecase/work/work.usecase';
import { WorkService } from 'src/03_service/work/work.service';
import { WORKREPOSITORY } from 'src/03_service/work/work.repository.interface';
import { WorkRepository } from 'src/04_infrastructure/work/work.repository';
@Module({
controllers: [WorkController],
providers: [
WorkUseCase,
WorkService,
{
provide: WORKREPOSITORY,
useClass: WorkRepository,
},
],
})
export class WorkModule {}
src/01_controller/workController.ts
import { Controller, Get, Req, Res } from '@nestjs/common';
import { WorkRequestDto } from 'src/01_controller/work/work.request.dto';
import { WorkResponseDto } from 'src/01_controller/work/work.response.dto';
import { WorkUseCase } from 'src/02_usecase/work/work.usecase';
import { WorkUseCaseCommand } from 'src/02_usecase/work/work.command';
@Controller('work')
export class WorkController {
constructor(private readonly workUseCase: WorkUseCase) {}
@Get('work')
async work(@Req() req, @Res() res) {
const requestDto = new WorkRequestDto(req.user);
const command = new WorkUseCaseCommand(requestDto);
const result = await this.workUseCase.work(command);
return new WorkResponseDto(result);
}
}
src/01_controller/workRequestDto.ts
export class WorkRequestDto {
constructor(arg: any) {}
}
src/01_controller/workResponseDto .ts
export class WorkResponseDto {
constructor(result: any) {}
}
src/02_usecase/work/work.usecase.ts