46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import {
|
|||
|
|
Body,
|
||
|
|
Controller,
|
||
|
|
Get,
|
||
|
|
Post,
|
||
|
|
Query,
|
||
|
|
UseGuards,
|
||
|
|
} from '@nestjs/common';
|
||
|
|
import { JwtAuthGuard } from '../auth/jwt-auth.guard';
|
||
|
|
import { CurrentUser } from '../auth/current-user.decorator';
|
||
|
|
import { Roles } from '../auth/roles.decorator';
|
||
|
|
import { RolesGuard } from '../auth/roles.guard';
|
||
|
|
import { CreatePipelineDto } from './dto';
|
||
|
|
import { PipelinesService } from './pipelines.service';
|
||
|
|
|
||
|
|
@Controller('pipelines')
|
||
|
|
@UseGuards(JwtAuthGuard, RolesGuard)
|
||
|
|
export class PipelinesController {
|
||
|
|
constructor(private readonly pipelinesService: PipelinesService) {}
|
||
|
|
|
||
|
|
@Get()
|
||
|
|
list(@CurrentUser() user: { organizationId: string }) {
|
||
|
|
return this.pipelinesService.list(user.organizationId);
|
||
|
|
}
|
||
|
|
|
||
|
|
@Get('board')
|
||
|
|
board(
|
||
|
|
@CurrentUser() user: { organizationId: string; userId: string; role: string },
|
||
|
|
@Query('pipelineId') pipelineId?: string,
|
||
|
|
) {
|
||
|
|
return this.pipelinesService.getBoard(user.organizationId, pipelineId, {
|
||
|
|
userId: user.userId,
|
||
|
|
role: user.role,
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
@Post()
|
||
|
|
@Roles('owner', 'admin')
|
||
|
|
create(
|
||
|
|
@CurrentUser() user: { organizationId: string },
|
||
|
|
@Body() dto: CreatePipelineDto,
|
||
|
|
) {
|
||
|
|
return this.pipelinesService.create(user.organizationId, dto.name);
|
||
|
|
}
|
||
|
|
}
|