postiz/apps/backend/src/api/routes/comments.controller.ts

83 lines
2.1 KiB
TypeScript

import {Body, Controller, Delete, Get, Param, Post, Put} from '@nestjs/common';
import { CommentsService } from '@gitroom/nestjs-libraries/database/prisma/comments/comments.service';
import { GetOrgFromRequest } from '@gitroom/nestjs-libraries/user/org.from.request';
import { Organization, User } from '@prisma/client';
import { GetUserFromRequest } from '@gitroom/nestjs-libraries/user/user.from.request';
import { AddCommentDto } from '@gitroom/nestjs-libraries/dtos/comments/add.comment.dto';
import {ApiTags} from "@nestjs/swagger";
@ApiTags('Comments')
@Controller('/comments')
export class CommentsController {
constructor(private _commentsService: CommentsService) {}
@Post('/')
addComment(
@GetOrgFromRequest() org: Organization,
@GetUserFromRequest() user: User,
@Body() addCommentDto: AddCommentDto
) {
return this._commentsService.addAComment(
org.id,
user.id,
addCommentDto.content,
addCommentDto.date
);
}
@Post('/:id')
addCommentTocComment(
@GetOrgFromRequest() org: Organization,
@GetUserFromRequest() user: User,
@Body() addCommentDto: AddCommentDto,
@Param('id') id: string
) {
return this._commentsService.addACommentToComment(
org.id,
user.id,
id,
addCommentDto.content,
addCommentDto.date
);
}
@Put('/:id')
editComment(
@GetOrgFromRequest() org: Organization,
@GetUserFromRequest() user: User,
@Body() addCommentDto: AddCommentDto,
@Param('id') id: string
) {
return this._commentsService.updateAComment(
org.id,
user.id,
id,
addCommentDto.content
);
}
@Delete('/:id')
deleteComment(
@GetOrgFromRequest() org: Organization,
@GetUserFromRequest() user: User,
@Param('id') id: string
) {
return this._commentsService.deleteAComment(
org.id,
user.id,
id,
);
}
@Get('/:date')
loadAllCommentsAndSubCommentsForADate(
@GetOrgFromRequest() org: Organization,
@Param('date') date: string
) {
return this._commentsService.loadAllCommentsAndSubCommentsForADate(
org.id,
date
);
}
}