n8n-nodes-base
Version:
Base nodes of n8n
294 lines • 9.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getToken = getToken;
exports.layoutsApiRequest = layoutsApiRequest;
exports.getFields = getFields;
exports.getPortals = getPortals;
exports.getScripts = getScripts;
exports.logout = logout;
exports.parseSort = parseSort;
exports.parseScripts = parseScripts;
exports.parsePortals = parsePortals;
exports.parseQuery = parseQuery;
exports.parseFields = parseFields;
const n8n_workflow_1 = require("n8n-workflow");
async function getToken() {
const credentials = await this.getCredentials('fileMaker');
const host = credentials.host;
const db = credentials.db;
const login = credentials.login;
const password = credentials.password;
const url = `https://${host}/fmi/data/v1/databases/${db}/sessions`;
// Reset all values
const requestOptions = {
uri: url,
headers: {},
method: 'POST',
json: true,
//rejectUnauthorized: !this.getNodeParameter('allowUnauthorizedCerts', itemIndex, false) as boolean,
};
requestOptions.auth = {
user: login,
pass: password,
};
requestOptions.body = {
fmDataSource: [
{
database: host,
username: login,
password,
},
],
};
try {
const response = await this.helpers.request(requestOptions);
if (typeof response === 'string') {
throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'DataAPI response body is not valid JSON. Is the DataAPI enabled?');
}
return response.response.token;
}
catch (error) {
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 n8n_workflow_1.ApplicationError(message, { level: 'warning' });
}
}
function parseLayouts(layouts) {
const returnData = [];
for (const layout of layouts) {
if (layout.isFolder) {
returnData.push(...parseLayouts(layout.folderLayoutNames));
}
else {
returnData.push({
name: layout.name,
value: layout.name,
});
}
}
return returnData;
}
/**
* Make an API request to ActiveCampaign
*
*/
async function layoutsApiRequest() {
const token = await getToken.call(this);
const credentials = await this.getCredentials('fileMaker');
const host = credentials.host;
const db = credentials.db;
const url = `https://${host}/fmi/data/v1/databases/${db}/layouts`;
const options = {
headers: {
Authorization: `Bearer ${token}`,
},
method: 'GET',
uri: url,
json: true,
};
try {
const responseData = await this.helpers.request(options);
const items = parseLayouts(responseData.response.layouts);
items.sort((a, b) => (a.name > b.name ? 0 : 1));
return items;
}
catch (error) {
throw new n8n_workflow_1.NodeApiError(this.getNode(), error);
}
}
/**
* Make an API request to ActiveCampaign
*
*/
async function getFields() {
const token = await getToken.call(this);
const credentials = await this.getCredentials('fileMaker');
const layout = this.getCurrentNodeParameter('layout');
const host = credentials.host;
const db = credentials.db;
const url = `https://${host}/fmi/data/v1/databases/${db}/layouts/${layout}`;
const options = {
headers: {
Authorization: `Bearer ${token}`,
},
method: 'GET',
uri: url,
json: true,
};
const responseData = await this.helpers.request(options);
return responseData.response.fieldMetaData;
}
/**
* Make an API request to ActiveCampaign
*
*/
async function getPortals() {
const token = await getToken.call(this);
const credentials = await this.getCredentials('fileMaker');
const layout = this.getCurrentNodeParameter('layout');
const host = credentials.host;
const db = credentials.db;
const url = `https://${host}/fmi/data/v1/databases/${db}/layouts/${layout}`;
const options = {
headers: {
Authorization: `Bearer ${token}`,
},
method: 'GET',
uri: url,
json: true,
};
const responseData = await this.helpers.request(options);
return responseData.response.portalMetaData;
}
function parseScriptsList(scripts) {
const returnData = [];
for (const script of scripts) {
if (script.isFolder) {
returnData.push(...parseScriptsList(script.folderScriptNames));
}
else if (script.name !== '-') {
returnData.push({
name: script.name,
value: script.name,
});
}
}
return returnData;
}
/**
* Make an API request to ActiveCampaign
*
*/
async function getScripts() {
const token = await getToken.call(this);
const credentials = await this.getCredentials('fileMaker');
const host = credentials.host;
const db = credentials.db;
const url = `https://${host}/fmi/data/v1/databases/${db}/scripts`;
const options = {
headers: {
Authorization: `Bearer ${token}`,
},
method: 'GET',
uri: url,
json: true,
};
const responseData = await this.helpers.request(options);
const items = parseScriptsList(responseData.response.scripts);
items.sort((a, b) => (a.name > b.name ? 0 : 1));
return items;
}
async function logout(token) {
const credentials = await this.getCredentials('fileMaker');
const host = credentials.host;
const db = credentials.db;
const url = `https://${host}/fmi/data/v1/databases/${db}/sessions/${token}`;
// Reset all values
const requestOptions = {
uri: url,
headers: {},
method: 'DELETE',
json: true,
//rejectUnauthorized: !this.getNodeParameter('allowUnauthorizedCerts', itemIndex, false) as boolean,
};
const response = await this.helpers.request(requestOptions);
return response;
}
function parseSort(i) {
let sort;
const setSort = this.getNodeParameter('setSort', i, false);
if (!setSort) {
sort = null;
}
else {
sort = [];
const sortParametersUi = this.getNodeParameter('sortParametersUi', i, {});
if (sortParametersUi.rules !== undefined) {
for (const parameterData of sortParametersUi.rules) {
sort.push({
fieldName: parameterData.name,
sortOrder: parameterData.value,
});
}
}
}
return sort;
}
function parseScripts(i) {
const setScriptAfter = this.getNodeParameter('setScriptAfter', i, false);
const setScriptBefore = this.getNodeParameter('setScriptBefore', i, false);
const setScriptSort = this.getNodeParameter('setScriptSort', i, false);
if (!setScriptAfter && setScriptBefore && setScriptSort) {
return {};
}
else {
const scripts = {};
if (setScriptAfter) {
scripts.script = this.getNodeParameter('scriptAfter', i);
scripts['script.param'] = this.getNodeParameter('scriptAfter', i);
}
if (setScriptBefore) {
scripts['script.prerequest'] = this.getNodeParameter('scriptBefore', i);
scripts['script.prerequest.param'] = this.getNodeParameter('scriptBeforeParam', i);
}
if (setScriptSort) {
scripts['script.presort'] = this.getNodeParameter('scriptSort', i);
scripts['script.presort.param'] = this.getNodeParameter('scriptSortParam', i);
}
return scripts;
}
}
function parsePortals(i) {
let portals;
const getPortalsData = this.getNodeParameter('getPortals', i);
if (!getPortalsData) {
portals = [];
}
else {
portals = this.getNodeParameter('portals', i);
}
return portals;
}
function parseQuery(i) {
let queries;
const queriesParamUi = this.getNodeParameter('queries', i, {});
if (queriesParamUi.query !== undefined) {
queries = [];
for (const queryParam of queriesParamUi.query) {
const query = {
omit: queryParam.omit ? 'true' : 'false',
};
for (const field of queryParam.fields.field) {
query[field.name] = field.value;
}
queries.push(query);
}
}
else {
queries = null;
}
return queries;
}
function parseFields(i) {
let fieldData;
const fieldsParametersUi = this.getNodeParameter('fieldsParametersUi', i, {});
if (fieldsParametersUi.fields !== undefined) {
fieldData = {};
for (const field of fieldsParametersUi.fields) {
fieldData[field.name] = field.value;
}
}
else {
fieldData = null;
}
return fieldData;
}
//# sourceMappingURL=GenericFunctions.js.map