49 lines
1.8 KiB
TypeScript
Executable File
49 lines
1.8 KiB
TypeScript
Executable File
import { Body, Controller, Delete, Get, Param, Post, Query } from "@nestjs/common";
|
|
import { ApiOperation, ApiTags } from "@nestjs/swagger";
|
|
|
|
import { CreateCriticismDto } from "./DTO/create-criticism.dto";
|
|
import { SearchCriticismQueryDto } from "./DTO/search-criticism-query.dto";
|
|
import { CriticismsService } from "./providers/criticisms.service";
|
|
import { AuthGuards } from "../../common/decorators/auth-guard.decorator";
|
|
import { PermissionsDec } from "../../common/decorators/permission.decorator";
|
|
import { UserDec } from "../../common/decorators/user.decorator";
|
|
import { ParamDto } from "../../common/DTO/param.dto";
|
|
import { PermissionEnum } from "../users/enums/permission.enum";
|
|
|
|
@Controller("criticisms")
|
|
@ApiTags("Criticism")
|
|
export class CriticismController {
|
|
constructor(private readonly criticismService: CriticismsService) {}
|
|
|
|
@AuthGuards()
|
|
@ApiOperation({ summary: "Create a new criticism" })
|
|
@Post()
|
|
create(@Body() createDto: CreateCriticismDto, @UserDec("id") userId: string) {
|
|
return this.criticismService.create(createDto, userId);
|
|
}
|
|
|
|
@AuthGuards()
|
|
@PermissionsDec(PermissionEnum.CRITICISMS_READ)
|
|
@ApiOperation({ summary: "Get all Criticism ===> login as admin" })
|
|
@Get()
|
|
findAll(@Query() queryDto: SearchCriticismQueryDto) {
|
|
return this.criticismService.findAll(queryDto);
|
|
}
|
|
|
|
@AuthGuards()
|
|
@PermissionsDec(PermissionEnum.CRITICISMS_READ)
|
|
@ApiOperation({ summary: "Get one Criticism with id ===> login as admin" })
|
|
@Get(":id")
|
|
fineOne(@Param() paramDto: ParamDto) {
|
|
return this.criticismService.findOneAndMarkAsRead(paramDto.id);
|
|
}
|
|
|
|
@AuthGuards()
|
|
@PermissionsDec(PermissionEnum.CRITICISMS_DELETE)
|
|
@ApiOperation({ summary: "Delete one Criticism with id ===> login as admin" })
|
|
@Delete(":id")
|
|
delete(@Param() paramDto: ParamDto) {
|
|
return this.criticismService.delete(paramDto.id);
|
|
}
|
|
}
|