Skip to content

Instantly share code, notes, and snippets.

@newerton
Created September 20, 2022 16:33
Show Gist options
  • Save newerton/fc3bff87518b9efed6df2903f4a66d4f to your computer and use it in GitHub Desktop.
Save newerton/fc3bff87518b9efed6df2903f4a66d4f to your computer and use it in GitHub Desktop.
import { Controller, Post, Body } from '@nestjs/common';
import { CreateBookDto, CreateBookResponseDto } from '../core/dtos';
import { BookServices, BookFactoryService } from '../services/use-cases/book';
@Controller('api/book')
export class BookController {
constructor(
private bookServices: BookServices,
private bookFactoryService: BookFactoryService,
) {}
@Post()
async createBook(@Body() bookDto: CreateBookDto) {
const createBookResponse = new CreateBookResponseDto();
try {
const book = this.bookFactoryService.createNewBook(bookDto);
const createdBook = await this.bookServices.createBook(book);
createBookResponse.success = true;
createBookResponse.createdBook = createdBook;
} catch (error) {
// report and log error
createBookResponse.success = false;
}
return createBookResponse;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment