Genres: complete service

This commit is contained in:
Toast 2025-02-07 11:16:21 +01:00
parent c0c9ebb038
commit a3dd007bde

View file

@ -1,25 +1,38 @@
import { Injectable } from '@nestjs/common';
import { GenreDto } from './dto/genre.dto';
import { InjectModel } from '@nestjs/mongoose';
import { Genre } from './entities/genre.entity';
import { Model } from 'mongoose';
@Injectable()
export class GenresService {
create(dto: GenreDto) {
return 'This action adds a new genre';
constructor(@InjectModel('Genre') private genreModel: Model<Genre>) {}
async create(dto: GenreDto): Promise<any> {
const genre = new this.genreModel(dto);
return genre.save();
}
findAll() {
return `This action returns all genres`;
async findAll(page: number, genresPerPage: number): Promise<any> {
let genres;
if (genresPerPage !== undefined) {
const skip = (page - 1) * genresPerPage;
genres = await this.genreModel.find().skip(skip).limit(genresPerPage);
} else {
genres = await this.genreModel.find();
}
const total = await this.genreModel.countDocuments();
return {
genres: genres,
genreCount: total,
};
}
findOne(id: number) {
return `This action returns a #${id} genre`;
async findId(id: string): Promise<any> {
return this.genreModel.findById(id);
}
update(id: number, dto: GenreDto) {
return `This action updates a #${id} genre`;
}
remove(id: number) {
return `This action removes a #${id} genre`;
async remove(id: string): Promise<any> {
return this.genreModel.findByIdAndDelete(id);
}
}