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 { Injectable } from '@nestjs/common';
import { GenreDto } from './dto/genre.dto'; import { GenreDto } from './dto/genre.dto';
import { InjectModel } from '@nestjs/mongoose';
import { Genre } from './entities/genre.entity';
import { Model } from 'mongoose';
@Injectable() @Injectable()
export class GenresService { export class GenresService {
create(dto: GenreDto) { constructor(@InjectModel('Genre') private genreModel: Model<Genre>) {}
return 'This action adds a new genre';
async create(dto: GenreDto): Promise<any> {
const genre = new this.genreModel(dto);
return genre.save();
} }
findAll() { async findAll(page: number, genresPerPage: number): Promise<any> {
return `This action returns all genres`; 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) { async findId(id: string): Promise<any> {
return `This action returns a #${id} genre`; return this.genreModel.findById(id);
} }
update(id: number, dto: GenreDto) { async remove(id: string): Promise<any> {
return `This action updates a #${id} genre`; return this.genreModel.findByIdAndDelete(id);
}
remove(id: number) {
return `This action removes a #${id} genre`;
} }
} }