@n8n/n8n-benchmark
Version:
Cli for running benchmark tests for n8n
67 lines • 2.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AuthenticatedN8nApiClient = void 0;
const n8n_api_client_1 = require("./n8n-api-client");
class AuthenticatedN8nApiClient extends n8n_api_client_1.N8nApiClient {
constructor(apiBaseUrl, authCookie) {
super(apiBaseUrl);
this.authCookie = authCookie;
}
static async createUsingUsernameAndPassword(apiClient, loginDetails) {
const response = await apiClient.restApiRequest('/login', {
method: 'POST',
data: {
emailOrLdapLoginId: loginDetails.email,
password: loginDetails.password,
},
});
if (response.data === 'n8n is starting up. Please wait') {
await apiClient.delay(1000);
return await this.createUsingUsernameAndPassword(apiClient, loginDetails);
}
const cookieHeader = response.headers['set-cookie'];
const authCookie = Array.isArray(cookieHeader) ? cookieHeader.join('; ') : cookieHeader;
if (!authCookie) {
throw new Error('Did not receive authentication cookie even tho login succeeded: ' +
JSON.stringify({
status: response.status,
headers: response.headers,
data: response.data,
}, null, 2));
}
return new AuthenticatedN8nApiClient(apiClient.apiBaseUrl, authCookie);
}
async get(endpoint) {
return await this.authenticatedRequest(endpoint, {
method: 'GET',
});
}
async post(endpoint, data) {
return await this.authenticatedRequest(endpoint, {
method: 'POST',
data,
});
}
async patch(endpoint, data) {
return await this.authenticatedRequest(endpoint, {
method: 'PATCH',
data,
});
}
async delete(endpoint) {
return await this.authenticatedRequest(endpoint, {
method: 'DELETE',
});
}
async authenticatedRequest(endpoint, init) {
return await this.restApiRequest(endpoint, {
...init,
headers: {
...init.headers,
cookie: this.authCookie,
},
});
}
}
exports.AuthenticatedN8nApiClient = AuthenticatedN8nApiClient;
//# sourceMappingURL=authenticated-n8n-api-client.js.map