mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 10:02:05 +00:00
feat(core): Add endpoint POST /projects/:projectId/folders (no-changelog) (#13446)
This commit is contained in:
32
packages/cli/src/controllers/folder.controller.ts
Normal file
32
packages/cli/src/controllers/folder.controller.ts
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user