fix(Strapi Node): Strapi credentials notice (#6289)

This commit is contained in:
Michael Kret 2023-05-23 12:00:02 +03:00 committed by GitHub
parent ed7f3b845f
commit bbe6d4c4db
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 13 deletions

View file

@ -8,6 +8,12 @@ export class StrapiApi implements ICredentialType {
documentationUrl = 'strapi';
properties: INodeProperties[] = [
{
displayName: 'Make sure you are using a user account not an admin account',
name: 'notice',
type: 'notice',
default: '',
},
{
displayName: 'Email',
name: 'email',

View file

@ -10,11 +10,17 @@ import type {
} from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
export const removeTrailingSlash = (url: string) => {
if (url.endsWith('/')) {
return url.slice(0, -1);
}
return url;
};
export async function strapiApiRequest(
this: IExecuteFunctions | ILoadOptionsFunctions | IHookFunctions | IWebhookFunctions,
method: string,
resource: string,
body: IDataObject = {},
qs: IDataObject = {},
uri?: string,
@ -22,16 +28,15 @@ export async function strapiApiRequest(
) {
const credentials = await this.getCredentials('strapiApi');
const url = removeTrailingSlash(credentials.url as string);
try {
const options: OptionsWithUri = {
headers: {},
method,
body,
qs,
uri:
uri || credentials.apiVersion === 'v4'
? `${credentials.url}/api${resource}`
: `${credentials.url}${resource}`,
uri: uri || credentials.apiVersion === 'v4' ? `${url}/api${resource}` : `${url}${resource}`,
json: true,
qsStringifyOptions: {
arrayFormat: 'indice',
@ -54,6 +59,9 @@ export async function getToken(
this: IExecuteFunctions | ILoadOptionsFunctions | IHookFunctions | IWebhookFunctions,
): Promise<any> {
const credentials = await this.getCredentials('strapiApi');
const url = removeTrailingSlash(credentials.url as string);
let options = {} as OptionsWithUri;
options = {
headers: {
@ -64,10 +72,7 @@ export async function getToken(
identifier: credentials.email,
password: credentials.password,
},
uri:
credentials.apiVersion === 'v4'
? `${credentials.url}/api/auth/local`
: `${credentials.url}/auth/local`,
uri: credentials.apiVersion === 'v4' ? `${url}/api/auth/local` : `${url}/auth/local`,
json: true,
};
return this.helpers.request(options);

View file

@ -14,6 +14,7 @@ import { NodeOperationError } from 'n8n-workflow';
import {
getToken,
removeTrailingSlash,
strapiApiRequest,
strapiApiRequestAllItems,
validateJSON,
@ -70,6 +71,8 @@ export class Strapi implements INodeType {
const credentials = credential.data as IDataObject;
let options = {} as OptionsWithUri;
const url = removeTrailingSlash(credentials.url as string);
options = {
headers: {
'content-type': 'application/json',
@ -79,12 +82,10 @@ export class Strapi implements INodeType {
identifier: credentials.email,
password: credentials.password,
},
uri:
credentials.apiVersion === 'v4'
? `${credentials.url}/api/auth/local`
: `${credentials.url}/auth/local`,
uri: credentials.apiVersion === 'v4' ? `${url}/api/auth/local` : `${url}/auth/local`,
json: true,
};
try {
await this.helpers.request(options);
return {