import { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties, Icon, } from 'n8n-workflow'; /** * Credentials for the Mevspace API. * * The Mevspace API authenticates by passing the access token as a query-string * parameter `access-token` on every request, e.g.: * https://api.mevspace.com/dedicateds?access-token= */ export class MevspaceApi implements ICredentialType { name = 'mevspaceApi'; displayName = 'Mevspace API'; documentationUrl = 'https://docs.mevspace.com/api'; icon: Icon = 'fa:server'; properties: INodeProperties[] = [ { displayName: 'Access Token', name: 'accessToken', type: 'string', typeOptions: { password: true }, default: '', required: true, description: 'Mevspace API access token (passed as ?access-token= on every request)', }, ]; // Inject the token as a query-string parameter on every authenticated request. authenticate: IAuthenticateGeneric = { type: 'generic', properties: { qs: { 'access-token': '={{$credentials.accessToken}}', }, }, }; // Validate the credentials by listing dedicated servers (requires a valid token). test: ICredentialTestRequest = { request: { baseURL: 'https://api.mevspace.com', url: '/dedicateds', method: 'GET', }, }; }