@koalarx/nest-cli
Version:
Biblioteca de CLI para criação de projetos utilizando Koala Nest
31 lines (26 loc) • 1.15 kB
text/typescript
import { CreatePersonHandler } from '@/application/person/create/create-person.handler'
import { CreatePersonRequest } from '@/application/person/create/create-person.request'
import { CreatePersonResponse } from '@/application/person/create/create-person.response'
import { IController } from '@koalarx/nest/core/controllers/base.controller'
import { Controller } from '@koalarx/nest/core/controllers/controller.decorator'
import { Body, HttpCode, HttpStatus, Post } from '@nestjs/common'
import { ApiCreatedResponse } from '@nestjs/swagger'
import { PERSON_ROUTER_CONFIG } from './router.config'
(PERSON_ROUTER_CONFIG)
export class CreatePersonController
implements IController<CreatePersonRequest, CreatePersonResponse>
{
constructor(private readonly handler: CreatePersonHandler) {}
()
({ type: CreatePersonResponse })
(HttpStatus.CREATED)
async handle(
() request: CreatePersonRequest,
): Promise<CreatePersonResponse> {
const response = await this.handler.handle(request)
if (response.isFailure()) {
throw response.value
}
return response.value
}
}