set permission for products
This commit is contained in:
@@ -10,7 +10,6 @@ import {
|
||||
ApiBody,
|
||||
ApiParam,
|
||||
ApiBearerAuth,
|
||||
ApiHeader,
|
||||
} from '@nestjs/swagger';
|
||||
import { Permission } from 'src/common/enums/permission.enum';
|
||||
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 { FindCategoriesDto } from '../dto/find-categories.dto';
|
||||
import { UpdateCategoryDto } from '../dto/update-category.dto';
|
||||
// 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 { 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';
|
||||
import { AdminAuthGuard } from 'src/modules/auth/guards/adminAuth.guard';
|
||||
import { AuthGuard } from 'src/modules/auth/guards/auth.guard';
|
||||
|
||||
|
||||
@ApiTags('products')
|
||||
@Controller()
|
||||
@ApiTags('products')
|
||||
@ApiBearerAuth()
|
||||
export class ProductController {
|
||||
constructor(
|
||||
private readonly productService: ProductService,
|
||||
private readonly categoryService: CategoryService,
|
||||
// private readonly attributeService: AttributeService,
|
||||
// private readonly attributeValueService: AttributeValueService,
|
||||
) { }
|
||||
|
||||
|
||||
/*====================CATEGORY =========================*/
|
||||
|
||||
@Post('admin/category')
|
||||
// @UseGuards(AdminAuthGuard)
|
||||
@ApiBearerAuth()
|
||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
||||
@UseGuards(AdminAuthGuard)
|
||||
@Permissions(Permission.MANAGE_CATEGORIES)
|
||||
@ApiOperation({ summary: 'Create a new category' })
|
||||
@ApiBody({ type: CreateCategoryDto })
|
||||
createCategory(@Body() createproductDto: CreateCategoryDto) {
|
||||
return this.categoryService.create(createproductDto);
|
||||
}
|
||||
|
||||
@Get('admin/category')
|
||||
// @UseGuards(AdminAuthGuard)
|
||||
@ApiBearerAuth()
|
||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
||||
@UseGuards(AdminAuthGuard)
|
||||
@ApiOperation({ summary: 'Get a paginated list of Categories' })
|
||||
@ApiQuery({ name: 'page', required: false, type: Number })
|
||||
@ApiQuery({ name: 'limit', required: false, type: Number })
|
||||
@@ -68,9 +57,7 @@ export class ProductController {
|
||||
|
||||
|
||||
@Get('admin/category/:id')
|
||||
// @UseGuards(AdminAuthGuard)
|
||||
@ApiBearerAuth()
|
||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
||||
@UseGuards(AdminAuthGuard)
|
||||
@ApiOperation({ summary: 'Get a category by id' })
|
||||
@ApiParam({ name: 'id', required: true })
|
||||
findCategoryById(@Param('id') id: string) {
|
||||
@@ -78,9 +65,8 @@ export class ProductController {
|
||||
}
|
||||
|
||||
@Patch('admin/category/:id')
|
||||
// @UseGuards(AdminAuthGuard)
|
||||
@ApiBearerAuth()
|
||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
||||
@UseGuards(AdminAuthGuard)
|
||||
@Permissions(Permission.MANAGE_CATEGORIES)
|
||||
@ApiOperation({ summary: 'Update a category' })
|
||||
@ApiParam({ name: 'id', required: true })
|
||||
@ApiBody({ type: UpdateCategoryDto })
|
||||
@@ -89,9 +75,8 @@ export class ProductController {
|
||||
}
|
||||
|
||||
@Delete('admin/category/:id')
|
||||
// @UseGuards(AdminAuthGuard)
|
||||
@ApiBearerAuth()
|
||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
||||
@UseGuards(AdminAuthGuard)
|
||||
@Permissions(Permission.MANAGE_CATEGORIES)
|
||||
@ApiOperation({ summary: 'Delete (soft) a category' })
|
||||
@ApiParam({ name: 'id', required: true })
|
||||
removeCategory(@Param('id') id: string,) {
|
||||
@@ -99,10 +84,9 @@ export class ProductController {
|
||||
}
|
||||
|
||||
/* =============================== PRODUCT ================================= */
|
||||
|
||||
@Get('public/products')
|
||||
// @UseGuards(AdminAuthGuard)
|
||||
@ApiBearerAuth()
|
||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
||||
@UseGuards(AuthGuard)
|
||||
@ApiOperation({ summary: 'Get list of products' })
|
||||
async findAllAsUser() {
|
||||
const result = await this.productService.findAll({ limit: 1000 });
|
||||
@@ -110,8 +94,7 @@ export class ProductController {
|
||||
}
|
||||
|
||||
@Post('admin/product')
|
||||
// @UseGuards(AdminAuthGuard)
|
||||
@ApiBearerAuth()
|
||||
@UseGuards(AdminAuthGuard)
|
||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
||||
@ApiOperation({ summary: 'Create a new product' })
|
||||
@ApiBody({ type: CreateproductDto })
|
||||
@@ -120,8 +103,7 @@ export class ProductController {
|
||||
}
|
||||
|
||||
@Get('admin/products')
|
||||
// @UseGuards(AdminAuthGuard)
|
||||
@ApiBearerAuth()
|
||||
@UseGuards(AdminAuthGuard)
|
||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
||||
@ApiOperation({ summary: 'Get a paginated list of products' })
|
||||
@ApiQuery({ name: 'page', required: false, type: Number })
|
||||
@@ -137,8 +119,7 @@ export class ProductController {
|
||||
}
|
||||
|
||||
@Get('admin/products/:id')
|
||||
// @UseGuards(AdminAuthGuard)
|
||||
@ApiBearerAuth()
|
||||
@UseGuards(AdminAuthGuard)
|
||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
||||
@ApiOperation({ summary: 'Get a product by id' })
|
||||
@ApiParam({ name: 'id', required: true })
|
||||
@@ -147,19 +128,16 @@ export class ProductController {
|
||||
}
|
||||
|
||||
@Patch('admin/products/:id')
|
||||
// @UseGuards(AdminAuthGuard)
|
||||
@ApiBearerAuth()
|
||||
@UseGuards(AdminAuthGuard)
|
||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
||||
@ApiOperation({ summary: 'Update a product' })
|
||||
@ApiParam({ name: 'id', required: true })
|
||||
@ApiBody({ type: UpdateproductDto })
|
||||
update(@Param('id') id: string, @Body() updateproductDto: UpdateproductDto) {
|
||||
return this.productService.update(+id, updateproductDto);
|
||||
}
|
||||
|
||||
@Delete('admin/products/:id')
|
||||
// @UseGuards(AdminAuthGuard)
|
||||
@ApiBearerAuth()
|
||||
@UseGuards(AdminAuthGuard)
|
||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
||||
@ApiOperation({ summary: 'Delete (soft) a product' })
|
||||
@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