From 295ff2b8c7a84e6aed2d7345e6c21d51ed929e32 Mon Sep 17 00:00:00 2001 From: Toast Date: Tue, 21 Jan 2025 20:20:53 +0100 Subject: [PATCH 1/5] Add @nestjs/mongoose and @nestjs/config packages --- package-lock.json | 271 +++++++++++++++++++++++++++++++++++++++++++++- package.json | 2 + 2 files changed, 270 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index a94cc33..4214629 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,9 @@ "license": "UNLICENSED", "dependencies": { "@nestjs/common": "^10.0.0", + "@nestjs/config": "^4.0.0", "@nestjs/core": "^10.0.0", + "@nestjs/mongoose": "^11.0.0", "@nestjs/platform-express": "^10.0.0", "reflect-metadata": "^0.2.0", "rxjs": "^7.8.1" @@ -1561,6 +1563,16 @@ "node": ">=8" } }, + "node_modules/@mongodb-js/saslprep": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.9.tgz", + "integrity": "sha512-tVkljjeEaAhCqTzajSdgbQ6gE6f3oneVwa3iXR6csiEwXXOFsiC6Uh9iAjAhXPtqa/XMDHWjjeNH/77m/Yq2dw==", + "license": "MIT", + "peer": true, + "dependencies": { + "sparse-bitfield": "^3.0.3" + } + }, "node_modules/@nestjs/cli": { "version": "10.4.9", "resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-10.4.9.tgz", @@ -1650,6 +1662,21 @@ } } }, + "node_modules/@nestjs/config": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@nestjs/config/-/config-4.0.0.tgz", + "integrity": "sha512-hyhUMtVwlT+tavtPNyekl8iP0QTU1U6awKrgdOSxhMhp3TQMltx7hz2yqGTcARp+19zWPfgJudyxthuD3lPp/Q==", + "license": "MIT", + "dependencies": { + "dotenv": "16.4.7", + "dotenv-expand": "12.0.1", + "lodash": "4.17.21" + }, + "peerDependencies": { + "@nestjs/common": "^10.0.0 || ^11.0.0", + "rxjs": "^7.1.0" + } + }, "node_modules/@nestjs/core": { "version": "10.4.15", "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-10.4.15.tgz", @@ -1688,6 +1715,18 @@ } } }, + "node_modules/@nestjs/mongoose": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@nestjs/mongoose/-/mongoose-11.0.0.tgz", + "integrity": "sha512-dp0J6ZCp8tvkI9MDDLtxyMCh0HGGr6Bg+nNAsT0TpeiHVJIDAPQ5dIteA+EIoS2pm7tyNPBRyZKKv04r/BCzPA==", + "license": "MIT", + "peerDependencies": { + "@nestjs/common": "^10.0.0 || ^11.0.0", + "@nestjs/core": "^10.0.0 || ^11.0.0", + "mongoose": "^7.0.0 || ^8.0.0", + "rxjs": "^7.0.0" + } + }, "node_modules/@nestjs/platform-express": { "version": "10.4.15", "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-10.4.15.tgz", @@ -2178,6 +2217,23 @@ "@types/superagent": "^8.1.0" } }, + "node_modules/@types/webidl-conversions": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz", + "integrity": "sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA==", + "license": "MIT", + "peer": true + }, + "node_modules/@types/whatwg-url": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-11.0.5.tgz", + "integrity": "sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@types/webidl-conversions": "*" + } + }, "node_modules/@types/yargs": { "version": "17.0.33", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", @@ -3124,6 +3180,16 @@ "node-int64": "^0.4.0" } }, + "node_modules/bson": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/bson/-/bson-6.10.1.tgz", + "integrity": "sha512-P92xmHDQjSKPLHqFxefqMxASNq/aWJMEZugpCjf+AF/pgcUpMMQCg7t7+ewko0/u8AapvF3luf/FoehddEK+sA==", + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=16.20.1" + } + }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -3708,7 +3774,6 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -3868,6 +3933,33 @@ "node": ">=6.0.0" } }, + "node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-12.0.1.tgz", + "integrity": "sha512-LaKRbou8gt0RNID/9RoI+J2rvXsBRPMV7p+ElHlPhcSARbCPDYcYG2s1TIzAfWv4YSgyY5taidWzzs31lNV3yQ==", + "license": "BSD-2-Clause", + "dependencies": { + "dotenv": "^16.4.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -6360,6 +6452,16 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/kareem": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.6.3.tgz", + "integrity": "sha512-C3iHfuGUXK2u8/ipq9LfjFfXFxAZMQJJq7vLS45r3D9Y2xQ/m4S8zaR4zMLFWh9AsNPXmcFfUDhTEO8UIC/V6Q==", + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -6441,7 +6543,6 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true, "license": "MIT" }, "node_modules/lodash.memoize": { @@ -6562,6 +6663,13 @@ "node": ">= 4.0.0" } }, + "node_modules/memory-pager": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", + "license": "MIT", + "peer": true + }, "node_modules/merge-descriptors": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", @@ -6714,6 +6822,147 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/mongodb": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-6.12.0.tgz", + "integrity": "sha512-RM7AHlvYfS7jv7+BXund/kR64DryVI+cHbVAy9P61fnb1RcWZqOW1/Wj2YhqMCx+MuYhqTRGv7AwHBzmsCKBfA==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@mongodb-js/saslprep": "^1.1.9", + "bson": "^6.10.1", + "mongodb-connection-string-url": "^3.0.0" + }, + "engines": { + "node": ">=16.20.1" + }, + "peerDependencies": { + "@aws-sdk/credential-providers": "^3.188.0", + "@mongodb-js/zstd": "^1.1.0 || ^2.0.0", + "gcp-metadata": "^5.2.0", + "kerberos": "^2.0.1", + "mongodb-client-encryption": ">=6.0.0 <7", + "snappy": "^7.2.2", + "socks": "^2.7.1" + }, + "peerDependenciesMeta": { + "@aws-sdk/credential-providers": { + "optional": true + }, + "@mongodb-js/zstd": { + "optional": true + }, + "gcp-metadata": { + "optional": true + }, + "kerberos": { + "optional": true + }, + "mongodb-client-encryption": { + "optional": true + }, + "snappy": { + "optional": true + }, + "socks": { + "optional": true + } + } + }, + "node_modules/mongodb-connection-string-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.2.tgz", + "integrity": "sha512-rMO7CGo/9BFwyZABcKAWL8UJwH/Kc2x0g72uhDWzG48URRax5TCIcJ7Rc3RZqffZzO/Gwff/jyKwCU9TN8gehA==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@types/whatwg-url": "^11.0.2", + "whatwg-url": "^14.1.0 || ^13.0.0" + } + }, + "node_modules/mongodb-connection-string-url/node_modules/tr46": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", + "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", + "license": "MIT", + "peer": true, + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/mongodb-connection-string-url/node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "license": "BSD-2-Clause", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/mongodb-connection-string-url/node_modules/whatwg-url": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.1.0.tgz", + "integrity": "sha512-jlf/foYIKywAt3x/XWKZ/3rz8OSJPiWktjmk891alJUEjiVxKX9LEO92qH3hv4aJ0mN3MWPvGMCy8jQi95xK4w==", + "license": "MIT", + "peer": true, + "dependencies": { + "tr46": "^5.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/mongoose": { + "version": "8.9.5", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.9.5.tgz", + "integrity": "sha512-SPhOrgBm0nKV3b+IIHGqpUTOmgVL5Z3OO9AwkFEmvOZznXTvplbomstCnPOGAyungtRXE5pJTgKpKcZTdjeESg==", + "license": "MIT", + "peer": true, + "dependencies": { + "bson": "^6.10.1", + "kareem": "2.6.3", + "mongodb": "~6.12.0", + "mpath": "0.9.0", + "mquery": "5.0.0", + "ms": "2.1.3", + "sift": "17.1.3" + }, + "engines": { + "node": ">=16.20.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mongoose" + } + }, + "node_modules/mpath": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz", + "integrity": "sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew==", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mquery": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz", + "integrity": "sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg==", + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "4.x" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -7333,7 +7582,6 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -8002,6 +8250,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/sift": { + "version": "17.1.3", + "resolved": "https://registry.npmjs.org/sift/-/sift-17.1.3.tgz", + "integrity": "sha512-Rtlj66/b0ICeFzYTuNvX/EF1igRbbnGSvEyT79McoZa/DeGhMyC5pWKOEsZKnpkqtSeovd5FL/bjHWC3CIIvCQ==", + "license": "MIT", + "peer": true + }, "node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -8063,6 +8318,16 @@ "node": ">=0.10.0" } }, + "node_modules/sparse-bitfield": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "memory-pager": "^1.0.2" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", diff --git a/package.json b/package.json index 7e23363..4b4429f 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,9 @@ }, "dependencies": { "@nestjs/common": "^10.0.0", + "@nestjs/config": "^4.0.0", "@nestjs/core": "^10.0.0", + "@nestjs/mongoose": "^11.0.0", "@nestjs/platform-express": "^10.0.0", "reflect-metadata": "^0.2.0", "rxjs": "^7.8.1" From f9c337239f0b34d8a1c5fdd85c5df24f3996c8fb Mon Sep 17 00:00:00 2001 From: Toast Date: Tue, 21 Jan 2025 20:29:41 +0100 Subject: [PATCH 2/5] App: import mongoose and nestjs/config --- src/app.module.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/app.module.ts b/src/app.module.ts index 8662803..f3c70cc 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -1,9 +1,11 @@ import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; +import { ConfigModule } from '@nestjs/config'; +import { MongooseModule } from '@nestjs/mongoose'; @Module({ - imports: [], + imports: [ConfigModule.forRoot(), MongooseModule.forRoot(process.env.URI)], controllers: [AppController], providers: [AppService], }) From 916d3fd6ba359304bc5048203adf1d7e6a82d060 Mon Sep 17 00:00:00 2001 From: Toast Date: Tue, 21 Jan 2025 21:22:31 +0100 Subject: [PATCH 3/5] Add show crud Basically the result of running nest g resource shows --no-spec I did add the schema manually, and removed the update dto --- src/app.module.ts | 7 +++- src/shows/dto/show.dto.ts | 1 + src/shows/entities/show.entity.ts | 1 + src/shows/schema/show.schema/show.schema.ts | 1 + src/shows/shows.controller.ts | 41 +++++++++++++++++++++ src/shows/shows.module.ts | 9 +++++ src/shows/shows.service.ts | 25 +++++++++++++ 7 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 src/shows/dto/show.dto.ts create mode 100644 src/shows/entities/show.entity.ts create mode 100644 src/shows/schema/show.schema/show.schema.ts create mode 100644 src/shows/shows.controller.ts create mode 100644 src/shows/shows.module.ts create mode 100644 src/shows/shows.service.ts diff --git a/src/app.module.ts b/src/app.module.ts index f3c70cc..7dc1458 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -3,9 +3,14 @@ import { AppController } from './app.controller'; import { AppService } from './app.service'; import { ConfigModule } from '@nestjs/config'; import { MongooseModule } from '@nestjs/mongoose'; +import { ShowsModule } from './shows/shows.module'; @Module({ - imports: [ConfigModule.forRoot(), MongooseModule.forRoot(process.env.URI)], + imports: [ + ConfigModule.forRoot(), + MongooseModule.forRoot(process.env.URI), + ShowsModule, + ], controllers: [AppController], providers: [AppService], }) diff --git a/src/shows/dto/show.dto.ts b/src/shows/dto/show.dto.ts new file mode 100644 index 0000000..32a14c7 --- /dev/null +++ b/src/shows/dto/show.dto.ts @@ -0,0 +1 @@ +export class ShowDto {} diff --git a/src/shows/entities/show.entity.ts b/src/shows/entities/show.entity.ts new file mode 100644 index 0000000..ae469be --- /dev/null +++ b/src/shows/entities/show.entity.ts @@ -0,0 +1 @@ +export class Show {} diff --git a/src/shows/schema/show.schema/show.schema.ts b/src/shows/schema/show.schema/show.schema.ts new file mode 100644 index 0000000..2597c9d --- /dev/null +++ b/src/shows/schema/show.schema/show.schema.ts @@ -0,0 +1 @@ +export class ShowSchema {} diff --git a/src/shows/shows.controller.ts b/src/shows/shows.controller.ts new file mode 100644 index 0000000..5b5a2ee --- /dev/null +++ b/src/shows/shows.controller.ts @@ -0,0 +1,41 @@ +import { + Controller, + Get, + Post, + Body, + Patch, + Param, + Delete, +} from '@nestjs/common'; +import { ShowsService } from './shows.service'; +import { ShowDto } from './dto/show.dto'; + +@Controller('shows') +export class ShowsController { + constructor(private readonly showsService: ShowsService) {} + + @Post() + create(@Body() dto: ShowDto) { + return this.showsService.create(dto); + } + + @Get() + findAll() { + return this.showsService.findAll(); + } + + @Get(':id') + findOne(@Param('id') id: string) { + return this.showsService.findOne(+id); + } + + @Patch(':id') + update(@Param('id') id: string, @Body() dto: ShowDto) { + return this.showsService.update(+id, dto); + } + + @Delete(':id') + remove(@Param('id') id: string) { + return this.showsService.remove(+id); + } +} diff --git a/src/shows/shows.module.ts b/src/shows/shows.module.ts new file mode 100644 index 0000000..3d1ea15 --- /dev/null +++ b/src/shows/shows.module.ts @@ -0,0 +1,9 @@ +import { Module } from '@nestjs/common'; +import { ShowsService } from './shows.service'; +import { ShowsController } from './shows.controller'; + +@Module({ + controllers: [ShowsController], + providers: [ShowsService], +}) +export class ShowsModule {} diff --git a/src/shows/shows.service.ts b/src/shows/shows.service.ts new file mode 100644 index 0000000..f433f4c --- /dev/null +++ b/src/shows/shows.service.ts @@ -0,0 +1,25 @@ +import { Injectable } from '@nestjs/common'; +import { ShowDto } from './dto/show.dto'; + +@Injectable() +export class ShowsService { + create(dto: ShowDto) { + return 'This action adds a new show'; + } + + findAll() { + return `This action returns all shows`; + } + + findOne(id: number) { + return `This action returns a #${id} show`; + } + + update(id: number, dto: ShowDto) { + return `This action updates a #${id} show`; + } + + remove(id: number) { + return `This action removes a #${id} show`; + } +} From 4a13b2a50ed892d27c51f9007edaa4e16f8eb8bf Mon Sep 17 00:00:00 2001 From: Toast Date: Tue, 21 Jan 2025 21:31:59 +0100 Subject: [PATCH 4/5] Shows: configure mongoose schema --- src/shows/schema/{show.schema => }/show.schema.ts | 0 src/shows/shows.module.ts | 11 +++++++++++ 2 files changed, 11 insertions(+) rename src/shows/schema/{show.schema => }/show.schema.ts (100%) diff --git a/src/shows/schema/show.schema/show.schema.ts b/src/shows/schema/show.schema.ts similarity index 100% rename from src/shows/schema/show.schema/show.schema.ts rename to src/shows/schema/show.schema.ts diff --git a/src/shows/shows.module.ts b/src/shows/shows.module.ts index 3d1ea15..a121e8f 100644 --- a/src/shows/shows.module.ts +++ b/src/shows/shows.module.ts @@ -1,8 +1,19 @@ import { Module } from '@nestjs/common'; import { ShowsService } from './shows.service'; import { ShowsController } from './shows.controller'; +import { MongooseModule } from '@nestjs/mongoose'; +import { ShowSchema } from './schema/show.schema'; @Module({ + imports: [ + MongooseModule.forFeature([ + { + name: 'Show', + schema: ShowSchema, + collection: 'shows', + }, + ]), + ], controllers: [ShowsController], providers: [ShowsService], }) From f90ef12490cf5ba5cdd622108772a2df350ebe6c Mon Sep 17 00:00:00 2001 From: Toast Date: Wed, 22 Jan 2025 17:48:14 +0100 Subject: [PATCH 5/5] Shows: fill in dto and entity --- src/shows/dto/show.dto.ts | 9 ++++++++- src/shows/entities/show.entity.ts | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/shows/dto/show.dto.ts b/src/shows/dto/show.dto.ts index 32a14c7..930c1a1 100644 --- a/src/shows/dto/show.dto.ts +++ b/src/shows/dto/show.dto.ts @@ -1 +1,8 @@ -export class ShowDto {} +export class ShowDto { + _id: string; + title: string; + year: number; + seasons: number; + description: string; + genres: string[]; +} diff --git a/src/shows/entities/show.entity.ts b/src/shows/entities/show.entity.ts index ae469be..25f489e 100644 --- a/src/shows/entities/show.entity.ts +++ b/src/shows/entities/show.entity.ts @@ -1 +1,8 @@ -export class Show {} +export interface Show { + _id: string; + title: string; + year: number; + seasons: number; + description: number; + genres: string[]; +}