mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
fix(wekan Node): Fix authentication with new versions of Wekan (#4088)
This commit is contained in:
committed by
GitHub
parent
b0397f0262
commit
764bd3522b
@@ -1,52 +1,8 @@
|
||||
import {
|
||||
IExecuteFunctions,
|
||||
IExecuteSingleFunctions,
|
||||
IHookFunctions,
|
||||
ILoadOptionsFunctions,
|
||||
IWebhookFunctions,
|
||||
} from 'n8n-core';
|
||||
import { IExecuteFunctions, IHookFunctions, ILoadOptionsFunctions } from 'n8n-core';
|
||||
|
||||
import { OptionsWithUri } from 'request';
|
||||
|
||||
import {
|
||||
ICredentialDataDecryptedObject,
|
||||
IDataObject,
|
||||
NodeApiError,
|
||||
NodeOperationError,
|
||||
} from 'n8n-workflow';
|
||||
|
||||
export async function getAuthorization(
|
||||
this:
|
||||
| IHookFunctions
|
||||
| IExecuteFunctions
|
||||
| IExecuteSingleFunctions
|
||||
| ILoadOptionsFunctions
|
||||
| IWebhookFunctions,
|
||||
credentials?: ICredentialDataDecryptedObject,
|
||||
): Promise<IDataObject> {
|
||||
if (credentials === undefined) {
|
||||
throw new NodeOperationError(this.getNode(), 'No credentials got returned!');
|
||||
}
|
||||
|
||||
const { password, username } = credentials;
|
||||
const options: OptionsWithUri = {
|
||||
method: 'POST',
|
||||
form: {
|
||||
username,
|
||||
password,
|
||||
},
|
||||
uri: `${credentials.url}/users/login`,
|
||||
json: true,
|
||||
};
|
||||
|
||||
try {
|
||||
const response = await this.helpers.request!(options);
|
||||
|
||||
return { token: response.token, userId: response.id };
|
||||
} catch (error) {
|
||||
throw new NodeApiError(this.getNode(), error);
|
||||
}
|
||||
}
|
||||
import { IDataObject, JsonObject, NodeApiError, NodeOperationError } from 'n8n-workflow';
|
||||
|
||||
export async function apiRequest(
|
||||
this: IHookFunctions | IExecuteFunctions | ILoadOptionsFunctions,
|
||||
@@ -60,12 +16,9 @@ export async function apiRequest(
|
||||
|
||||
query = query || {};
|
||||
|
||||
const { token } = await getAuthorization.call(this, credentials);
|
||||
|
||||
const options: OptionsWithUri = {
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
Authorization: `Bearer ${token}`,
|
||||
},
|
||||
method,
|
||||
body,
|
||||
@@ -75,12 +28,11 @@ export async function apiRequest(
|
||||
};
|
||||
|
||||
try {
|
||||
return await this.helpers.request!(options);
|
||||
return await this.helpers.requestWithAuthentication.call(this, 'wekanApi', options);
|
||||
} catch (error) {
|
||||
if (error.statusCode === 401) {
|
||||
throw new NodeOperationError(this.getNode(), 'The Wekan credentials are not valid!');
|
||||
}
|
||||
|
||||
throw error;
|
||||
throw new NodeApiError(this.getNode(), error as JsonObject);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user