5af2d37253
## Description - Created a Dashboard duplication action - Created a new duplication custom resolver - Created the service using the v2 of the API - Created the integration tests following the v2 methodology ## Video QA https://github.com/user-attachments/assets/e409951a-5946-4da0-91a0-1f7d2ecadb08
31 lines
1.3 KiB
TypeScript
31 lines
1.3 KiB
TypeScript
import { Controller, Param, Post, UseFilters, UseGuards } from '@nestjs/common';
|
|
|
|
import { WorkspaceEntity } from 'src/engine/core-modules/workspace/workspace.entity';
|
|
import { AuthWorkspace } from 'src/engine/decorators/auth/auth-workspace.decorator';
|
|
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,
|
|
@AuthWorkspace() workspace: WorkspaceEntity,
|
|
): Promise<DuplicatedDashboardDTO> {
|
|
return this.dashboardDuplicationService.duplicateDashboard(
|
|
id,
|
|
workspace.id,
|
|
);
|
|
}
|
|
}
|