Files
tvone-api/src/module/comments/comments.controller.ts
T

43 lines
1.3 KiB
TypeScript
Raw Normal View History

2026-04-17 23:42:24 +01:00
import {
Body,
Controller,
Delete,
Get,
Param,
ParseUUIDPipe,
Post,
UseGuards,
} from '@nestjs/common';
import { AuthGuard } from '@nestjs/passport';
import { CurrentDbUser } from '../../shared/decorators/current-db-user.decorator';
2026-04-18 00:01:57 +01:00
import type { User } from '@prisma/client';
2026-04-17 23:42:24 +01:00
import { UserProvisioningGuard } from '../users/user-provisioning.guard';
import { CommentsService } from './comments.service';
import { CreateCommentDto } from './dto/create-comment.dto';
@Controller('comments')
export class CommentsController {
constructor(private readonly commentsService: CommentsService) {}
@Get('article/:articleId')
listForArticle(@Param('articleId', ParseUUIDPipe) articleId: string) {
return this.commentsService.listForArticle(articleId);
}
@UseGuards(AuthGuard('keycloak'), UserProvisioningGuard)
@Post('article/:articleId')
create(
@Param('articleId', ParseUUIDPipe) articleId: string,
@CurrentDbUser() user: User,
@Body() dto: CreateCommentDto,
) {
return this.commentsService.create(articleId, user, dto);
}
@UseGuards(AuthGuard('keycloak'), UserProvisioningGuard)
@Delete(':id')
remove(@Param('id', ParseUUIDPipe) id: string, @CurrentDbUser() user: User) {
return this.commentsService.remove(id, user);
}
}