File

src/task/tasks.controller.ts

Prefix

tasks

Index

Methods

Methods

createTask
createTask(createTaskDto: CreateTaskDTO, user: User)
Decorators :
@Post()
Parameters :
Name Type Optional
createTaskDto CreateTaskDTO No
user User No
Returns : Promise<Task>
deleteTask
deleteTask(id: string, user: User)
Decorators :
@Delete('/:id')
Parameters :
Name Type Optional
id string No
user User No
Returns : Promise<DeleteResult>
getTaskById
getTaskById(id: string, user: User)
Decorators :
@Get('/:id')
Parameters :
Name Type Optional
id string No
user User No
Returns : Promise<Task>
getTasks
getTasks(filterDto: GetTasksFilterDto, user: User)
Decorators :
@Get()
Parameters :
Name Type Optional
filterDto GetTasksFilterDto No
user User No
Returns : Promise<Task[]>
updateTaskStatus
updateTaskStatus(id: string, status: TaskStatus, user: User)
Decorators :
@Patch('/:id/status')
Parameters :
Name Type Optional
id string No
status TaskStatus No
user User No
Returns : Promise<Task>
import { User } from './../auth/user.entity';
import { AuthGuard } from '@nestjs/passport';
import { InjectRepository } from '@nestjs/typeorm';
import { TaskStatusValidationPipe } from './pipes/task-status-validation.pipes';
import { Controller, Get, Post, Body, Param, Delete, Patch, Query, ValidationPipe, UsePipes, ParseUUIDPipe, UseGuards } from '@nestjs/common';
import { GetTasksFilterDto } from './dto/get-tasks-filter.dto';
import { CreateTaskDTO } from './dto/create-task.dto';
import { TasksService } from './tasks.service';
import { Task } from './task-entity';
import { TaskRepository } from './task.repository';
import { TaskStatus } from './task-status.enum';
import { DeleteResult } from 'typeorm';
import { GetUser } from '../auth/get-user.decorator';

@Controller('tasks')
@UseGuards(AuthGuard())
export class TasksController {
    constructor(private readonly tasksService: TasksService) {}

    @Get()
    getTasks(
        @Query(ValidationPipe) filterDto: GetTasksFilterDto,
        @GetUser() user: User,
        ): Promise<Task[]> {
        return this.tasksService.getTasks(filterDto, user);
    }

    @Get('/:id')
    getTaskById(
        @Param('id', new ParseUUIDPipe()) id: string,
        @GetUser() user: User,
        ): Promise<Task> {
        return this.tasksService.getTaskById(id, user);
    }

    @Post()
    createTask(
        @Body() createTaskDto: CreateTaskDTO,
        @GetUser() user: User,
        ): Promise<Task> {
        return this.tasksService.createTask(createTaskDto, user);
    }

    @Patch('/:id/status')
    updateTaskStatus(
        @Param('id', new ParseUUIDPipe()) id: string,
        @Body('status', TaskStatusValidationPipe) status: TaskStatus,
        @GetUser() user: User,
        ): Promise<Task> {
        return this.tasksService.updateTaskStatus(id, status, user);
    }

    @Delete('/:id')
    deleteTask(
        @Param('id', new ParseUUIDPipe()) id: string,
        @GetUser() user: User,
        ): Promise<DeleteResult> {
       return this.tasksService.deleteTask(id, user);
    }
}

result-matching ""

    No results matching ""