katoikia-app/service-a/src/books/books.service.ts

40 lines
1.1 KiB
TypeScript
Raw Normal View History

2022-06-29 02:30:10 +00:00
import { Injectable } from '@nestjs/common';
import { CreateBookDto } from './dto/create-book.dto';
import { UpdateBookDto } from './dto/update-book.dto';
import { InjectModel } from '@nestjs/mongoose';
import { Book, BookDocument } from './schemas/book.schema';
import { Model } from 'mongoose';
2022-07-25 04:38:48 +00:00
import { Request } from 'express';
2022-06-29 02:30:10 +00:00
@Injectable()
export class BooksService {
constructor(
@InjectModel(Book.name) private readonly bookModel: Model<BookDocument>,
) {}
async create(book: BookDocument): Promise<Book> {
return this.bookModel.create(book);
}
2022-07-25 04:38:48 +00:00
async findAll(request: Request): Promise<Book[]> {
2022-06-29 02:30:10 +00:00
return this.bookModel
2022-07-25 04:38:48 +00:00
.find(request.query)
.setOptions({ sanitizeFilter: true })
2022-06-29 02:30:10 +00:00
.exec();
}
async findOne(id: string): Promise<Book> {
return this.bookModel.findOne({ _id: id }).exec();
}
2022-06-29 02:51:06 +00:00
async update(id: string, book: BookDocument) {
return this.bookModel.findOneAndUpdate({ _id: id }, book, {
2022-06-29 02:30:10 +00:00
new: true,
});
}
async remove(id: string) {
return this.bookModel.findByIdAndRemove({ _id: id }).exec();
}
2022-07-25 04:38:48 +00:00
}