From eee5de8d001ba2cb94a1b2f0a10ea4e95b3b4754 Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Sun, 22 Feb 2026 13:06:44 +0330 Subject: [PATCH] routes --- .../criticisms/criticisms.controller.ts | 12 ++- src/modules/learnings/learning.controller.ts | 102 +++++++++--------- 2 files changed, 59 insertions(+), 55 deletions(-) diff --git a/src/modules/criticisms/criticisms.controller.ts b/src/modules/criticisms/criticisms.controller.ts index e842de0..ce03f40 100755 --- a/src/modules/criticisms/criticisms.controller.ts +++ b/src/modules/criticisms/criticisms.controller.ts @@ -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)' }) diff --git a/src/modules/learnings/learning.controller.ts b/src/modules/learnings/learning.controller.ts index 1855adb..ba27ca0 100755 --- a/src/modules/learnings/learning.controller.ts +++ b/src/modules/learnings/learning.controller.ts @@ -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); - } + }