Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | import { Controller, Get, Post, Put, Body, Param, Query, UseGuards } from '@nestjs/common'; import { KnowledgeService } from './knowledge.service'; import { JwtAuthGuard } from '../../platform/auth/jwt-auth.guard'; @Controller('api/v1/knowledge') @UseGuards(JwtAuthGuard) export class KnowledgeController { constructor(private readonly knowledgeService: KnowledgeService) {} @Get('config') async getConfiguration(@Query('tenantId') tenantId: string) { return this.knowledgeService.getConfiguration(tenantId); } @Post('libraries') async createLibrary(@Query('tenantId') tenantId: string, @Body() body: any) { return this.knowledgeService.createLibrary(tenantId, body); } @Post('categories') async createCategory(@Query('tenantId') tenantId: string, @Body() body: any) { return this.knowledgeService.createCategory(tenantId, body); } @Post('articles') async createArticle( @Query('tenantId') tenantId: string, @Query('userId') userId: string, @Body() body: any ) { return this.knowledgeService.createArticle(tenantId, userId, body); } @Put('articles/:id/publish') async publishArticle( @Param('id') articleId: string, @Query('tenantId') tenantId: string, @Query('userId') userId: string, @Body('changeLog') changeLog: string ) { return this.knowledgeService.publishArticleVersion(tenantId, articleId, changeLog, userId); } @Post('articles/:id/rollback') async rollbackArticle( @Param('id') articleId: string, @Query('tenantId') tenantId: string, @Query('versionId') versionId: string ) { return this.knowledgeService.rollbackArticle(tenantId, articleId, versionId); } @Post('sops') async createSOP(@Query('tenantId') tenantId: string, @Body() body: any) { return this.knowledgeService.createSOP(tenantId, body); } @Post('policies') async createPolicy(@Query('tenantId') tenantId: string, @Body() body: any) { return this.knowledgeService.createPolicy(tenantId, body); } @Post('acknowledgements/assign') async assignAcknowledgement( @Query('tenantId') tenantId: string, @Body('documentType') docType: 'Policy' | 'SOP', @Body('documentId') docId: string, @Body('employeeId') empId: string ) { return this.knowledgeService.assignReadAcknowledgement(tenantId, docType, docId, empId); } @Post('acknowledgements/sign') async signAcknowledgement( @Query('tenantId') tenantId: string, @Query('employeeId') employeeId: string, @Body('documentId') documentId: string, @Body('status') status: 'accepted' | 'rejected' ) { return this.knowledgeService.acknowledgeDocument(tenantId, employeeId, documentId, status); } @Post('articles/:id/summarize') async generateSummary(@Param('id') articleId: string, @Query('tenantId') tenantId: string) { return this.knowledgeService.summarizeArticleAI(tenantId, articleId); } @Get('media/secure-url') async getSecureUrl(@Query('tenantId') tenantId: string, @Query('filename') filename: string) { const url = await this.knowledgeService.getSecureContentUrl(tenantId, filename); return { url }; } @Get('analytics') async getAnalytics(@Query('tenantId') tenantId: string) { return this.knowledgeService.getAnalyticsMetrics(tenantId); } } |