mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-28 19:30:57 +00:00
65 lines
2.3 KiB
TypeScript
65 lines
2.3 KiB
TypeScript
import {
|
|
Body,
|
|
Controller,
|
|
Get,
|
|
Param,
|
|
ParseUUIDPipe,
|
|
Patch,
|
|
Post,
|
|
UploadedFiles,
|
|
UseInterceptors,
|
|
} from '@nestjs/common';
|
|
import { AnyFilesInterceptor } from '@nestjs/platform-express';
|
|
import { ApiBearerAuth, ApiConsumes, ApiOperation, ApiTags } from '@nestjs/swagger';
|
|
|
|
import { CreateInspectionReportDto } from './dto/create-inspection-report.dto';
|
|
import { UpdateInspectionReportDto } from './dto/update-inspection-report.dto';
|
|
import { WarehouseInspectionService } from './warehouse-inspection.service';
|
|
|
|
@ApiTags('warehouse-inspection')
|
|
@ApiBearerAuth()
|
|
@Controller()
|
|
export class WarehouseInspectionController {
|
|
constructor(private readonly inspectionService: WarehouseInspectionService) {}
|
|
|
|
@Post('warehouse-inventory/:inventoryId/inspection-reports')
|
|
@ApiOperation({ summary: 'Create an inspection / damage report for an inventory item' })
|
|
create(
|
|
@Param('inventoryId', ParseUUIDPipe) inventoryId: string,
|
|
@Body() dto: CreateInspectionReportDto,
|
|
) {
|
|
return this.inspectionService.create(inventoryId, dto);
|
|
}
|
|
|
|
@Get('warehouse-inventory/:inventoryId/inspection-reports')
|
|
@ApiOperation({ summary: 'List inspection reports for an inventory item' })
|
|
listByInventory(@Param('inventoryId', ParseUUIDPipe) inventoryId: string) {
|
|
return this.inspectionService.findByInventory(inventoryId);
|
|
}
|
|
|
|
@Get('warehouse-inspection-reports/:id')
|
|
@ApiOperation({ summary: 'Get an inspection report (with attachments)' })
|
|
async findOne(@Param('id', ParseUUIDPipe) id: string) {
|
|
const report = await this.inspectionService.findById(id);
|
|
const attachments = await this.inspectionService.listAttachments(id);
|
|
return { ...report, attachments };
|
|
}
|
|
|
|
@Patch('warehouse-inspection-reports/:id')
|
|
@ApiOperation({ summary: 'Update an inspection report' })
|
|
update(@Param('id', ParseUUIDPipe) id: string, @Body() dto: UpdateInspectionReportDto) {
|
|
return this.inspectionService.update(id, dto);
|
|
}
|
|
|
|
@Post('warehouse-inspection-reports/:id/attachments')
|
|
@UseInterceptors(AnyFilesInterceptor())
|
|
@ApiConsumes('multipart/form-data')
|
|
@ApiOperation({ summary: 'Upload inspection images / documents' })
|
|
addAttachments(
|
|
@Param('id', ParseUUIDPipe) id: string,
|
|
@UploadedFiles() files: Express.Multer.File[],
|
|
) {
|
|
return this.inspectionService.addAttachments(id, files);
|
|
}
|
|
}
|