UNPKG

n8n-nodes-base

Version:

Base nodes of n8n

92 lines 3.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.searchWorkbooks = searchWorkbooks; exports.getWorksheetsList = getWorksheetsList; exports.getWorksheetTables = getWorksheetTables; const transport_1 = require("../transport"); async function searchWorkbooks(filter, paginationToken) { const fileExtensions = ['.xlsx', '.xlsm', '.xlst']; const extensionFilter = fileExtensions.join(' OR '); const q = filter || extensionFilter; let response = {}; if (paginationToken) { response = await transport_1.microsoftApiRequest.call(this, 'GET', '', undefined, undefined, paginationToken); } else { response = await transport_1.microsoftApiRequest.call(this, 'GET', `/drive/root/search(q='${q}')`, undefined, { select: 'id,name,webUrl', $top: 100, }); } if (response.value && filter) { response.value = response.value.filter((workbook) => { return fileExtensions.some((extension) => workbook.name.includes(extension)); }); } return { results: response.value.map((workbook) => { for (const extension of fileExtensions) { if (workbook.name.includes(extension)) { workbook.name = workbook.name.replace(extension, ''); break; } } return { name: workbook.name, value: workbook.id, url: workbook.webUrl, }; }), paginationToken: response['@odata.nextLink'], }; } async function getWorksheetsList() { const workbookRLC = this.getNodeParameter('workbook'); const workbookId = workbookRLC.value; let workbookURL = workbookRLC.cachedResultUrl ?? ''; if (workbookURL.includes('1drv.ms')) { workbookURL = `https://onedrive.live.com/edit.aspx?resid=${workbookId}`; } let response = {}; response = await transport_1.microsoftApiRequest.call(this, 'GET', `/drive/items/${workbookId}/workbook/worksheets`, undefined, { select: 'id,name', }); return { results: response.value.map((worksheet) => ({ name: worksheet.name, value: worksheet.id, url: workbookURL ? `${workbookURL}&activeCell=${encodeURIComponent(worksheet.name)}!A1` : undefined, })), }; } async function getWorksheetTables() { const workbookRLC = this.getNodeParameter('workbook'); const workbookId = workbookRLC.value; let workbookURL = workbookRLC.cachedResultUrl ?? ''; if (workbookURL.includes('1drv.ms')) { workbookURL = `https://onedrive.live.com/edit.aspx?resid=${workbookId}`; } const worksheetId = this.getNodeParameter('worksheet', undefined, { extractValue: true, }); let response = {}; response = await transport_1.microsoftApiRequest.call(this, 'GET', `/drive/items/${workbookId}/workbook/worksheets/${worksheetId}/tables`, undefined); const results = []; for (const table of response.value) { const name = table.name; const value = table.id; const { address } = await transport_1.microsoftApiRequest.call(this, 'GET', `/drive/items/${workbookId}/workbook/worksheets/${worksheetId}/tables/${value}/range`, undefined, { select: 'address', }); const [sheetName, sheetRange] = address.split('!'); let url; if (workbookURL) { url = `${workbookURL}&activeCell=${encodeURIComponent(sheetName)}${sheetRange ? '!' + sheetRange : ''}`; } results.push({ name, value, url }); } return { results }; } //# sourceMappingURL=listSearch.js.map