twenty / packages /twenty-server /src /modules /dashboard /controllers /dashboard.controller.ts
Jules
Initial clean CRM deployment with prebuilt assets
d9494a5
Raw
History Blame Contribute Delete
1.25 kB
import { Controller, Param, Post, UseFilters, UseGuards } from '@nestjs/common';
import { getWorkspaceAuthContext } from 'src/engine/core-modules/auth/storage/workspace-auth-context.storage';
import { JwtAuthGuard } from 'src/engine/guards/jwt-auth.guard';
import { NoPermissionGuard } from 'src/engine/guards/no-permission.guard';
import { WorkspaceAuthGuard } from 'src/engine/guards/workspace-auth.guard';
import { DuplicatedDashboardDTO } from 'src/modules/dashboard/dtos/duplicated-dashboard.dto';
import { DashboardRestApiExceptionFilter } from 'src/modules/dashboard/filters/dashboard-rest-api-exception.filter';
import { DashboardDuplicationService } from 'src/modules/dashboard/services/dashboard-duplication.service';
@Controller('rest/dashboards')
@UseGuards(JwtAuthGuard, WorkspaceAuthGuard, NoPermissionGuard)
@UseFilters(DashboardRestApiExceptionFilter)
export class DashboardController {
constructor(
private readonly dashboardDuplicationService: DashboardDuplicationService,
) {}
@Post(':id/duplicate')
async duplicate(@Param('id') id: string): Promise<DuplicatedDashboardDTO> {
const authContext = getWorkspaceAuthContext();
return this.dashboardDuplicationService.duplicateDashboard(id, authContext);
}
}