|
|
|
@@ -39,70 +39,70 @@ export class productController {
|
|
|
|
|
) { }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*====================CATEGORY =========================*/
|
|
|
|
|
@Post('admin/category')
|
|
|
|
|
// @UseGuards(AdminAuthGuard)
|
|
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Permissions(Permission.MANAGE_productS)
|
|
|
|
|
@ApiOperation({ summary: 'Create a new category' })
|
|
|
|
|
@ApiBody({ type: CreateCategoryDto })
|
|
|
|
|
createCategory(@Body() createproductDto: CreateCategoryDto) {
|
|
|
|
|
return this.categoryService.create(createproductDto);
|
|
|
|
|
}
|
|
|
|
|
/*====================CATEGORY =========================*/
|
|
|
|
|
@Post('admin/category')
|
|
|
|
|
// @UseGuards(AdminAuthGuard)
|
|
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
|
|
|
@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)
|
|
|
|
|
@ApiOperation({ summary: 'Get a paginated list of Categories' })
|
|
|
|
|
@ApiQuery({ name: 'page', required: false, type: Number })
|
|
|
|
|
@ApiQuery({ name: 'limit', required: false, type: Number })
|
|
|
|
|
@ApiQuery({ name: 'search', required: false, type: String })
|
|
|
|
|
@ApiQuery({ name: 'orderBy', required: false, type: String })
|
|
|
|
|
@ApiQuery({ name: 'order', required: false, enum: ['asc', 'desc'] })
|
|
|
|
|
@ApiQuery({ name: 'isActive', required: false, type: Boolean })
|
|
|
|
|
async findAllCategories(@Query() dto: FindCategoriesDto) {
|
|
|
|
|
const result = await this.categoryService.findAll(dto);
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
@Get('admin/category')
|
|
|
|
|
// @UseGuards(AdminAuthGuard)
|
|
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
|
|
|
@ApiOperation({ summary: 'Get a paginated list of Categories' })
|
|
|
|
|
@ApiQuery({ name: 'page', required: false, type: Number })
|
|
|
|
|
@ApiQuery({ name: 'limit', required: false, type: Number })
|
|
|
|
|
@ApiQuery({ name: 'search', required: false, type: String })
|
|
|
|
|
@ApiQuery({ name: 'orderBy', required: false, type: String })
|
|
|
|
|
@ApiQuery({ name: 'order', required: false, enum: ['asc', 'desc'] })
|
|
|
|
|
@ApiQuery({ name: 'isActive', required: false, type: Boolean })
|
|
|
|
|
async findAllCategories(@Query() dto: FindCategoriesDto) {
|
|
|
|
|
const result = await this.categoryService.findAll(dto);
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Get('admin/category/:id')
|
|
|
|
|
// @UseGuards(AdminAuthGuard)
|
|
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Permissions(Permission.MANAGE_productS)
|
|
|
|
|
@ApiOperation({ summary: 'Get a category by id' })
|
|
|
|
|
@ApiParam({ name: 'id', required: true })
|
|
|
|
|
findCategoryById(@Param('id') id: string) {
|
|
|
|
|
return this.categoryService.findById(+id);
|
|
|
|
|
}
|
|
|
|
|
@Get('admin/category/:id')
|
|
|
|
|
// @UseGuards(AdminAuthGuard)
|
|
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
|
|
|
@ApiOperation({ summary: 'Get a category by id' })
|
|
|
|
|
@ApiParam({ name: 'id', required: true })
|
|
|
|
|
findCategoryById(@Param('id') id: string) {
|
|
|
|
|
return this.categoryService.findById(+id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Patch('admin/category/:id')
|
|
|
|
|
// @UseGuards(AdminAuthGuard)
|
|
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Permissions(Permission.MANAGE_productS)
|
|
|
|
|
@ApiOperation({ summary: 'Update a category' })
|
|
|
|
|
@ApiParam({ name: 'id', required: true })
|
|
|
|
|
@ApiBody({ type: UpdateCategoryDto })
|
|
|
|
|
updateCategory(@Param('id') id: string, @Body() dto: UpdateCategoryDto) {
|
|
|
|
|
return this.categoryService.update(+id, dto);
|
|
|
|
|
}
|
|
|
|
|
@Patch('admin/category/:id')
|
|
|
|
|
// @UseGuards(AdminAuthGuard)
|
|
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
|
|
|
@ApiOperation({ summary: 'Update a category' })
|
|
|
|
|
@ApiParam({ name: 'id', required: true })
|
|
|
|
|
@ApiBody({ type: UpdateCategoryDto })
|
|
|
|
|
updateCategory(@Param('id') id: string, @Body() dto: UpdateCategoryDto) {
|
|
|
|
|
return this.categoryService.update(+id, dto);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Delete('admin/category/:id')
|
|
|
|
|
// @UseGuards(AdminAuthGuard)
|
|
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Permissions(Permission.MANAGE_productS)
|
|
|
|
|
@ApiOperation({ summary: 'Delete (soft) a category' })
|
|
|
|
|
@ApiParam({ name: 'id', required: true })
|
|
|
|
|
removeCategory(@Param('id') id: string,) {
|
|
|
|
|
return this.categoryService.remove(+id);
|
|
|
|
|
}
|
|
|
|
|
@Delete('admin/category/:id')
|
|
|
|
|
// @UseGuards(AdminAuthGuard)
|
|
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
|
|
|
@ApiOperation({ summary: 'Delete (soft) a category' })
|
|
|
|
|
@ApiParam({ name: 'id', required: true })
|
|
|
|
|
removeCategory(@Param('id') id: string,) {
|
|
|
|
|
return this.categoryService.remove(+id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* =============================== PRODUCT ================================= */
|
|
|
|
|
@Post('admin/product')
|
|
|
|
|
// @UseGuards(AdminAuthGuard)
|
|
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Permissions(Permission.MANAGE_productS)
|
|
|
|
|
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
|
|
|
@ApiOperation({ summary: 'Create a new product' })
|
|
|
|
|
@ApiBody({ type: CreateproductDto })
|
|
|
|
|
create(@Body() createproductDto: CreateproductDto) {
|
|
|
|
@@ -112,7 +112,7 @@ export class productController {
|
|
|
|
|
@Get('admin/products')
|
|
|
|
|
// @UseGuards(AdminAuthGuard)
|
|
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Permissions(Permission.MANAGE_productS)
|
|
|
|
|
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
|
|
|
@ApiOperation({ summary: 'Get a paginated list of products' })
|
|
|
|
|
@ApiQuery({ name: 'page', required: false, type: Number })
|
|
|
|
|
@ApiQuery({ name: 'limit', required: false, type: Number })
|
|
|
|
@@ -129,7 +129,7 @@ export class productController {
|
|
|
|
|
@Get('admin/products/:id')
|
|
|
|
|
// @UseGuards(AdminAuthGuard)
|
|
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Permissions(Permission.MANAGE_productS)
|
|
|
|
|
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
|
|
|
@ApiOperation({ summary: 'Get a product by id' })
|
|
|
|
|
@ApiParam({ name: 'id', required: true })
|
|
|
|
|
findById(@Param('id') id: string,) {
|
|
|
|
@@ -139,7 +139,7 @@ export class productController {
|
|
|
|
|
@Patch('admin/products/:id')
|
|
|
|
|
// @UseGuards(AdminAuthGuard)
|
|
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Permissions(Permission.MANAGE_productS)
|
|
|
|
|
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
|
|
|
@ApiOperation({ summary: 'Update a product' })
|
|
|
|
|
@ApiParam({ name: 'id', required: true })
|
|
|
|
|
@ApiBody({ type: UpdateproductDto })
|
|
|
|
@@ -150,20 +150,20 @@ export class productController {
|
|
|
|
|
@Delete('admin/products/:id')
|
|
|
|
|
// @UseGuards(AdminAuthGuard)
|
|
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Permissions(Permission.MANAGE_productS)
|
|
|
|
|
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
|
|
|
@ApiOperation({ summary: 'Delete (soft) a product' })
|
|
|
|
|
@ApiParam({ name: 'id', required: true })
|
|
|
|
|
remove(@Param('id') id: string,) {
|
|
|
|
|
return this.productService.remove(id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*=============================== Attibute ==========================*/
|
|
|
|
|
@Post('admin/product/:id/attribute')
|
|
|
|
|
// @UseGuards(AdminAuthGuard)
|
|
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Permissions(Permission.MANAGE_productS)
|
|
|
|
|
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
|
|
|
@ApiOperation({ summary: 'Create a new attribute' })
|
|
|
|
|
@ApiParam({ name: 'id', required: true })
|
|
|
|
|
@ApiBody({ type: CreateAttributeDto })
|
|
|
|
@@ -174,7 +174,7 @@ export class productController {
|
|
|
|
|
@Get('admin/products/:id/attributes')
|
|
|
|
|
// @UseGuards(AdminAuthGuard)
|
|
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Permissions(Permission.MANAGE_productS)
|
|
|
|
|
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
|
|
|
@ApiParam({ name: 'id', required: true })
|
|
|
|
|
@ApiOperation({ summary: 'Get list of product attributes' })
|
|
|
|
|
async findProductAttributes(@Param('id') id: string) {
|
|
|
|
@@ -184,7 +184,7 @@ export class productController {
|
|
|
|
|
@Get('admin/products/attributes/:id')
|
|
|
|
|
// @UseGuards(AdminAuthGuard)
|
|
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Permissions(Permission.MANAGE_productS)
|
|
|
|
|
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
|
|
|
@ApiOperation({ summary: 'Get a attribute by id' })
|
|
|
|
|
@ApiParam({ name: 'id', required: true })
|
|
|
|
|
findAttributeById(@Param('id') id: string) {
|
|
|
|
@@ -194,7 +194,7 @@ export class productController {
|
|
|
|
|
@Patch('admin/products/attributes/:id')
|
|
|
|
|
// @UseGuards(AdminAuthGuard)
|
|
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Permissions(Permission.MANAGE_productS)
|
|
|
|
|
@Permissions(Permission.MANAGE_PRODUCTS)
|
|
|
|
|
@ApiOperation({ summary: 'Update a attribute' })
|
|
|
|
|
@ApiParam({ name: 'id', required: true })
|
|
|
|
|
@ApiBody({ type: UpdateAttributeDto })
|
|
|
|
@@ -205,63 +205,63 @@ export class productController {
|
|
|
|
|
@Delete('admin/products/attributes/:id')
|
|
|
|
|
// @UseGuards(AdminAuthGuard)
|
|
|
|
|
@ApiBearerAuth()
|
|
|
|
|
@Permissions(Permission.MANAGE_productS)
|
|
|
|
|
@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);
|
|
|
|
|
}
|
|
|
|
|
/*=========================== 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);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|