diff --git a/src/products/products.controller.ts b/src/products/products.controller.ts index 1d46209..a558183 100644 --- a/src/products/products.controller.ts +++ b/src/products/products.controller.ts @@ -1,8 +1,18 @@ -import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common'; -import { ProductsService } from './products.service'; +import { Controller, Get, Post, Body, Patch, Param, Delete, Res } from "@nestjs/common"; +import { ProductsService } from "./products.service"; +import { Product } from "./entities/product.entity"; -@Controller('products') +@Controller("products") export class ProductsController { constructor(private readonly productsService: ProductsService) {} - + @Post() + async create(@Body() body: { name: string; description: string; price: number }) { + const { name, description, price } = body; + const product = await this.productsService.create(name, description, price); + return { + message: 'Product created successfully!', + product + }; + } } + diff --git a/src/products/products.module.ts b/src/products/products.module.ts index 1697bce..f9d8400 100644 --- a/src/products/products.module.ts +++ b/src/products/products.module.ts @@ -1,8 +1,11 @@ -import { Module } from '@nestjs/common'; -import { ProductsService } from './products.service'; -import { ProductsController } from './products.controller'; +import { Module } from "@nestjs/common"; +import { ProductsService } from "./products.service"; +import { ProductsController } from "./products.controller"; +import { SequelizeModule } from "@nestjs/sequelize"; +import { Product } from "./entities/product.entity"; @Module({ + imports: [SequelizeModule.forFeature([Product])], controllers: [ProductsController], providers: [ProductsService], }) diff --git a/src/products/products.service.ts b/src/products/products.service.ts index 9eb03f4..a50a6e7 100644 --- a/src/products/products.service.ts +++ b/src/products/products.service.ts @@ -1,6 +1,19 @@ -import { Injectable } from '@nestjs/common'; - +import { Injectable } from "@nestjs/common"; +import { InjectModel } from "@nestjs/sequelize"; +import { Product } from "./entities/product.entity"; @Injectable() export class ProductsService { - + constructor(@InjectModel(Product) private readonly productModel: typeof Product) {} + + async create(name: string, description: string, price: number): Promise { + try { + if (!name || !description || price <= 0) { + throw new Error("Invalid input data"); + } + const product = await this.productModel.create({ name, description, price }); + return product; + } catch (error) { + throw new Error("Error creating product"); + } + } }