feat(core): Add endpoint POST /projects/:projectId/folders (no-changelog) (#13446)

This commit is contained in:
Ricardo Espinoza
2025-02-24 09:54:47 -05:00
committed by GitHub
parent 0eae14e27a
commit c850cca648
14 changed files with 380 additions and 4 deletions

View File

@@ -0,0 +1,32 @@
import { CreateFolderDto } from '@n8n/api-types';
import { Response } from 'express';
import { Post, RestController, ProjectScope, Body } from '@/decorators';
import { FolderNotFoundError } from '@/errors/folder-not-found.error';
import { InternalServerError } from '@/errors/response-errors/internal-server.error';
import { NotFoundError } from '@/errors/response-errors/not-found.error';
import { AuthenticatedRequest } from '@/requests';
import { FolderService } from '@/services/folder.service';
@RestController('/projects/:projectId/folders')
export class ProjectController {
constructor(private readonly folderService: FolderService) {}
@Post('/')
@ProjectScope('folder:create')
async createFolder(
req: AuthenticatedRequest<{ projectId: string }>,
_res: Response,
@Body payload: CreateFolderDto,
) {
try {
const folder = await this.folderService.createFolder(payload, req.params.projectId);
return folder;
} catch (e) {
if (e instanceof FolderNotFoundError) {
throw new NotFoundError(e.message);
}
throw new InternalServerError();
}
}
}