n8n
Version:
n8n Workflow Automation Tool
156 lines • 7.14 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProjectController = void 0;
const api_types_1 = require("@n8n/api-types");
const n8n_workflow_1 = require("n8n-workflow");
const decorators_1 = require("../decorators");
const folder_not_found_error_1 = require("../errors/folder-not-found.error");
const bad_request_error_1 = require("../errors/response-errors/bad-request.error");
const internal_server_error_1 = require("../errors/response-errors/internal-server.error");
const not_found_error_1 = require("../errors/response-errors/not-found.error");
const folder_service_1 = require("../services/folder.service");
let ProjectController = class ProjectController {
constructor(folderService) {
this.folderService = folderService;
}
async createFolder(req, _res, payload) {
try {
const folder = await this.folderService.createFolder(payload, req.params.projectId);
return folder;
}
catch (e) {
if (e instanceof folder_not_found_error_1.FolderNotFoundError) {
throw new not_found_error_1.NotFoundError(e.message);
}
throw new internal_server_error_1.InternalServerError(undefined, e);
}
}
async getFolderTree(req, _res) {
const { projectId, folderId } = req.params;
try {
const tree = await this.folderService.getFolderTree(folderId, projectId);
return tree;
}
catch (e) {
if (e instanceof folder_not_found_error_1.FolderNotFoundError) {
throw new not_found_error_1.NotFoundError(e.message);
}
throw new internal_server_error_1.InternalServerError(undefined, e);
}
}
async updateFolder(req, _res, payload) {
const { projectId, folderId } = req.params;
try {
await this.folderService.updateFolder(folderId, projectId, payload);
}
catch (e) {
if (e instanceof folder_not_found_error_1.FolderNotFoundError) {
throw new not_found_error_1.NotFoundError(e.message);
}
else if (e instanceof n8n_workflow_1.UserError) {
throw new bad_request_error_1.BadRequestError(e.message);
}
throw new internal_server_error_1.InternalServerError(undefined, e);
}
}
async deleteFolder(req, _res, payload) {
const { projectId, folderId } = req.params;
try {
await this.folderService.deleteFolder(folderId, projectId, payload);
}
catch (e) {
if (e instanceof folder_not_found_error_1.FolderNotFoundError) {
throw new not_found_error_1.NotFoundError(e.message);
}
else if (e instanceof n8n_workflow_1.UserError) {
throw new bad_request_error_1.BadRequestError(e.message);
}
throw new internal_server_error_1.InternalServerError(undefined, e);
}
}
async listFolders(req, res, payload) {
const { projectId } = req.params;
const [data, count] = await this.folderService.getManyAndCount(projectId, payload);
res.json({ count, data });
}
async getFolderContent(req) {
const { projectId, folderId } = req.params;
try {
const { totalSubFolders, totalWorkflows } = await this.folderService.getFolderAndWorkflowCount(folderId, projectId);
return {
totalSubFolders,
totalWorkflows,
};
}
catch (e) {
if (e instanceof folder_not_found_error_1.FolderNotFoundError) {
throw new not_found_error_1.NotFoundError(e.message);
}
throw new internal_server_error_1.InternalServerError(undefined, e);
}
}
};
exports.ProjectController = ProjectController;
__decorate([
(0, decorators_1.Post)('/'),
(0, decorators_1.ProjectScope)('folder:create'),
__param(2, decorators_1.Body),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, Object, api_types_1.CreateFolderDto]),
__metadata("design:returntype", Promise)
], ProjectController.prototype, "createFolder", null);
__decorate([
(0, decorators_1.Get)('/:folderId/tree'),
(0, decorators_1.ProjectScope)('folder:read'),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, Object]),
__metadata("design:returntype", Promise)
], ProjectController.prototype, "getFolderTree", null);
__decorate([
(0, decorators_1.Patch)('/:folderId'),
(0, decorators_1.ProjectScope)('folder:update'),
__param(2, decorators_1.Body),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, Object, api_types_1.UpdateFolderDto]),
__metadata("design:returntype", Promise)
], ProjectController.prototype, "updateFolder", null);
__decorate([
(0, decorators_1.Delete)('/:folderId'),
(0, decorators_1.ProjectScope)('folder:delete'),
__param(2, decorators_1.Query),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, Object, api_types_1.DeleteFolderDto]),
__metadata("design:returntype", Promise)
], ProjectController.prototype, "deleteFolder", null);
__decorate([
(0, decorators_1.Get)('/'),
(0, decorators_1.ProjectScope)('folder:list'),
__param(2, decorators_1.Query),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object, Object, api_types_1.ListFolderQueryDto]),
__metadata("design:returntype", Promise)
], ProjectController.prototype, "listFolders", null);
__decorate([
(0, decorators_1.Get)('/:folderId/content'),
(0, decorators_1.ProjectScope)('folder:read'),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object]),
__metadata("design:returntype", Promise)
], ProjectController.prototype, "getFolderContent", null);
exports.ProjectController = ProjectController = __decorate([
(0, decorators_1.RestController)('/projects/:projectId/folders'),
__metadata("design:paramtypes", [folder_service_1.FolderService])
], ProjectController);
//# sourceMappingURL=folder.controller.js.map
;