n8n-nodes-base
Version:
Base nodes of n8n
188 lines • 7.52 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getTableNames = getTableNames;
exports.getTableNameAndId = getTableNameAndId;
exports.getSearchableColumns = getSearchableColumns;
exports.getLinkColumns = getLinkColumns;
exports.getLinkColumnsWithColumnKey = getLinkColumnsWithColumnKey;
exports.getAssetColumns = getAssetColumns;
exports.getSignatureColumns = getSignatureColumns;
exports.getTableUpdateAbleColumns = getTableUpdateAbleColumns;
exports.getRowIds = getRowIds;
exports.getTableViews = getTableViews;
const GenericFunctions_1 = require("../GenericFunctions");
async function getTableNames() {
const returnData = [];
const { metadata: { tables }, } = await GenericFunctions_1.seaTableApiRequest.call(this, {}, 'GET', '/api-gateway/api/v2/dtables/{{dtable_uuid}}/metadata');
for (const table of tables) {
returnData.push({
name: table.name,
value: table.name,
});
}
return returnData;
}
async function getTableNameAndId() {
const returnData = [];
const { metadata: { tables }, } = await GenericFunctions_1.seaTableApiRequest.call(this, {}, 'GET', '/api-gateway/api/v2/dtables/{{dtable_uuid}}/metadata');
for (const table of tables) {
returnData.push({
name: table.name,
value: table.name + ':::' + table._id,
});
}
return returnData;
}
async function getSearchableColumns() {
const returnData = [];
const tableName = this.getCurrentNodeParameter('tableName');
if (tableName) {
const columns = await GenericFunctions_1.seaTableApiRequest.call(this, {}, 'GET', '/api-gateway/api/v2/dtables/{{dtable_uuid}}/columns', {}, { table_name: tableName });
for (const col of columns.columns) {
if (col.type === 'text' ||
col.type === 'long-text' ||
col.type === 'number' ||
col.type === 'single-select' ||
col.type === 'email' ||
col.type === 'url' ||
col.type === 'rate' ||
col.type === 'formula') {
returnData.push({
name: col.name,
value: col.name,
});
}
}
}
return returnData;
}
async function getLinkColumns() {
const returnData = [];
const table = this.getCurrentNodeParameter('tableName');
const tableName = table.split(':::')[0];
const tableId = table.split(':::')[1];
if (tableName) {
const columns = await GenericFunctions_1.seaTableApiRequest.call(this, {}, 'GET', '/api-gateway/api/v2/dtables/{{dtable_uuid}}/columns', {}, { table_name: tableName });
for (const col of columns.columns) {
if (col.type === 'link') {
// make sure that the "other table id" is returned and not the same table id again.
const otid = tableId !== col.data.other_table_id ? col.data.other_table_id : col.data.table_id;
returnData.push({
name: col.name,
value: col.name + ':::' + col.data.link_id + ':::' + otid,
});
}
}
}
return returnData;
}
async function getLinkColumnsWithColumnKey() {
const returnData = [];
const table = this.getCurrentNodeParameter('tableName');
const tableName = table.split(':::')[0];
const tableId = table.split(':::')[1];
if (tableName) {
const columns = await GenericFunctions_1.seaTableApiRequest.call(this, {}, 'GET', '/api-gateway/api/v2/dtables/{{dtable_uuid}}/columns', {}, { table_name: tableName });
for (const col of columns.columns) {
if (col.type === 'link') {
// make sure that the "other table id" is returned and not the same table id again.
const otid = tableId !== col.data.other_table_id ? col.data.other_table_id : col.data.table_id;
returnData.push({
name: col.name,
value: col.name + ':::' + col.data.link_id + ':::' + otid + ':::' + col.key,
});
}
}
}
return returnData;
}
async function getAssetColumns() {
const returnData = [];
const tableName = this.getCurrentNodeParameter('tableName');
if (tableName) {
const columns = await GenericFunctions_1.seaTableApiRequest.call(this, {}, 'GET', '/api-gateway/api/v2/dtables/{{dtable_uuid}}/columns', {}, { table_name: tableName });
for (const col of columns.columns) {
if (col.type === 'image' || col.type === 'file') {
returnData.push({
name: col.name,
value: col.name + ':::' + col.type,
});
}
}
}
return returnData;
}
async function getSignatureColumns() {
const returnData = [];
const tableName = this.getCurrentNodeParameter('tableName');
if (tableName) {
// only execute if table is selected
const columns = await GenericFunctions_1.seaTableApiRequest.call(this, {}, 'GET', '/api-gateway/api/v2/dtables/{{dtable_uuid}}/columns', {}, { table_name: tableName });
for (const col of columns.columns) {
if (col.type === 'digital-sign') {
returnData.push({
name: col.name,
value: col.name,
});
}
}
}
return returnData;
}
async function getTableUpdateAbleColumns() {
const tableName = this.getNodeParameter('tableName');
let columns = await GenericFunctions_1.getTableColumns.call(this, tableName);
columns = (0, GenericFunctions_1.updateAble)(columns);
return columns
.filter((column) => column.editable)
.map((column) => ({ name: column.name, value: column.name }));
}
async function getRowIds() {
const table = this.getCurrentNodeParameter('tableName');
const operation = this.getCurrentNodeParameter('operation');
let tableName = table;
if (table.indexOf(':::') !== -1) {
tableName = table.split(':::')[0];
}
let lockQuery = '';
if (operation === 'lock') {
lockQuery = 'WHERE _locked is null';
}
if (operation === 'unlock') {
lockQuery = 'WHERE _locked = true';
}
const returnData = [];
if (tableName) {
const sqlResult = await GenericFunctions_1.seaTableApiRequest.call(this, {}, 'POST', '/api-gateway/api/v2/dtables/{{dtable_uuid}}/sql', {
sql: `SELECT * FROM \`${tableName}\` ${lockQuery} LIMIT 1000`,
convert_keys: false,
});
const rows = sqlResult.results;
for (const row of rows) {
returnData.push({
name: `${row['0000']} (${row._id})`,
value: row._id,
});
}
}
return returnData;
}
async function getTableViews() {
const returnData = [];
const tableName = this.getCurrentNodeParameter('tableName');
if (tableName) {
const { views } = await GenericFunctions_1.seaTableApiRequest.call(this, {}, 'GET', '/api-gateway/api/v2/dtables/{{dtable_uuid}}/views', {}, { table_name: tableName });
returnData.push({
name: '<Do not limit to a view>',
value: '',
});
for (const view of views) {
returnData.push({
name: view.name,
value: view.name,
});
}
}
return returnData;
}
//# sourceMappingURL=loadOptions.js.map