routes
This commit is contained in:
@@ -12,18 +12,20 @@ import { PermissionEnum } from '../../common/enums/permission.enum';
|
|||||||
|
|
||||||
@ApiTags('Criticism')
|
@ApiTags('Criticism')
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@Controller('criticisms')
|
@Controller()
|
||||||
export class CriticismController {
|
export class CriticismController {
|
||||||
constructor(private readonly criticismService: CriticismsService) {}
|
constructor(private readonly criticismService: CriticismsService) {}
|
||||||
|
|
||||||
@Post()
|
@Post('public/criticisms')
|
||||||
@UseGuards(AuthGuard)
|
@UseGuards(AuthGuard)
|
||||||
@ApiOperation({ summary: 'Create a new criticism' })
|
@ApiOperation({ summary: 'Create a new criticism' })
|
||||||
create(@Body() createDto: CreateCriticismDto, @UserId() userId: string) {
|
create(@Body() createDto: CreateCriticismDto, @UserId() userId: string) {
|
||||||
return this.criticismService.create(createDto, userId);
|
return this.criticismService.create(createDto, userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get()
|
//------------- Admin Routes ------------------
|
||||||
|
|
||||||
|
@Get('admin/criticisms')
|
||||||
@UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@Permissions(PermissionEnum.MANAGE_CRITICISMS)
|
@Permissions(PermissionEnum.MANAGE_CRITICISMS)
|
||||||
@ApiOperation({ summary: 'Get all criticisms (admin only)' })
|
@ApiOperation({ summary: 'Get all criticisms (admin only)' })
|
||||||
@@ -31,7 +33,7 @@ export class CriticismController {
|
|||||||
return this.criticismService.findAll(queryDto);
|
return this.criticismService.findAll(queryDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get(':id')
|
@Get('admin/criticisms/:id')
|
||||||
@UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@Permissions(PermissionEnum.MANAGE_CRITICISMS)
|
@Permissions(PermissionEnum.MANAGE_CRITICISMS)
|
||||||
@ApiOperation({ summary: 'Get one criticism by id (admin only)' })
|
@ApiOperation({ summary: 'Get one criticism by id (admin only)' })
|
||||||
@@ -39,7 +41,7 @@ export class CriticismController {
|
|||||||
return this.criticismService.findOneAndMarkAsRead(id);
|
return this.criticismService.findOneAndMarkAsRead(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Delete(':id')
|
@Delete('admin/criticisms/:id')
|
||||||
@UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@Permissions(PermissionEnum.MANAGE_CRITICISMS)
|
@Permissions(PermissionEnum.MANAGE_CRITICISMS)
|
||||||
@ApiOperation({ summary: 'Delete one criticism by id (admin only)' })
|
@ApiOperation({ summary: 'Delete one criticism by id (admin only)' })
|
||||||
|
|||||||
@@ -14,13 +14,57 @@ import { PermissionEnum } from 'src/common/enums/permission.enum';
|
|||||||
|
|
||||||
@ApiTags('Learning')
|
@ApiTags('Learning')
|
||||||
@ApiBearerAuth()
|
@ApiBearerAuth()
|
||||||
@Controller('learnings')
|
@Controller()
|
||||||
export class LearningController {
|
export class LearningController {
|
||||||
constructor(private readonly learningService: LearningService) {}
|
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 -----------------
|
// ----------------- Admin routes -----------------
|
||||||
|
|
||||||
@Post()
|
@Post('admin/learnings')
|
||||||
@UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@Permissions(PermissionEnum.MANAGE_LEARNINGS)
|
@Permissions(PermissionEnum.MANAGE_LEARNINGS)
|
||||||
@ApiOperation({ summary: 'Create learning video' })
|
@ApiOperation({ summary: 'Create learning video' })
|
||||||
@@ -28,7 +72,7 @@ export class LearningController {
|
|||||||
return this.learningService.createLearningVideo(createDto);
|
return this.learningService.createLearningVideo(createDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Delete(':id')
|
@Delete('admin/learnings/:id')
|
||||||
@UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@Permissions(PermissionEnum.MANAGE_LEARNINGS)
|
@Permissions(PermissionEnum.MANAGE_LEARNINGS)
|
||||||
@ApiOperation({ summary: 'Delete learning video by id' })
|
@ApiOperation({ summary: 'Delete learning video by id' })
|
||||||
@@ -36,7 +80,7 @@ export class LearningController {
|
|||||||
return this.learningService.deleteLearningVideoById(id);
|
return this.learningService.deleteLearningVideoById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Patch(':id')
|
@Patch('admin/learnings/:id')
|
||||||
@UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@Permissions(PermissionEnum.MANAGE_LEARNINGS)
|
@Permissions(PermissionEnum.MANAGE_LEARNINGS)
|
||||||
@ApiOperation({ summary: 'Update learning video by id' })
|
@ApiOperation({ summary: 'Update learning video by id' })
|
||||||
@@ -44,7 +88,7 @@ export class LearningController {
|
|||||||
return this.learningService.updateLearningVideo(id, updateDto);
|
return this.learningService.updateLearningVideo(id, updateDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Post('category')
|
@Post('admin/learnings/category')
|
||||||
@UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@Permissions(PermissionEnum.MANAGE_LEARNINGS)
|
@Permissions(PermissionEnum.MANAGE_LEARNINGS)
|
||||||
@ApiOperation({ summary: 'Create learning category' })
|
@ApiOperation({ summary: 'Create learning category' })
|
||||||
@@ -52,7 +96,7 @@ export class LearningController {
|
|||||||
return this.learningService.createLearningCategory(createDto);
|
return this.learningService.createLearningCategory(createDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Patch('category/:id')
|
@Patch('admin/learnings/category/:id')
|
||||||
@UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@Permissions(PermissionEnum.MANAGE_LEARNINGS)
|
@Permissions(PermissionEnum.MANAGE_LEARNINGS)
|
||||||
@ApiOperation({ summary: 'Update learning category' })
|
@ApiOperation({ summary: 'Update learning category' })
|
||||||
@@ -60,7 +104,7 @@ export class LearningController {
|
|||||||
return this.learningService.updateLearningCategory(id, updateDto);
|
return this.learningService.updateLearningCategory(id, updateDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Delete('category/:id')
|
@Delete('admin/learnings/category/:id')
|
||||||
@UseGuards(AdminAuthGuard)
|
@UseGuards(AdminAuthGuard)
|
||||||
@Permissions(PermissionEnum.MANAGE_LEARNINGS)
|
@Permissions(PermissionEnum.MANAGE_LEARNINGS)
|
||||||
@ApiOperation({ summary: 'Delete category by id' })
|
@ApiOperation({ summary: 'Delete category by id' })
|
||||||
@@ -68,47 +112,5 @@ export class LearningController {
|
|||||||
return this.learningService.deleteCategoryById(id);
|
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user