UNPKG

n8n-nodes-base

Version:

Base nodes of n8n

188 lines 7.52 kB
"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