83 lines
2.1 KiB
TypeScript
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
|
|
);
|
|
}
|
|
}
|