255 lines
8.7 KiB
TypeScript
255 lines
8.7 KiB
TypeScript
import {
|
|
Controller,
|
|
Get,
|
|
Post,
|
|
Patch,
|
|
Delete,
|
|
Body,
|
|
Param,
|
|
Query,
|
|
UseGuards,
|
|
ParseIntPipe,
|
|
Logger,
|
|
} from '@nestjs/common';
|
|
import {
|
|
ApiTags,
|
|
ApiOperation,
|
|
ApiBearerAuth,
|
|
ApiQuery,
|
|
} from '@nestjs/swagger';
|
|
|
|
import { DrawingMasterDataService } from './drawing-master-data.service';
|
|
import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard';
|
|
import { RbacGuard } from '../../common/guards/rbac.guard';
|
|
import { RequirePermission } from '../../common/decorators/require-permission.decorator';
|
|
|
|
@ApiTags('Drawing Master Data')
|
|
@ApiBearerAuth()
|
|
@UseGuards(JwtAuthGuard, RbacGuard)
|
|
@Controller('drawings/master-data')
|
|
export class DrawingMasterDataController {
|
|
private readonly logger = new Logger(DrawingMasterDataController.name);
|
|
|
|
constructor(private readonly masterDataService: DrawingMasterDataService) {}
|
|
|
|
// =====================================================
|
|
// Contract Drawing Volumes
|
|
// =====================================================
|
|
|
|
@Get('contract/volumes')
|
|
@ApiOperation({ summary: 'List Contract Drawing Volumes' })
|
|
@ApiQuery({ name: 'projectId', required: true, type: String })
|
|
@RequirePermission('document.view')
|
|
getVolumes(@Query('projectId') projectId: string | number) {
|
|
return this.masterDataService.findAllVolumes(projectId);
|
|
}
|
|
|
|
@Post('contract/volumes')
|
|
@ApiOperation({ summary: 'Create Volume' })
|
|
@RequirePermission('master_data.drawing_category.manage')
|
|
createVolume(@Body() body: any) {
|
|
return this.masterDataService.createVolume(body);
|
|
}
|
|
|
|
@Patch('contract/volumes/:id')
|
|
@ApiOperation({ summary: 'Update Volume' })
|
|
@RequirePermission('master_data.drawing_category.manage')
|
|
updateVolume(
|
|
@Param('id', ParseIntPipe) id: number,
|
|
@Body() body: any
|
|
) {
|
|
return this.masterDataService.updateVolume(id, body);
|
|
}
|
|
|
|
@Delete('contract/volumes/:id')
|
|
@ApiOperation({ summary: 'Delete Volume' })
|
|
@RequirePermission('master_data.drawing_category.manage')
|
|
deleteVolume(@Param('id', ParseIntPipe) id: number) {
|
|
return this.masterDataService.deleteVolume(id);
|
|
}
|
|
|
|
// =====================================================
|
|
// Contract Drawing Categories
|
|
// =====================================================
|
|
|
|
@Get('contract/categories')
|
|
@ApiOperation({ summary: 'List Contract Drawing Categories' })
|
|
@ApiQuery({ name: 'projectId', required: true, type: String })
|
|
@RequirePermission('document.view')
|
|
getCategories(@Query('projectId') projectId: string | number) {
|
|
return this.masterDataService.findAllCategories(projectId);
|
|
}
|
|
|
|
@Post('contract/categories')
|
|
@ApiOperation({ summary: 'Create Category' })
|
|
@RequirePermission('master_data.drawing_category.manage')
|
|
createCategory(@Body() body: any) {
|
|
return this.masterDataService.createCategory(body);
|
|
}
|
|
|
|
@Patch('contract/categories/:id')
|
|
@ApiOperation({ summary: 'Update Category' })
|
|
@RequirePermission('master_data.drawing_category.manage')
|
|
updateCategory(
|
|
@Param('id', ParseIntPipe) id: number,
|
|
@Body() body: any
|
|
) {
|
|
return this.masterDataService.updateCategory(id, body);
|
|
}
|
|
|
|
@Delete('contract/categories/:id')
|
|
@ApiOperation({ summary: 'Delete Category' })
|
|
@RequirePermission('master_data.drawing_category.manage')
|
|
deleteCategory(@Param('id', ParseIntPipe) id: number) {
|
|
return this.masterDataService.deleteCategory(id);
|
|
}
|
|
|
|
// =====================================================
|
|
// Contract Drawing Sub-Categories
|
|
// =====================================================
|
|
|
|
@Get('contract/sub-categories')
|
|
@ApiOperation({ summary: 'List Contract Drawing Sub-Categories' })
|
|
@ApiQuery({ name: 'projectId', required: true, type: String })
|
|
@RequirePermission('document.view')
|
|
getContractSubCats(@Query('projectId') projectId: string | number) {
|
|
return this.masterDataService.findAllContractSubCats(projectId);
|
|
}
|
|
|
|
@Post('contract/sub-categories')
|
|
@ApiOperation({ summary: 'Create Contract Sub-Category' })
|
|
@RequirePermission('master_data.drawing_category.manage')
|
|
createContractSubCat(@Body() body: any) {
|
|
return this.masterDataService.createContractSubCat(body);
|
|
}
|
|
|
|
@Patch('contract/sub-categories/:id')
|
|
@ApiOperation({ summary: 'Update Contract Sub-Category' })
|
|
@RequirePermission('master_data.drawing_category.manage')
|
|
updateContractSubCat(
|
|
@Param('id', ParseIntPipe) id: number,
|
|
@Body() body: any
|
|
) {
|
|
return this.masterDataService.updateContractSubCat(id, body);
|
|
}
|
|
|
|
@Delete('contract/sub-categories/:id')
|
|
@ApiOperation({ summary: 'Delete Contract Sub-Category' })
|
|
@RequirePermission('master_data.drawing_category.manage')
|
|
deleteContractSubCat(@Param('id', ParseIntPipe) id: number) {
|
|
return this.masterDataService.deleteContractSubCat(id);
|
|
}
|
|
|
|
// =====================================================
|
|
// Contract Drawing Mappings
|
|
// =====================================================
|
|
|
|
@Get('contract/mappings')
|
|
@ApiOperation({ summary: 'List Contract Drawing Mappings' })
|
|
@ApiQuery({ name: 'projectId', required: true, type: String })
|
|
@ApiQuery({ name: 'categoryId', required: false, type: Number })
|
|
@RequirePermission('document.view')
|
|
getContractMappings(
|
|
@Query('projectId') projectId: string | number,
|
|
@Query('categoryId') categoryId?: number
|
|
) {
|
|
return this.masterDataService.findContractMappings(
|
|
projectId,
|
|
categoryId ? Number(categoryId) : undefined
|
|
);
|
|
}
|
|
|
|
@Post('contract/mappings')
|
|
@ApiOperation({ summary: 'Create Contract Drawing Mapping' })
|
|
@RequirePermission('master_data.drawing_category.manage')
|
|
createContractMapping(@Body() body: any) {
|
|
return this.masterDataService.createContractMapping(body);
|
|
}
|
|
|
|
@Delete('contract/mappings/:id')
|
|
@ApiOperation({ summary: 'Delete Contract Drawing Mapping' })
|
|
@RequirePermission('master_data.drawing_category.manage')
|
|
deleteContractMapping(@Param('id', ParseIntPipe) id: number) {
|
|
return this.masterDataService.deleteContractMapping(id);
|
|
}
|
|
|
|
// =====================================================
|
|
// Shop Drawing Main Categories
|
|
// =====================================================
|
|
|
|
@Get('shop/main-categories')
|
|
@ApiOperation({ summary: 'List Shop Drawing Main Categories' })
|
|
@ApiQuery({ name: 'projectId', required: true, type: String })
|
|
@RequirePermission('document.view')
|
|
getShopMainCats(@Query('projectId') projectId: string | number) {
|
|
return this.masterDataService.findAllShopMainCats(projectId);
|
|
}
|
|
|
|
@Post('shop/main-categories')
|
|
@ApiOperation({ summary: 'Create Shop Main Category' })
|
|
@RequirePermission('master_data.drawing_category.manage')
|
|
createShopMainCat(@Body() body: any) {
|
|
return this.masterDataService.createShopMainCat(body);
|
|
}
|
|
|
|
@Patch('shop/main-categories/:id')
|
|
@ApiOperation({ summary: 'Update Shop Main Category' })
|
|
@RequirePermission('master_data.drawing_category.manage')
|
|
updateShopMainCat(
|
|
@Param('id', ParseIntPipe) id: number,
|
|
@Body() body: any
|
|
) {
|
|
return this.masterDataService.updateShopMainCat(id, body);
|
|
}
|
|
|
|
@Delete('shop/main-categories/:id')
|
|
@ApiOperation({ summary: 'Delete Shop Main Category' })
|
|
@RequirePermission('master_data.drawing_category.manage')
|
|
deleteShopMainCat(@Param('id', ParseIntPipe) id: number) {
|
|
return this.masterDataService.deleteShopMainCat(id);
|
|
}
|
|
|
|
// =====================================================
|
|
// Shop Drawing Sub-Categories
|
|
// =====================================================
|
|
|
|
@Get('shop/sub-categories')
|
|
@ApiOperation({ summary: 'List Shop Drawing Sub-Categories' })
|
|
@ApiQuery({ name: 'projectId', required: true, type: String })
|
|
@ApiQuery({ name: 'mainCategoryId', required: false, type: Number })
|
|
@RequirePermission('document.view')
|
|
getShopSubCats(
|
|
@Query('projectId') projectId: string | number,
|
|
@Query('mainCategoryId') mainCategoryId?: number
|
|
) {
|
|
return this.masterDataService.findAllShopSubCats(
|
|
projectId,
|
|
mainCategoryId ? Number(mainCategoryId) : undefined
|
|
);
|
|
}
|
|
|
|
@Post('shop/sub-categories')
|
|
@ApiOperation({ summary: 'Create Shop Sub-Category' })
|
|
@RequirePermission('master_data.drawing_category.manage')
|
|
createShopSubCat(@Body() body: any) {
|
|
return this.masterDataService.createShopSubCat(body);
|
|
}
|
|
|
|
@Patch('shop/sub-categories/:id')
|
|
@ApiOperation({ summary: 'Update Shop Sub-Category' })
|
|
@RequirePermission('master_data.drawing_category.manage')
|
|
updateShopSubCat(
|
|
@Param('id', ParseIntPipe) id: number,
|
|
@Body() body: any
|
|
) {
|
|
return this.masterDataService.updateShopSubCat(id, body);
|
|
}
|
|
|
|
@Delete('shop/sub-categories/:id')
|
|
@ApiOperation({ summary: 'Delete Shop Sub-Category' })
|
|
@RequirePermission('master_data.drawing_category.manage')
|
|
deleteShopSubCat(@Param('id', ParseIntPipe) id: number) {
|
|
return this.masterDataService.deleteShopSubCat(id);
|
|
}
|
|
}
|