up
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
import { Module } from '@nestjs/common';
|
import { forwardRef, Module } from '@nestjs/common';
|
||||||
import { FormBuilderController } from './controller/form-builder.controller';
|
import { FormBuilderController } from './controller/form-builder.controller';
|
||||||
import { FieldService } from './provider/field.service';
|
import { FieldService } from './provider/field.service';
|
||||||
import { FieldOptionService } from './provider/field-option.service';
|
import { FieldOptionService } from './provider/field-option.service';
|
||||||
@@ -9,7 +9,11 @@ import { JwtModule } from '@nestjs/jwt';
|
|||||||
import { ProductModule } from '../product/product.module';
|
import { ProductModule } from '../product/product.module';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [PrintModule, ProductModule, JwtModule.register({})],
|
imports: [
|
||||||
|
PrintModule,
|
||||||
|
JwtModule.register({}),
|
||||||
|
forwardRef(() => ProductModule),
|
||||||
|
],
|
||||||
controllers: [FormBuilderController],
|
controllers: [FormBuilderController],
|
||||||
providers: [FieldService, FieldOptionService, FieldRepository, FieldOptionRepository],
|
providers: [FieldService, FieldOptionService, FieldRepository, FieldOptionRepository],
|
||||||
exports: [FieldService, FieldOptionService, FieldRepository, FieldOptionRepository],
|
exports: [FieldService, FieldOptionService, FieldRepository, FieldOptionRepository],
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import { PrintRepository } from 'src/modules/print/repository/print.repository';
|
|||||||
import { Field } from '../entities/field.entity';
|
import { Field } from '../entities/field.entity';
|
||||||
import { CreateFieldDto } from '../dto/create-field.dto';
|
import { CreateFieldDto } from '../dto/create-field.dto';
|
||||||
import { UpdateFieldDto } from '../dto/update-field.dto';
|
import { UpdateFieldDto } from '../dto/update-field.dto';
|
||||||
import { ProductRepository } from 'src/modules/product/repositories/product.repository';
|
|
||||||
import { EntityType } from '../interface/print';
|
import { EntityType } from '../interface/print';
|
||||||
import { Product } from 'src/modules/product/entities/product.entity';
|
import { Product } from 'src/modules/product/entities/product.entity';
|
||||||
import { Print } from 'src/modules/print/entities/print.entity';
|
import { Print } from 'src/modules/print/entities/print.entity';
|
||||||
|
|||||||
@@ -12,30 +12,30 @@ import {
|
|||||||
ApiBearerAuth,
|
ApiBearerAuth,
|
||||||
ApiHeader,
|
ApiHeader,
|
||||||
} from '@nestjs/swagger';
|
} from '@nestjs/swagger';
|
||||||
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 { 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';
|
||||||
import { CreateCategoryDto } from '../dto/create-category.dto';
|
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 { AttributeService } from '../providers/attribute.service';
|
// import { AdminAuthGuard } from 'src/modules/auth/guards/adminAuth.guard';
|
||||||
import { CreateAttributeDto } from '../dto/create-attribute.dto';
|
// import { UserId } from 'src/common/decorators';
|
||||||
import { UpdateAttributeDto } from '../dto/update-attribute.dto';
|
// import { AuthGuard } from 'src/modules/auth/guards/auth.guard';
|
||||||
import { CreateAttributeValueDto } from '../dto/create-attribute-value.dto';
|
// import { AttributeService } from '../providers/attribute.service';
|
||||||
import { AttributeValueService } from '../providers/attribute-value.service';
|
// import { CreateAttributeDto } from '../dto/create-attribute.dto';
|
||||||
import { UpdateAttributeValueDto } from '../dto/update-attribute-value.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')
|
@ApiTags('products')
|
||||||
@Controller()
|
@Controller()
|
||||||
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 attributeService: AttributeService,
|
||||||
private readonly attributeValueService: AttributeValueService,
|
// private readonly attributeValueService: AttributeValueService,
|
||||||
) { }
|
) { }
|
||||||
|
|
||||||
|
|
||||||
@@ -171,108 +171,108 @@ export class productController {
|
|||||||
|
|
||||||
/*=============================== Attibute ==========================*/
|
/*=============================== Attibute ==========================*/
|
||||||
|
|
||||||
@Post('admin/product/:id/attribute')
|
// @Post('admin/product/:id/attribute')
|
||||||
// @UseGuards(AdminAuthGuard)
|
// // @UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
// @ApiBearerAuth()
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
// @Permissions(Permission.MANAGE_PRODUCTS)
|
||||||
@ApiOperation({ summary: 'Create a new attribute' })
|
// @ApiOperation({ summary: 'Create a new attribute' })
|
||||||
@ApiParam({ name: 'id', required: true })
|
// @ApiParam({ name: 'id', required: true })
|
||||||
@ApiBody({ type: CreateAttributeDto })
|
// @ApiBody({ type: CreateAttributeDto })
|
||||||
createAttribute(@Param('id') id: string, @Body() dto: CreateAttributeDto) {
|
// createAttribute(@Param('id') id: string, @Body() dto: CreateAttributeDto) {
|
||||||
return this.attributeService.create(+id, dto);
|
// return this.attributeService.create(+id, dto);
|
||||||
}
|
// }
|
||||||
|
|
||||||
@Get('admin/products/:id/attributes')
|
// @Get('admin/products/:id/attributes')
|
||||||
// @UseGuards(AdminAuthGuard)
|
// // @UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
// @ApiBearerAuth()
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
// @Permissions(Permission.MANAGE_PRODUCTS)
|
||||||
@ApiParam({ name: 'id', required: true })
|
// @ApiParam({ name: 'id', required: true })
|
||||||
@ApiOperation({ summary: 'Get list of product attributes' })
|
// @ApiOperation({ summary: 'Get list of product attributes' })
|
||||||
async findProductAttributes(@Param('id') id: string) {
|
// async findProductAttributes(@Param('id') id: string) {
|
||||||
return this.attributeService.findAll(+id);
|
// return this.attributeService.findAll(+id);
|
||||||
}
|
// }
|
||||||
|
|
||||||
@Get('admin/products/attributes/:id')
|
// @Get('admin/products/attributes/:id')
|
||||||
// @UseGuards(AdminAuthGuard)
|
// // @UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
// @ApiBearerAuth()
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
// @Permissions(Permission.MANAGE_PRODUCTS)
|
||||||
@ApiOperation({ summary: 'Get a attribute by id' })
|
// @ApiOperation({ summary: 'Get a attribute by id' })
|
||||||
@ApiParam({ name: 'id', required: true })
|
// @ApiParam({ name: 'id', required: true })
|
||||||
findAttributeById(@Param('id') id: string) {
|
// findAttributeById(@Param('id') id: string) {
|
||||||
return this.attributeService.findById(+id);
|
// return this.attributeService.findById(+id);
|
||||||
}
|
// }
|
||||||
|
|
||||||
@Patch('admin/products/attributes/:id')
|
// @Patch('admin/products/attributes/:id')
|
||||||
// @UseGuards(AdminAuthGuard)
|
// // @UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
// @ApiBearerAuth()
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
// @Permissions(Permission.MANAGE_PRODUCTS)
|
||||||
@ApiOperation({ summary: 'Update a attribute' })
|
// @ApiOperation({ summary: 'Update a attribute' })
|
||||||
@ApiParam({ name: 'id', required: true })
|
// @ApiParam({ name: 'id', required: true })
|
||||||
@ApiBody({ type: UpdateAttributeDto })
|
// @ApiBody({ type: UpdateAttributeDto })
|
||||||
updateProductAttribute(@Param('id') id: string, @Body() dto: UpdateAttributeDto) {
|
// updateProductAttribute(@Param('id') id: string, @Body() dto: UpdateAttributeDto) {
|
||||||
return this.attributeService.update(+id, dto);
|
// return this.attributeService.update(+id, dto);
|
||||||
}
|
// }
|
||||||
|
|
||||||
@Delete('admin/products/attributes/:id')
|
// @Delete('admin/products/attributes/:id')
|
||||||
// @UseGuards(AdminAuthGuard)
|
// // @UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
// @ApiBearerAuth()
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
// @Permissions(Permission.MANAGE_PRODUCTS)
|
||||||
@ApiOperation({ summary: 'Delete (soft) a attribute' })
|
// @ApiOperation({ summary: 'Delete (soft) a attribute' })
|
||||||
@ApiParam({ name: 'id', required: true })
|
// @ApiParam({ name: 'id', required: true })
|
||||||
removeAttribute(@Param('id') id: string,) {
|
// removeAttribute(@Param('id') id: string,) {
|
||||||
return this.attributeService.remove(+id);
|
// return this.attributeService.remove(+id);
|
||||||
}
|
// }
|
||||||
|
|
||||||
/*=========================== Attibute Values==========================*/
|
/*=========================== Attibute Values==========================*/
|
||||||
@Post('admin/product/attribute/:id/value')
|
// @Post('admin/product/attribute/:id/value')
|
||||||
// @UseGuards(AdminAuthGuard)
|
// // @UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
// @ApiBearerAuth()
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
// @Permissions(Permission.MANAGE_PRODUCTS)
|
||||||
@ApiOperation({ summary: 'Create a new attribute value' })
|
// @ApiOperation({ summary: 'Create a new attribute value' })
|
||||||
@ApiParam({ name: 'id', required: true })
|
// @ApiParam({ name: 'id', required: true })
|
||||||
@ApiBody({ type: CreateAttributeValueDto })
|
// @ApiBody({ type: CreateAttributeValueDto })
|
||||||
createAttributeValue(@Param('id') id: string, @Body() dto: CreateAttributeValueDto) {
|
// createAttributeValue(@Param('id') id: string, @Body() dto: CreateAttributeValueDto) {
|
||||||
return this.attributeValueService.create(+id, dto);
|
// return this.attributeValueService.create(+id, dto);
|
||||||
}
|
// }
|
||||||
|
|
||||||
@Get('admin/products/attributes/:id/values')
|
// @Get('admin/products/attributes/:id/values')
|
||||||
// @UseGuards(AdminAuthGuard)
|
// // @UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
// @ApiBearerAuth()
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
// @Permissions(Permission.MANAGE_PRODUCTS)
|
||||||
@ApiParam({ name: 'id', required: true })
|
// @ApiParam({ name: 'id', required: true })
|
||||||
@ApiOperation({ summary: 'Get list of attribute values' })
|
// @ApiOperation({ summary: 'Get list of attribute values' })
|
||||||
async findtAttributeValue(@Param('id') id: string) {
|
// async findtAttributeValue(@Param('id') id: string) {
|
||||||
return this.attributeValueService.findAll(+id);
|
// return this.attributeValueService.findAll(+id);
|
||||||
}
|
// }
|
||||||
|
|
||||||
@Get('admin/products/attributes/value/:id')
|
// @Get('admin/products/attributes/value/:id')
|
||||||
// @UseGuards(AdminAuthGuard)
|
// // @UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
// @ApiBearerAuth()
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
// @Permissions(Permission.MANAGE_PRODUCTS)
|
||||||
@ApiOperation({ summary: 'Get a attribute value by id' })
|
// @ApiOperation({ summary: 'Get a attribute value by id' })
|
||||||
@ApiParam({ name: 'id', required: true })
|
// @ApiParam({ name: 'id', required: true })
|
||||||
findAttributeValueById(@Param('id') id: string) {
|
// findAttributeValueById(@Param('id') id: string) {
|
||||||
return this.attributeValueService.findById(+id);
|
// return this.attributeValueService.findById(+id);
|
||||||
}
|
// }
|
||||||
|
|
||||||
@Patch('admin/products/attributes/value/:id')
|
// @Patch('admin/products/attributes/value/:id')
|
||||||
// @UseGuards(AdminAuthGuard)
|
// // @UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
// @ApiBearerAuth()
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
// @Permissions(Permission.MANAGE_PRODUCTS)
|
||||||
@ApiOperation({ summary: 'Update a attribute value' })
|
// @ApiOperation({ summary: 'Update a attribute value' })
|
||||||
@ApiParam({ name: 'id', required: true })
|
// @ApiParam({ name: 'id', required: true })
|
||||||
@ApiBody({ type: UpdateAttributeValueDto })
|
// @ApiBody({ type: UpdateAttributeValueDto })
|
||||||
updateAttributeValue(@Param('id') id: string, @Body() dto: UpdateAttributeValueDto) {
|
// updateAttributeValue(@Param('id') id: string, @Body() dto: UpdateAttributeValueDto) {
|
||||||
return this.attributeValueService.update(+id, dto);
|
// return this.attributeValueService.update(+id, dto);
|
||||||
}
|
// }
|
||||||
|
|
||||||
@Delete('admin/products/attributes/value/:id')
|
// @Delete('admin/products/attributes/value/:id')
|
||||||
// @UseGuards(AdminAuthGuard)
|
// // @UseGuards(AdminAuthGuard)
|
||||||
@ApiBearerAuth()
|
// @ApiBearerAuth()
|
||||||
@Permissions(Permission.MANAGE_PRODUCTS)
|
// @Permissions(Permission.MANAGE_PRODUCTS)
|
||||||
@ApiOperation({ summary: 'Delete (soft) a attribute value' })
|
// @ApiOperation({ summary: 'Delete (soft) a attribute value' })
|
||||||
@ApiParam({ name: 'id', required: true })
|
// @ApiParam({ name: 'id', required: true })
|
||||||
removeAttributeValue(@Param('id') id: string,) {
|
// removeAttributeValue(@Param('id') id: string,) {
|
||||||
return this.attributeValueService.remove(+id);
|
// return this.attributeValueService.remove(+id);
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,38 +1,52 @@
|
|||||||
import { Module } from '@nestjs/common';
|
import { forwardRef, Module } from '@nestjs/common';
|
||||||
import { ProductService } from './providers/product.service';
|
import { ProductService } from './providers/product.service';
|
||||||
import { productController } from './controllers/product.controller';
|
import { ProductController } from './controllers/product.controller';
|
||||||
import { ProductRepository } from './repositories/product.repository';
|
import { ProductRepository } from './repositories/product.repository';
|
||||||
import { MikroOrmModule } from '@mikro-orm/nestjs';
|
import { MikroOrmModule } from '@mikro-orm/nestjs';
|
||||||
import { Category } from './entities/category.entity';
|
import { Category } from './entities/category.entity';
|
||||||
import { Product } from './entities/product.entity';
|
import { Product } from './entities/product.entity';
|
||||||
import { Attribute } from './entities/attribute.entity';
|
|
||||||
import { AttributeValue } from './entities/attribute-value.entity';
|
|
||||||
import { AuthModule } from '../auth/auth.module';
|
import { AuthModule } from '../auth/auth.module';
|
||||||
import { JwtModule } from '@nestjs/jwt';
|
import { JwtModule } from '@nestjs/jwt';
|
||||||
import { UtilsModule } from '../util/utils.module';
|
import { UtilsModule } from '../util/utils.module';
|
||||||
import { CategoryRepository } from './repositories/category.repository';
|
import { CategoryRepository } from './repositories/category.repository';
|
||||||
import { CategoryService } from './providers/category.service';
|
import { CategoryService } from './providers/category.service';
|
||||||
import { AttributeRepository } from './repositories/attribute.repository';
|
import { FormBuilderModule } from '../form-builder/form-builder.module';
|
||||||
import { AttributeService } from './providers/attribute.service';
|
// import { Attribute } from './entities/attribute.entity';
|
||||||
import { AttributeValueRepository } from './repositories/attribute-value.repository';
|
// import { AttributeValue } from './entities/attribute-value.entity';
|
||||||
import { AttributeValueService } from './providers/attribute-value.service';
|
// import { AttributeRepository } from './repositories/attribute.repository';
|
||||||
|
// import { AttributeService } from './providers/attribute.service';
|
||||||
|
// import { AttributeValueRepository } from './repositories/attribute-value.repository';
|
||||||
|
// import { AttributeValueService } from './providers/attribute-value.service';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [
|
imports: [
|
||||||
MikroOrmModule.forFeature([Product, Category, Attribute, AttributeValue]),
|
MikroOrmModule.forFeature([
|
||||||
|
Product,
|
||||||
|
Category
|
||||||
|
// , Attribute, AttributeValue
|
||||||
|
]),
|
||||||
AuthModule,
|
AuthModule,
|
||||||
JwtModule,
|
JwtModule,
|
||||||
UtilsModule,
|
UtilsModule,
|
||||||
|
forwardRef(() => FormBuilderModule)
|
||||||
],
|
],
|
||||||
controllers: [productController,],
|
controllers: [ProductController],
|
||||||
providers: [ProductService, ProductRepository,
|
providers: [
|
||||||
CategoryRepository, CategoryService,
|
ProductService,
|
||||||
AttributeRepository, AttributeService,
|
ProductRepository,
|
||||||
AttributeValueRepository,
|
CategoryRepository,
|
||||||
AttributeValueService
|
CategoryService,
|
||||||
|
// AttributeRepository, AttributeService,
|
||||||
|
// AttributeValueRepository,
|
||||||
|
// AttributeValueService
|
||||||
|
],
|
||||||
|
exports: [
|
||||||
|
ProductRepository,
|
||||||
|
CategoryRepository,
|
||||||
|
CategoryService,
|
||||||
|
// AttributeRepository,
|
||||||
|
// AttributeService,
|
||||||
|
ProductService
|
||||||
],
|
],
|
||||||
exports: [ProductRepository, CategoryRepository,
|
|
||||||
CategoryService, AttributeRepository,
|
|
||||||
AttributeService, ProductService],
|
|
||||||
})
|
})
|
||||||
export class ProductModule { }
|
export class ProductModule { }
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { RequiredEntityData } from '@mikro-orm/core';
|
|||||||
import { Product } from '../entities/product.entity';
|
import { Product } from '../entities/product.entity';
|
||||||
import { CategoryMessage, productMessage } from 'src/common/enums/message.enum';
|
import { CategoryMessage, productMessage } from 'src/common/enums/message.enum';
|
||||||
import { CategoryRepository } from '../repositories/category.repository';
|
import { CategoryRepository } from '../repositories/category.repository';
|
||||||
|
import { FieldService } from 'src/modules/form-builder/provider/field.service';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class ProductService {
|
export class ProductService {
|
||||||
@@ -14,6 +15,7 @@ export class ProductService {
|
|||||||
constructor(
|
constructor(
|
||||||
private readonly productRepository: ProductRepository,
|
private readonly productRepository: ProductRepository,
|
||||||
private readonly categoryRepository: CategoryRepository,
|
private readonly categoryRepository: CategoryRepository,
|
||||||
|
// private readonly fieldService: FieldService,
|
||||||
private readonly em: EntityManager,
|
private readonly em: EntityManager,
|
||||||
) { }
|
) { }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user