first
This commit is contained in:
commit
0fa3c7ac48
140 files changed
+24289
No files matched your search
@@ -0,0 +1,57 @@
|
||||
import { Controller, Get, Post, Put, Body, Param, Query } from '@nestjs/common';
|
||||
import { ProductService } from './product.service';
|
||||
import { Prisma } from '@prisma/client';
|
||||
|
||||
@Controller('products')
|
||||
export class ProductController {
|
||||
constructor(private readonly productService: ProductService) {}
|
||||
|
||||
@Get(':id')
|
||||
async getProduct(@Param('id') id: string) {
|
||||
return this.productService.getProduct(Number(id));
|
||||
}
|
||||
|
||||
@Get()
|
||||
async getProducts(
|
||||
@Query('skip') skip?: string,
|
||||
@Query('take') take?: string,
|
||||
@Query('search') search?: string,
|
||||
@Query('maxPrice') maxPrice?: string,
|
||||
) {
|
||||
if (search) {
|
||||
return this.productService.searchProducts(search);
|
||||
}
|
||||
|
||||
return this.productService.getProducts({
|
||||
skip: skip ? Number(skip) : undefined,
|
||||
take: take ? Number(take) : undefined,
|
||||
where: maxPrice
|
||||
? {
|
||||
prices: {
|
||||
some: {
|
||||
regularPrice: {
|
||||
lte: Number(maxPrice),
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
: undefined,
|
||||
});
|
||||
}
|
||||
|
||||
@Post()
|
||||
async createProduct(@Body() data: Prisma.ProductCreateInput) {
|
||||
return this.productService.createProduct(data);
|
||||
}
|
||||
|
||||
@Put(':id')
|
||||
async updateProduct(
|
||||
@Param('id') id: string,
|
||||
@Body() data: Prisma.ProductUpdateInput,
|
||||
) {
|
||||
return this.productService.updateProduct({
|
||||
where: { id: Number(id) },
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user