UNPKG

n8n

Version:

n8n Workflow Automation Tool

64 lines 3.31 kB
"use strict"; const api_types_1 = require("@n8n/api-types"); const config_1 = require("@n8n/config"); const constants_1 = require("@n8n/constants"); const di_1 = require("@n8n/di"); const bad_request_error_1 = require("../../../../errors/response-errors/bad-request.error"); const not_found_error_1 = require("../../../../errors/response-errors/not-found.error"); const import_package_upload_1 = require("../../../../modules/n8n-packages/utils/import-package-upload"); const n8n_packages_service_1 = require("../../../../modules/n8n-packages/n8n-packages.service"); const global_middleware_1 = require("../../shared/middlewares/global.middleware"); const n8nPackagesHandlers = { exportWorkflows: [ (0, global_middleware_1.isLicensed)(constants_1.LICENSE_FEATURES.N8N_PACKAGES), (0, global_middleware_1.publicApiScope)('workflow:export'), async (req, res) => { if (!di_1.Container.get(config_1.GlobalConfig).publicApi.packagesEnabled) { throw new not_found_error_1.NotFoundError('Not Found'); } const payload = api_types_1.ExportWorkflowsRequestDto.safeParse(req.body); if (!payload.success) { throw new bad_request_error_1.BadRequestError(payload.error.errors.map(({ message }) => message).join('; ')); } const stream = await di_1.Container.get(n8n_packages_service_1.N8nPackagesService).exportWorkflows({ user: req.user, workflowIds: payload.data.workflowIds, }); res.setHeader('Content-Type', 'application/gzip'); res.setHeader('Content-Disposition', 'attachment; filename="export.n8np"'); return await new Promise((resolve, reject) => { stream.on('error', reject); res.on('finish', () => resolve(res)); res.on('close', () => { if (!res.writableFinished) stream.destroy(); resolve(res); }); stream.pipe(res); }); }, ], importPackage: [ (0, global_middleware_1.isLicensed)(constants_1.LICENSE_FEATURES.N8N_PACKAGES), (0, global_middleware_1.publicApiScope)('workflow:import'), async (req, res) => { if (!di_1.Container.get(config_1.GlobalConfig).publicApi.packagesEnabled) { throw new not_found_error_1.NotFoundError('Not Found'); } const packageFile = (0, import_package_upload_1.resolveImportPackageUpload)(req); const payload = api_types_1.ImportPackageRequestDto.safeParse(req.body ?? {}); if (!payload.success) { throw new bad_request_error_1.BadRequestError(payload.error.errors.map(({ message }) => message).join('; ')); } const result = await di_1.Container.get(n8n_packages_service_1.N8nPackagesService).importPackage({ user: req.user, projectId: payload.data.projectId, folderId: payload.data.folderId, packageBuffer: packageFile.buffer, }); return res.status(200).json(result); }, ], }; module.exports = n8nPackagesHandlers; //# sourceMappingURL=n8n-packages.handler.js.map