Skip to content

Commit

Permalink
fix(basic.gblib): Trying to find invalid cell value on .xlsx being fi…
Browse files Browse the repository at this point in the history
…ltered.
  • Loading branch information
rodrigorodriguez committed Mar 9, 2021
1 parent 44a221b commit 3f0b020
Showing 1 changed file with 18 additions and 15 deletions.
33 changes: 18 additions & 15 deletions packages/basic.gblib/services/SystemKeywords.ts
Original file line number Diff line number Diff line change
Expand Up @@ -290,14 +290,14 @@ export class SystemKeywords {
* loop
*
*/
public async find(file: string, ...args ): Promise<any> {
GBLog.info(`BASIC: FIND running on ${file}...`);
public async find(file: string, ...args): Promise<any> {
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.`;
}
Expand All @@ -308,38 +308,41 @@ 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;
}
}

// 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()) {
Expand Down Expand Up @@ -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.

Expand Down

0 comments on commit 3f0b020

Please sign in to comment.