mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-18 10:31:15 +00:00
refactor(core): Extract Worfklow import request payload into a DTO (#12441)
This commit is contained in:
committed by
GitHub
parent
b1940268e6
commit
1d3cb9f5ac
@@ -1,3 +1,4 @@
|
||||
import { ImportWorkflowFromUrlDto } from '@n8n/api-types';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
// eslint-disable-next-line n8n-local-rules/misplaced-n8n-typeorm-import
|
||||
import { In, type FindOptionsRelations } from '@n8n/typeorm';
|
||||
@@ -18,7 +19,7 @@ import { SharedWorkflowRepository } from '@/databases/repositories/shared-workfl
|
||||
import { TagRepository } from '@/databases/repositories/tag.repository';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import * as Db from '@/db';
|
||||
import { Delete, Get, Patch, Post, ProjectScope, Put, RestController } from '@/decorators';
|
||||
import { Delete, Get, Patch, Post, ProjectScope, Put, Query, RestController } from '@/decorators';
|
||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||
import { ForbiddenError } from '@/errors/response-errors/forbidden.error';
|
||||
import { InternalServerError } from '@/errors/response-errors/internal-server.error';
|
||||
@@ -29,6 +30,7 @@ import { validateEntity } from '@/generic-helpers';
|
||||
import type { IWorkflowResponse } from '@/interfaces';
|
||||
import { License } from '@/license';
|
||||
import { listQueryMiddleware } from '@/middlewares';
|
||||
import { AuthenticatedRequest } from '@/requests';
|
||||
import * as ResponseHelper from '@/response-helper';
|
||||
import { NamingService } from '@/services/naming.service';
|
||||
import { ProjectService } from '@/services/project.service.ee';
|
||||
@@ -215,18 +217,14 @@ export class WorkflowsController {
|
||||
}
|
||||
|
||||
@Get('/from-url')
|
||||
async getFromUrl(req: WorkflowRequest.FromUrl) {
|
||||
if (req.query.url === undefined) {
|
||||
throw new BadRequestError('The parameter "url" is missing!');
|
||||
}
|
||||
if (!/^http[s]?:\/\/.*\.json$/i.exec(req.query.url)) {
|
||||
throw new BadRequestError(
|
||||
'The parameter "url" is not valid! It does not seem to be a URL pointing to a n8n workflow JSON file.',
|
||||
);
|
||||
}
|
||||
async getFromUrl(
|
||||
_req: AuthenticatedRequest,
|
||||
_res: express.Response,
|
||||
@Query query: ImportWorkflowFromUrlDto,
|
||||
) {
|
||||
let workflowData: IWorkflowResponse | undefined;
|
||||
try {
|
||||
const { data } = await axios.get<IWorkflowResponse>(req.query.url);
|
||||
const { data } = await axios.get<IWorkflowResponse>(query.url);
|
||||
workflowData = data;
|
||||
} catch (error) {
|
||||
throw new BadRequestError('The URL does not point to valid JSON file!');
|
||||
|
||||
Reference in New Issue
Block a user