set permission for products
This commit is contained in:
@@ -10,7 +10,6 @@ import {
|
|||||||
ApiBody,
|
ApiBody,
|
||||||
ApiParam,
|
ApiParam,
|
||||||
ApiBearerAuth,
|
ApiBearerAuth,
|
||||||
ApiHeader,
|
|
||||||
} from '@nestjs/swagger';
|
} from '@nestjs/swagger';
|
||||||
import { Permission } from 'src/common/enums/permission.enum';
|
import { Permission } from 'src/common/enums/permission.enum';
|
||||||
import { Permissions } from 'src/common/decorators/permissions.decorator';
|
import { Permissions } from 'src/common/decorators/permissions.decorator';
|
||||||
@@ -18,42 +17,32 @@ import { CreateCategoryDto } from '../dto/create-category.dto';
|
|||||||
import { CategoryService } from '../providers/category.service';
|
import { CategoryService } from '../providers/category.service';
|
||||||
import { FindCategoriesDto } from '../dto/find-categories.dto';
|
import { FindCategoriesDto } from '../dto/find-categories.dto';
|
||||||
import { UpdateCategoryDto } from '../dto/update-category.dto';
|
import { UpdateCategoryDto } from '../dto/update-category.dto';
|
||||||
// import { AdminAuthGuard } from 'src/modules/auth/guards/adminAuth.guard';
|
import { AdminAuthGuard } from 'src/modules/auth/guards/adminAuth.guard';
|
||||||
// import { UserId } from 'src/common/decorators';
|
import { AuthGuard } from 'src/modules/auth/guards/auth.guard';
|
||||||
// import { AuthGuard } from 'src/modules/auth/guards/auth.guard';
|
|
||||||
// import { AttributeService } from '../providers/attribute.service';
|
|
||||||
// import { CreateAttributeDto } from '../dto/create-attribute.dto';
|
|
||||||
// import { UpdateAttributeDto } from '../dto/update-attribute.dto';
|
|
||||||
// import { CreateAttributeValueDto } from '../dto/create-attribute-value.dto';
|
|
||||||
// import { AttributeValueService } from '../providers/attribute-value.service';
|
|
||||||
// import { UpdateAttributeValueDto } from '../dto/update-attribute-value.dto';
|
|
||||||
|
|
||||||
@ApiTags('products')
|
|
||||||
@Controller()
|
@Controller()
|
||||||
|
@ApiTags('products')
|
||||||
|
@ApiBearerAuth()
|
||||||
export class ProductController {
|
export class ProductController {
|
||||||
constructor(
|
constructor(
|
||||||
private readonly productService: ProductService,
|
private readonly productService: ProductService,
|
||||||
private readonly categoryService: CategoryService,
|
private readonly categoryService: CategoryService,
|
||||||
// private readonly attributeService: AttributeService,
|
|
||||||
// private readonly attributeValueService: AttributeValueService,
|
|
||||||
) { }
|
) { }
|
||||||
|
|
||||||
|
|
||||||
/*====================CATEGORY =========================*/
|
/*====================CATEGORY =========================*/
|
||||||
|
|
||||||
@Post('admin/category')
|
@Post('admin/category')
|
||||||
// @UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
@Permissions(Permission.MANAGE_CATEGORIES)
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
||||||
@ApiOperation({ summary: 'Create a new category' })
|
@ApiOperation({ summary: 'Create a new category' })
|
||||||
@ApiBody({ type: CreateCategoryDto })
|
|
||||||
createCategory(@Body() createproductDto: CreateCategoryDto) {
|
createCategory(@Body() createproductDto: CreateCategoryDto) {
|
||||||
return this.categoryService.create(createproductDto);
|
return this.categoryService.create(createproductDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get('admin/category')
|
@Get('admin/category')
|
||||||
// @UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
||||||
@ApiOperation({ summary: 'Get a paginated list of Categories' })
|
@ApiOperation({ summary: 'Get a paginated list of Categories' })
|
||||||
@ApiQuery({ name: 'page', required: false, type: Number })
|
@ApiQuery({ name: 'page', required: false, type: Number })
|
||||||
@ApiQuery({ name: 'limit', required: false, type: Number })
|
@ApiQuery({ name: 'limit', required: false, type: Number })
|
||||||
@@ -68,9 +57,7 @@ export class ProductController {
|
|||||||
|
|
||||||
|
|
||||||
@Get('admin/category/:id')
|
@Get('admin/category/:id')
|
||||||
// @UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
||||||
@ApiOperation({ summary: 'Get a category by id' })
|
@ApiOperation({ summary: 'Get a category by id' })
|
||||||
@ApiParam({ name: 'id', required: true })
|
@ApiParam({ name: 'id', required: true })
|
||||||
findCategoryById(@Param('id') id: string) {
|
findCategoryById(@Param('id') id: string) {
|
||||||
@@ -78,9 +65,8 @@ export class ProductController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Patch('admin/category/:id')
|
@Patch('admin/category/:id')
|
||||||
// @UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
@Permissions(Permission.MANAGE_CATEGORIES)
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
||||||
@ApiOperation({ summary: 'Update a category' })
|
@ApiOperation({ summary: 'Update a category' })
|
||||||
@ApiParam({ name: 'id', required: true })
|
@ApiParam({ name: 'id', required: true })
|
||||||
@ApiBody({ type: UpdateCategoryDto })
|
@ApiBody({ type: UpdateCategoryDto })
|
||||||
@@ -89,9 +75,8 @@ export class ProductController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Delete('admin/category/:id')
|
@Delete('admin/category/:id')
|
||||||
// @UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
@Permissions(Permission.MANAGE_CATEGORIES)
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
||||||
@ApiOperation({ summary: 'Delete (soft) a category' })
|
@ApiOperation({ summary: 'Delete (soft) a category' })
|
||||||
@ApiParam({ name: 'id', required: true })
|
@ApiParam({ name: 'id', required: true })
|
||||||
removeCategory(@Param('id') id: string,) {
|
removeCategory(@Param('id') id: string,) {
|
||||||
@@ -99,10 +84,9 @@ export class ProductController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* =============================== PRODUCT ================================= */
|
/* =============================== PRODUCT ================================= */
|
||||||
|
|
||||||
@Get('public/products')
|
@Get('public/products')
|
||||||
// @UseGuards(AdminAuthGuard)
|
@UseGuards(AuthGuard)
|
||||||
@ApiBearerAuth()
|
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
||||||
@ApiOperation({ summary: 'Get list of products' })
|
@ApiOperation({ summary: 'Get list of products' })
|
||||||
async findAllAsUser() {
|
async findAllAsUser() {
|
||||||
const result = await this.productService.findAll({ limit: 1000 });
|
const result = await this.productService.findAll({ limit: 1000 });
|
||||||
@@ -110,8 +94,7 @@ export class ProductController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Post('admin/product')
|
@Post('admin/product')
|
||||||
// @UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
@Permissions(Permission.MANAGE_PRODUCTS)
|
||||||
@ApiOperation({ summary: 'Create a new product' })
|
@ApiOperation({ summary: 'Create a new product' })
|
||||||
@ApiBody({ type: CreateproductDto })
|
@ApiBody({ type: CreateproductDto })
|
||||||
@@ -120,8 +103,7 @@ export class ProductController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Get('admin/products')
|
@Get('admin/products')
|
||||||
// @UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
@Permissions(Permission.MANAGE_PRODUCTS)
|
||||||
@ApiOperation({ summary: 'Get a paginated list of products' })
|
@ApiOperation({ summary: 'Get a paginated list of products' })
|
||||||
@ApiQuery({ name: 'page', required: false, type: Number })
|
@ApiQuery({ name: 'page', required: false, type: Number })
|
||||||
@@ -137,8 +119,7 @@ export class ProductController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Get('admin/products/:id')
|
@Get('admin/products/:id')
|
||||||
// @UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
@Permissions(Permission.MANAGE_PRODUCTS)
|
||||||
@ApiOperation({ summary: 'Get a product by id' })
|
@ApiOperation({ summary: 'Get a product by id' })
|
||||||
@ApiParam({ name: 'id', required: true })
|
@ApiParam({ name: 'id', required: true })
|
||||||
@@ -147,19 +128,16 @@ export class ProductController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Patch('admin/products/:id')
|
@Patch('admin/products/:id')
|
||||||
// @UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
@Permissions(Permission.MANAGE_PRODUCTS)
|
||||||
@ApiOperation({ summary: 'Update a product' })
|
@ApiOperation({ summary: 'Update a product' })
|
||||||
@ApiParam({ name: 'id', required: true })
|
@ApiParam({ name: 'id', required: true })
|
||||||
@ApiBody({ type: UpdateproductDto })
|
|
||||||
update(@Param('id') id: string, @Body() updateproductDto: UpdateproductDto) {
|
update(@Param('id') id: string, @Body() updateproductDto: UpdateproductDto) {
|
||||||
return this.productService.update(+id, updateproductDto);
|
return this.productService.update(+id, updateproductDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Delete('admin/products/:id')
|
@Delete('admin/products/:id')
|
||||||
// @UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
@Permissions(Permission.MANAGE_PRODUCTS)
|
||||||
@ApiOperation({ summary: 'Delete (soft) a product' })
|
@ApiOperation({ summary: 'Delete (soft) a product' })
|
||||||
@ApiParam({ name: 'id', required: true })
|
@ApiParam({ name: 'id', required: true })
|
||||||
@@ -168,111 +146,4 @@ export class ProductController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*=============================== Attibute ==========================*/
|
|
||||||
|
|
||||||
// @Post('admin/product/:id/attribute')
|
|
||||||
// // @UseGuards(AdminAuthGuard)
|
|
||||||
// @ApiBearerAuth()
|
|
||||||
// @Permissions(Permission.MANAGE_PRODUCTS)
|
|
||||||
// @ApiOperation({ summary: 'Create a new attribute' })
|
|
||||||
// @ApiParam({ name: 'id', required: true })
|
|
||||||
// @ApiBody({ type: CreateAttributeDto })
|
|
||||||
// createAttribute(@Param('id') id: string, @Body() dto: CreateAttributeDto) {
|
|
||||||
// return this.attributeService.create(+id, dto);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// @Get('admin/products/:id/attributes')
|
|
||||||
// // @UseGuards(AdminAuthGuard)
|
|
||||||
// @ApiBearerAuth()
|
|
||||||
// @Permissions(Permission.MANAGE_PRODUCTS)
|
|
||||||
// @ApiParam({ name: 'id', required: true })
|
|
||||||
// @ApiOperation({ summary: 'Get list of product attributes' })
|
|
||||||
// async findProductAttributes(@Param('id') id: string) {
|
|
||||||
// return this.attributeService.findAll(+id);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// @Get('admin/products/attributes/:id')
|
|
||||||
// // @UseGuards(AdminAuthGuard)
|
|
||||||
// @ApiBearerAuth()
|
|
||||||
// @Permissions(Permission.MANAGE_PRODUCTS)
|
|
||||||
// @ApiOperation({ summary: 'Get a attribute by id' })
|
|
||||||
// @ApiParam({ name: 'id', required: true })
|
|
||||||
// findAttributeById(@Param('id') id: string) {
|
|
||||||
// return this.attributeService.findById(+id);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// @Patch('admin/products/attributes/:id')
|
|
||||||
// // @UseGuards(AdminAuthGuard)
|
|
||||||
// @ApiBearerAuth()
|
|
||||||
// @Permissions(Permission.MANAGE_PRODUCTS)
|
|
||||||
// @ApiOperation({ summary: 'Update a attribute' })
|
|
||||||
// @ApiParam({ name: 'id', required: true })
|
|
||||||
// @ApiBody({ type: UpdateAttributeDto })
|
|
||||||
// updateProductAttribute(@Param('id') id: string, @Body() dto: UpdateAttributeDto) {
|
|
||||||
// return this.attributeService.update(+id, dto);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// @Delete('admin/products/attributes/:id')
|
|
||||||
// // @UseGuards(AdminAuthGuard)
|
|
||||||
// @ApiBearerAuth()
|
|
||||||
// @Permissions(Permission.MANAGE_PRODUCTS)
|
|
||||||
// @ApiOperation({ summary: 'Delete (soft) a attribute' })
|
|
||||||
// @ApiParam({ name: 'id', required: true })
|
|
||||||
// removeAttribute(@Param('id') id: string,) {
|
|
||||||
// return this.attributeService.remove(+id);
|
|
||||||
// }
|
|
||||||
|
|
||||||
/*=========================== Attibute Values==========================*/
|
|
||||||
// @Post('admin/product/attribute/:id/value')
|
|
||||||
// // @UseGuards(AdminAuthGuard)
|
|
||||||
// @ApiBearerAuth()
|
|
||||||
// @Permissions(Permission.MANAGE_PRODUCTS)
|
|
||||||
// @ApiOperation({ summary: 'Create a new attribute value' })
|
|
||||||
// @ApiParam({ name: 'id', required: true })
|
|
||||||
// @ApiBody({ type: CreateAttributeValueDto })
|
|
||||||
// createAttributeValue(@Param('id') id: string, @Body() dto: CreateAttributeValueDto) {
|
|
||||||
// return this.attributeValueService.create(+id, dto);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// @Get('admin/products/attributes/:id/values')
|
|
||||||
// // @UseGuards(AdminAuthGuard)
|
|
||||||
// @ApiBearerAuth()
|
|
||||||
// @Permissions(Permission.MANAGE_PRODUCTS)
|
|
||||||
// @ApiParam({ name: 'id', required: true })
|
|
||||||
// @ApiOperation({ summary: 'Get list of attribute values' })
|
|
||||||
// async findtAttributeValue(@Param('id') id: string) {
|
|
||||||
// return this.attributeValueService.findAll(+id);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// @Get('admin/products/attributes/value/:id')
|
|
||||||
// // @UseGuards(AdminAuthGuard)
|
|
||||||
// @ApiBearerAuth()
|
|
||||||
// @Permissions(Permission.MANAGE_PRODUCTS)
|
|
||||||
// @ApiOperation({ summary: 'Get a attribute value by id' })
|
|
||||||
// @ApiParam({ name: 'id', required: true })
|
|
||||||
// findAttributeValueById(@Param('id') id: string) {
|
|
||||||
// return this.attributeValueService.findById(+id);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// @Patch('admin/products/attributes/value/:id')
|
|
||||||
// // @UseGuards(AdminAuthGuard)
|
|
||||||
// @ApiBearerAuth()
|
|
||||||
// @Permissions(Permission.MANAGE_PRODUCTS)
|
|
||||||
// @ApiOperation({ summary: 'Update a attribute value' })
|
|
||||||
// @ApiParam({ name: 'id', required: true })
|
|
||||||
// @ApiBody({ type: UpdateAttributeValueDto })
|
|
||||||
// updateAttributeValue(@Param('id') id: string, @Body() dto: UpdateAttributeValueDto) {
|
|
||||||
// return this.attributeValueService.update(+id, dto);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// @Delete('admin/products/attributes/value/:id')
|
|
||||||
// // @UseGuards(AdminAuthGuard)
|
|
||||||
// @ApiBearerAuth()
|
|
||||||
// @Permissions(Permission.MANAGE_PRODUCTS)
|
|
||||||
// @ApiOperation({ summary: 'Delete (soft) a attribute value' })
|
|
||||||
// @ApiParam({ name: 'id', required: true })
|
|
||||||
// removeAttributeValue(@Param('id') id: string,) {
|
|
||||||
// return this.attributeValueService.remove(+id);
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user