import type { IExecuteFunctions, ICredentialDataDecryptedObject, ICredentialsDecrypted, ICredentialTestFunctions, INodeCredentialTestResult, INodeType, INodeTypeBaseDescription, INodeTypeDescription, } from 'n8n-workflow'; import { versionDescription } from './actions/versionDescription'; import { loadOptions } from './methods'; import { router } from './actions/router'; import { validateCredentials } from './transport'; export class SyncroMspV1 implements INodeType { description: INodeTypeDescription; constructor(baseDescription: INodeTypeBaseDescription) { this.description = { ...baseDescription, ...versionDescription, }; } methods = { loadOptions, credentialTest: { async syncroMspApiCredentialTest( this: ICredentialTestFunctions, credential: ICredentialsDecrypted, ): Promise { try { await validateCredentials.call(this, credential.data as ICredentialDataDecryptedObject); } catch (error) { if (error.statusCode === 401) { return { status: 'Error', message: 'The API Key included in the request is invalid', }; } } return { status: 'OK', message: 'Connection successful!', }; }, }, }; async execute(this: IExecuteFunctions) { return await router.call(this); } }