n8n-nodes-base
Version:
Base nodes of n8n
92 lines • 3.73 kB
JavaScript
;
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