import { Controller, Get, Post, Param, Body } from '@nestjs/common'; import { ApiTags, ApiBearerAuth } from '@nestjs/swagger'; import { ModerationService } from './moderation.service'; import { CurrentUser } from '../auth/decorators/current-user.decorator'; import { User } from '@coursecraft/database'; @ApiTags('moderation') @Controller('moderation') @ApiBearerAuth() export class ModerationController { constructor(private moderationService: ModerationService) {} @Get('pending') async getPendingCourses(@CurrentUser() user: User): Promise { return this.moderationService.getPendingCourses(user.id); } @Post(':courseId/approve') async approveCourse(@Param('courseId') courseId: string, @Body('note') note: string, @CurrentUser() user: User): Promise { return this.moderationService.approveCourse(user.id, courseId, note); } @Post(':courseId/reject') async rejectCourse(@Param('courseId') courseId: string, @Body('reason') reason: string, @CurrentUser() user: User): Promise { return this.moderationService.rejectCourse(user.id, courseId, reason); } }