feat: added remark controller

This commit is contained in:
2026-07-02 11:58:01 +03:30
parent 4f76af87a6
commit a199623eb4
@@ -0,0 +1,56 @@
import { Controller, Get, Post, Patch, Delete, Param, Body, Query } from "@nestjs/common";
import { ApiTags, ApiOperation, ApiResponse, ApiParam, ApiQuery } from "@nestjs/swagger";
import { RemarkService } from "../providers/remark.service";
import { CreateRemarkDto } from "../dto/remark/create-remark.dto";
import { UpdateRemarkDto } from "../dto/remark/update-remark.dto";
import { TMRemark } from "../entities/remark.entity";
@ApiTags("Task Manager - Remarks")
@Controller("task-manager/remarks")
export class RemarkController {
constructor(private readonly remarkService: RemarkService) {}
@Get()
@ApiOperation({ summary: "Get all remarks, optionally filtered by task" })
@ApiQuery({ name: "taskId", required: false, description: "Filter remarks by task ID" })
@ApiResponse({ status: 200, description: "List of remarks", type: [TMRemark] })
findAll(@Query("taskId") taskId?: string): Promise<TMRemark[]> {
if (taskId) return this.remarkService.findByTask(taskId);
return this.remarkService.findAll();
}
@Get(":id")
@ApiOperation({ summary: "Get a remark by ID" })
@ApiParam({ name: "id", description: "Remark ID" })
@ApiResponse({ status: 200, description: "Remark found", type: TMRemark })
@ApiResponse({ status: 404, description: "Remark not found" })
findOne(@Param("id") id: string): Promise<TMRemark> {
return this.remarkService.findOne(id);
}
@Post()
@ApiOperation({ summary: "Create a new remark" })
@ApiResponse({ status: 201, description: "Remark created", type: TMRemark })
@ApiResponse({ status: 404, description: "Task not found" })
create(@Body() body: CreateRemarkDto): Promise<TMRemark> {
return this.remarkService.create(body);
}
@Patch(":id")
@ApiOperation({ summary: "Update a remark" })
@ApiParam({ name: "id", description: "Remark ID" })
@ApiResponse({ status: 200, description: "Remark updated", type: TMRemark })
@ApiResponse({ status: 404, description: "Remark or Task not found" })
update(@Param("id") id: string, @Body() body: UpdateRemarkDto): Promise<TMRemark> {
return this.remarkService.update(id, body);
}
@Delete(":id")
@ApiOperation({ summary: "Delete a remark" })
@ApiParam({ name: "id", description: "Remark ID" })
@ApiResponse({ status: 200, description: "Remark deleted" })
@ApiResponse({ status: 404, description: "Remark not found" })
remove(@Param("id") id: string): Promise<void> {
return this.remarkService.remove(id);
}
}