mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2026-09-27 04:01:44 +02:00
61 lines
1.7 KiB
TypeScript
61 lines
1.7 KiB
TypeScript
import { NotFoundError } from './not-found.error';
|
|
|
|
export const webhookNotFoundErrorMessage = ({
|
|
path,
|
|
httpMethod,
|
|
webhookMethods,
|
|
}: {
|
|
path: string;
|
|
httpMethod?: string;
|
|
webhookMethods?: string[];
|
|
}) => {
|
|
let webhookPath = path;
|
|
|
|
if (httpMethod) {
|
|
webhookPath = `${httpMethod} ${webhookPath}`;
|
|
}
|
|
|
|
if (webhookMethods?.length && httpMethod) {
|
|
let methods = '';
|
|
|
|
if (webhookMethods.length === 1) {
|
|
methods = webhookMethods[0];
|
|
} else {
|
|
const lastMethod = webhookMethods.pop();
|
|
|
|
methods = `${webhookMethods.join(', ')} or ${lastMethod as string}`;
|
|
}
|
|
|
|
return `This webhook is not registered for ${httpMethod} requests. Did you mean to make a ${methods} request?`;
|
|
} else {
|
|
return `The requested webhook "${webhookPath}" is not registered.`;
|
|
}
|
|
};
|
|
|
|
export class WebhookNotFoundError extends NotFoundError {
|
|
constructor(
|
|
{
|
|
path,
|
|
httpMethod,
|
|
webhookMethods,
|
|
}: {
|
|
path: string;
|
|
httpMethod?: string;
|
|
webhookMethods?: string[];
|
|
},
|
|
{ hint }: { hint: 'default' | 'production' } = { hint: 'default' },
|
|
) {
|
|
const errorMsg = webhookNotFoundErrorMessage({ path, httpMethod, webhookMethods });
|
|
|
|
let hintMsg = '';
|
|
if (!webhookMethods?.length) {
|
|
hintMsg =
|
|
hint === 'default'
|
|
? "Click the 'Test workflow' button on the canvas, then try again. (In test mode, the webhook only works for one call after you click this button)"
|
|
: "The workflow must be active for a production URL to run successfully. You can activate the workflow using the toggle in the top-right of the editor. Note that unlike test URL calls, production URL calls aren't shown on the canvas (only in the executions list)";
|
|
}
|
|
|
|
super(errorMsg, hintMsg);
|
|
}
|
|
}
|