From e6755b39ed8c77733655d16e3201ce52f033976d Mon Sep 17 00:00:00 2001 From: Toast Date: Fri, 7 Feb 2025 09:57:52 +0100 Subject: [PATCH] Add genres crud --- src/app.module.ts | 2 ++ src/genres/dto/genre.dto.ts | 1 + src/genres/entities/genre.entity.ts | 1 + src/genres/genres.controller.ts | 33 +++++++++++++++++++++++++++++ src/genres/genres.module.ts | 9 ++++++++ src/genres/genres.service.ts | 25 ++++++++++++++++++++++ src/genres/schema/genres.schema.ts | 6 ++++++ 7 files changed, 77 insertions(+) create mode 100644 src/genres/dto/genre.dto.ts create mode 100644 src/genres/entities/genre.entity.ts create mode 100644 src/genres/genres.controller.ts create mode 100644 src/genres/genres.module.ts create mode 100644 src/genres/genres.service.ts create mode 100644 src/genres/schema/genres.schema.ts diff --git a/src/app.module.ts b/src/app.module.ts index 1204ef4..5d656da 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -4,6 +4,7 @@ import { AppService } from './app.service'; import { ConfigModule } from '@nestjs/config'; import { MongooseModule } from '@nestjs/mongoose'; import { ShowsModule } from './shows/shows.module'; +import { GenresModule } from './genres/genres.module'; import * as Joi from 'joi'; @Module({ @@ -19,6 +20,7 @@ import * as Joi from 'joi'; }), MongooseModule.forRoot(process.env.URI), ShowsModule, + GenresModule, ], controllers: [AppController], providers: [AppService], diff --git a/src/genres/dto/genre.dto.ts b/src/genres/dto/genre.dto.ts new file mode 100644 index 0000000..156a0f6 --- /dev/null +++ b/src/genres/dto/genre.dto.ts @@ -0,0 +1 @@ +export class GenreDto {} diff --git a/src/genres/entities/genre.entity.ts b/src/genres/entities/genre.entity.ts new file mode 100644 index 0000000..9baca75 --- /dev/null +++ b/src/genres/entities/genre.entity.ts @@ -0,0 +1 @@ +export class Genre {} diff --git a/src/genres/genres.controller.ts b/src/genres/genres.controller.ts new file mode 100644 index 0000000..55dd15c --- /dev/null +++ b/src/genres/genres.controller.ts @@ -0,0 +1,33 @@ +import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common'; +import { GenresService } from './genres.service'; +import { GenreDto } from './dto/genre.dto'; + +@Controller('genres') +export class GenresController { + constructor(private readonly genresService: GenresService) {} + + @Post() + create(@Body() dto: GenreDto) { + return this.genresService.create(dto); + } + + @Get() + findAll() { + return this.genresService.findAll(); + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.genresService.findOne(+id); + } + + @Patch(':id') + update(@Param('id') id: string, @Body() dto: GenreDto) { + return this.genresService.update(+id, dto); + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.genresService.remove(+id); + } +} diff --git a/src/genres/genres.module.ts b/src/genres/genres.module.ts new file mode 100644 index 0000000..d636040 --- /dev/null +++ b/src/genres/genres.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { GenresService } from './genres.service'; +import { GenresController } from './genres.controller'; + +@Module({ + controllers: [GenresController], + providers: [GenresService], +}) +export class GenresModule {} diff --git a/src/genres/genres.service.ts b/src/genres/genres.service.ts new file mode 100644 index 0000000..37f1a66 --- /dev/null +++ b/src/genres/genres.service.ts @@ -0,0 +1,25 @@ +import { Injectable } from '@nestjs/common'; +import { GenreDto } from './dto/genre.dto'; + +@Injectable() +export class GenresService { + create(dto: GenreDto) { + return 'This action adds a new genre'; + } + + findAll() { + return `This action returns all genres`; + } + + findOne(id: number) { + return `This action returns a #${id} genre`; + } + + update(id: number, dto: GenreDto) { + return `This action updates a #${id} genre`; + } + + remove(id: number) { + return `This action removes a #${id} genre`; + } +} diff --git a/src/genres/schema/genres.schema.ts b/src/genres/schema/genres.schema.ts new file mode 100644 index 0000000..2fb697f --- /dev/null +++ b/src/genres/schema/genres.schema.ts @@ -0,0 +1,6 @@ +import { Schema } from 'mongoose'; + +export const GenreSchema = new Schema({ + name: { type: String, required: true }, + showsIDs: [{ type: Schema.Types.ObjectId, ref: 'Show' }], +});