import { ICredentialDataDecryptedObject, ICredentialTestRequest, ICredentialType, IHttpRequestOptions, INodeProperties, } from 'n8n-workflow'; export class NextCloudApi implements ICredentialType { name = 'nextCloudApi'; displayName = 'NextCloud API'; documentationUrl = 'nextCloud'; properties: INodeProperties[] = [ { displayName: 'Web DAV URL', name: 'webDavUrl', type: 'string', placeholder: 'https://nextcloud.example.com/remote.php/webdav', default: '', }, { displayName: 'User', name: 'user', type: 'string', default: '', }, { displayName: 'Password', name: 'password', type: 'string', default: '', }, ]; async authenticate( credentials: ICredentialDataDecryptedObject, requestOptions: IHttpRequestOptions, ): Promise { requestOptions.auth = { username: credentials.user as string, password: credentials.password as string, }; return requestOptions; } test: ICredentialTestRequest = { request: { baseURL: "={{$credentials.webDavUrl.replace('/remote.php/webdav', '')}}", url: '/ocs/v1.php/cloud/capabilities', headers: { 'OCS-APIRequest': true }, }, }; }