diff --git a/packages/nodes-base/nodes/FileMaker/FileMaker.node.ts b/packages/nodes-base/nodes/FileMaker/FileMaker.node.ts index 53ddcc1297..fb438bac54 100644 --- a/packages/nodes-base/nodes/FileMaker/FileMaker.node.ts +++ b/packages/nodes-base/nodes/FileMaker/FileMaker.node.ts @@ -698,10 +698,11 @@ export class FileMaker implements INodeType { const credentials = await this.getCredentials('fileMaker'); let token; + try { token = await getToken.call(this); } catch (error) { - throw new NodeOperationError(this.getNode(), new Error('Login fail', { cause: error })); + throw new NodeOperationError(this.getNode(), error as string); } let requestOptions: OptionsWithUri; @@ -818,21 +819,19 @@ export class FileMaker implements INodeType { try { response = await this.helpers.request(requestOptions); } catch (error) { - response = error.response.body; + response = error.error; } if (typeof response === 'string') { throw new NodeOperationError( this.getNode(), - 'Response body is not valid JSON. Change "Response Format" to "String"', + 'DataAPI response body is not valid JSON. Is the DataAPI enabled?', { itemIndex: i }, ); } returnData.push({ json: response }); } } catch (error) { - await logout.call(this, token as string); - if (error.node) { throw error; } @@ -843,6 +842,7 @@ export class FileMaker implements INodeType { ); } + await logout.call(this, token as string); return this.prepareOutputData(returnData); } } diff --git a/packages/nodes-base/nodes/FileMaker/GenericFunctions.ts b/packages/nodes-base/nodes/FileMaker/GenericFunctions.ts index bab9888743..2b689ce8f7 100644 --- a/packages/nodes-base/nodes/FileMaker/GenericFunctions.ts +++ b/packages/nodes-base/nodes/FileMaker/GenericFunctions.ts @@ -70,13 +70,22 @@ export async function getToken( if (typeof response === 'string') { throw new NodeOperationError( this.getNode(), - 'Response body is not valid JSON. Change "Response Format" to "String"', + 'DataAPI response body is not valid JSON. Is the DataAPI enabled?', ); } return response.response.token; } catch (error) { - throw new NodeApiError(this.getNode(), error as JsonObject); + let message + if ( error.statusCode === 502 ) { + message = 'The server is not responding. Is the DataAPI enabled?' + } + else if (error.error ) { + message = error.error.messages[0].code + ' - ' + error.error.messages[0].message + } else { + message = error.message; + } + throw new Error(message); } } @@ -257,25 +266,8 @@ export async function logout( //rejectUnauthorized: !this.getNodeParameter('allowUnauthorizedCerts', itemIndex, false) as boolean, }; - try { - const response = await this.helpers.request(requestOptions); - - if (typeof response === 'string') { - throw new NodeOperationError( - this.getNode(), - 'Response body is not valid JSON. Change "Response Format" to "String"', - ); - } - - return response; - } catch (error) { - const errorMessage = `${error.response.body.messages[0].message}'(' + ${error.response.body.messages[0].message}')'`; - - if (errorMessage !== undefined) { - throw new Error(errorMessage); - } - throw error.response.body; - } + const response = await this.helpers.request(requestOptions); + return response } export function parseSort(this: IExecuteFunctions, i: number): object | null { diff --git a/packages/nodes-base/nodes/FileMaker/filemaker.png b/packages/nodes-base/nodes/FileMaker/filemaker.png index 64664575e4..a305c06535 100644 Binary files a/packages/nodes-base/nodes/FileMaker/filemaker.png and b/packages/nodes-base/nodes/FileMaker/filemaker.png differ