This commit is contained in:
2026-02-22 13:06:44 +03:30
parent 6cd55454e8
commit eee5de8d00
2 changed files with 59 additions and 55 deletions
@@ -12,18 +12,20 @@ import { PermissionEnum } from '../../common/enums/permission.enum';
@ApiTags('Criticism')
@ApiBearerAuth()
@Controller('criticisms')
@Controller()
export class CriticismController {
constructor(private readonly criticismService: CriticismsService) {}
@Post()
@Post('public/criticisms')
@UseGuards(AuthGuard)
@ApiOperation({ summary: 'Create a new criticism' })
create(@Body() createDto: CreateCriticismDto, @UserId() userId: string) {
return this.criticismService.create(createDto, userId);
}
@Get()
//------------- Admin Routes ------------------
@Get('admin/criticisms')
@UseGuards(AdminAuthGuard)
@Permissions(PermissionEnum.MANAGE_CRITICISMS)
@ApiOperation({ summary: 'Get all criticisms (admin only)' })
@@ -31,7 +33,7 @@ export class CriticismController {
return this.criticismService.findAll(queryDto);
}
@Get(':id')
@Get('admin/criticisms/:id')
@UseGuards(AdminAuthGuard)
@Permissions(PermissionEnum.MANAGE_CRITICISMS)
@ApiOperation({ summary: 'Get one criticism by id (admin only)' })
@@ -39,7 +41,7 @@ export class CriticismController {
return this.criticismService.findOneAndMarkAsRead(id);
}
@Delete(':id')
@Delete('admin/criticisms/:id')
@UseGuards(AdminAuthGuard)
@Permissions(PermissionEnum.MANAGE_CRITICISMS)
@ApiOperation({ summary: 'Delete one criticism by id (admin only)' })
+52 -50
View File
@@ -14,13 +14,57 @@ import { PermissionEnum } from 'src/common/enums/permission.enum';
@ApiTags('Learning')
@ApiBearerAuth()
@Controller('learnings')
@Controller()
export class LearningController {
constructor(private readonly learningService: LearningService) {}
// ----------------- Public / User routes -----------------
@Get('public/learnings')
@UseGuards(AuthGuard)
@ApiOperation({ summary: 'Find learnings video' })
findAllLearnings() {
return this.learningService.findLearningsVideos();
}
@Get('public/learnings/category')
@UseGuards(AuthGuard)
@ApiOperation({ summary: 'Find learning categories' })
findCategories() {
return this.learningService.findCategories();
}
@Get('public/learnings/category/:id')
@UseGuards(AuthGuard)
@ApiOperation({ summary: 'Find one learning category by id' })
findCategoryById(@Param('id') id: string) {
return this.learningService.findCategoryById(id);
}
@Get('public/learnings/progress')
@UseGuards(AuthGuard)
@ApiOperation({ summary: 'Get current user learning progress' })
getUserProgress(@UserId() userId: string) {
return this.learningService.getUserProgress(userId);
}
@Post('public/learnings/:learningId/progress')
@UseGuards(AuthGuard)
@ApiOperation({ summary: 'Track learning progress' })
trackProgress(@UserId() userId: string, @Param('learningId') learningId: string) {
return this.learningService.trackProgress(userId, learningId);
}
@Get('public/learnings/:id')
@UseGuards(AuthGuard)
@ApiOperation({ summary: 'Find learning video by id' })
findLearningVideoById(@Param('id') id: string) {
return this.learningService.findLearningVideoById(id);
}
// ----------------- Admin routes -----------------
@Post()
@Post('admin/learnings')
@UseGuards(AdminAuthGuard)
@Permissions(PermissionEnum.MANAGE_LEARNINGS)
@ApiOperation({ summary: 'Create learning video' })
@@ -28,7 +72,7 @@ export class LearningController {
return this.learningService.createLearningVideo(createDto);
}
@Delete(':id')
@Delete('admin/learnings/:id')
@UseGuards(AdminAuthGuard)
@Permissions(PermissionEnum.MANAGE_LEARNINGS)
@ApiOperation({ summary: 'Delete learning video by id' })
@@ -36,7 +80,7 @@ export class LearningController {
return this.learningService.deleteLearningVideoById(id);
}
@Patch(':id')
@Patch('admin/learnings/:id')
@UseGuards(AdminAuthGuard)
@Permissions(PermissionEnum.MANAGE_LEARNINGS)
@ApiOperation({ summary: 'Update learning video by id' })
@@ -44,7 +88,7 @@ export class LearningController {
return this.learningService.updateLearningVideo(id, updateDto);
}
@Post('category')
@Post('admin/learnings/category')
@UseGuards(AdminAuthGuard)
@Permissions(PermissionEnum.MANAGE_LEARNINGS)
@ApiOperation({ summary: 'Create learning category' })
@@ -52,7 +96,7 @@ export class LearningController {
return this.learningService.createLearningCategory(createDto);
}
@Patch('category/:id')
@Patch('admin/learnings/category/:id')
@UseGuards(AdminAuthGuard)
@Permissions(PermissionEnum.MANAGE_LEARNINGS)
@ApiOperation({ summary: 'Update learning category' })
@@ -60,7 +104,7 @@ export class LearningController {
return this.learningService.updateLearningCategory(id, updateDto);
}
@Delete('category/:id')
@Delete('admin/learnings/category/:id')
@UseGuards(AdminAuthGuard)
@Permissions(PermissionEnum.MANAGE_LEARNINGS)
@ApiOperation({ summary: 'Delete category by id' })
@@ -68,47 +112,5 @@ export class LearningController {
return this.learningService.deleteCategoryById(id);
}
// ----------------- Public / User routes -----------------
@Get()
@UseGuards(AuthGuard)
@ApiOperation({ summary: 'Find learnings video' })
findAllLearnings() {
return this.learningService.findLearningsVideos();
}
@Get('category')
@UseGuards(AuthGuard)
@ApiOperation({ summary: 'Find learning categories' })
findCategories() {
return this.learningService.findCategories();
}
@Get('category/:id')
@UseGuards(AuthGuard)
@ApiOperation({ summary: 'Find one learning category by id' })
findCategoryById(@Param('id') id: string) {
return this.learningService.findCategoryById(id);
}
@Get('progress')
@UseGuards(AuthGuard)
@ApiOperation({ summary: 'Get current user learning progress' })
getUserProgress(@UserId() userId: string) {
return this.learningService.getUserProgress(userId);
}
@Post(':learningId/progress')
@UseGuards(AuthGuard)
@ApiOperation({ summary: 'Track learning progress' })
trackProgress(@UserId() userId: string, @Param('learningId') learningId: string) {
return this.learningService.trackProgress(userId, learningId);
}
@Get(':id')
@UseGuards(AuthGuard)
@ApiOperation({ summary: 'Find learning video by id' })
findLearningVideoById(@Param('id') id: string) {
return this.learningService.findLearningVideoById(id);
}
}