From 3f0b0201559261cc2069e6cf400eecdb76dbe492 Mon Sep 17 00:00:00 2001 From: Rodrigo Rodriguez Date: Tue, 9 Mar 2021 14:06:19 -0300 Subject: [PATCH] fix(basic.gblib): Trying to find invalid cell value on .xlsx being filtered. --- .../basic.gblib/services/SystemKeywords.ts | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/packages/basic.gblib/services/SystemKeywords.ts b/packages/basic.gblib/services/SystemKeywords.ts index ee7b287d..54f41eff 100644 --- a/packages/basic.gblib/services/SystemKeywords.ts +++ b/packages/basic.gblib/services/SystemKeywords.ts @@ -290,14 +290,14 @@ export class SystemKeywords { * loop * */ - public async find(file: string, ...args ): Promise { - GBLog.info(`BASIC: FIND running on ${file}...`); + public async find(file: string, ...args): Promise { + GBLog.info(`BASIC: FIND running on ${file} and args: ${JSON.stringify(args)}...`); let [baseUrl, client] = await this.internalGetDriveClient(); const botId = this.min.instance.botId; const path = `/${botId}.gbai/${botId}.gbdata`; - + let document = await this.internalGetDocument(client, baseUrl, path, file); - + if (args.length > 1) { throw `File '${file}' has a FIND call with more than 1 arguments. Check the .gbdialog associated.`; } @@ -308,18 +308,21 @@ export class SystemKeywords { const columnName = filter[0]; const value = filter[1]; let sheets = await client - .api(`${baseUrl}/drive/items/${document.id}/workbook/worksheets`) + .api(`${baseUrl}/drive/items/${document.id}/workbook/worksheets`) .get(); - let results = await client + let results = await client .api(`${baseUrl}/drive/items/${document.id}/workbook/worksheets('${sheets.value[0].name}')/range(address='A1:Z100')`) .get(); - // Increments columnIndex by looping until find a column match. + // Increments columnIndex by looping until find a column match. - let columnIndex = 0; + let columnIndex = 0; const header = results.text[0]; for (; columnIndex < header.length; columnIndex++) { + + GBLog.info(`FIND DEBUG header: ${header[columnIndex]} columnName: ${columnName}`); + if (header[columnIndex].toLowerCase() === columnName.toLowerCase()) { break; } @@ -327,19 +330,19 @@ export class SystemKeywords { // As BASIC uses arrays starting with 1 (one) as index, // a ghost element is added at 0 (zero) position. - + let table = []; table.push({ 'this is a hidden base 0': 'element' }); let foundIndex = 0; - + // Fills the row variable. - + for (; foundIndex < results.text.length; foundIndex++) { - + let result = results.text[foundIndex][columnIndex]; - + GBLog.info(`FIND DEBUG result on foundIndex: ${foundIndex} columnIndex: ${columnIndex}: ${result}`); - + // Filter results action. if (result && result.toLowerCase() === value.toLowerCase()) { @@ -557,7 +560,7 @@ export class SystemKeywords { `${baseUrl}/drive/root:/${root}`) .get(); } - + // Performs the conversion operation getting a reference // to the source and calling /content on drive API.