From 7fef168d579e696874e679c1de450a33df5199c5 Mon Sep 17 00:00:00 2001 From: Edward Miller <1724472+symbiogenesis@users.noreply.github.com> Date: Fri, 9 Oct 2020 01:16:18 -0500 Subject: [PATCH 1/2] add getDetailsString() --- src/searchBuilder.ts | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/searchBuilder.ts b/src/searchBuilder.ts index a99d7d1..9cb54df 100644 --- a/src/searchBuilder.ts +++ b/src/searchBuilder.ts @@ -238,6 +238,47 @@ export default class SearchBuilder { return this; } + + /** + * Gets the details required to rebuild the SearchBuilder as it currently is, but formatted as a string + */ + public getDetailsString(): string { + var output = ''; + + var builderDetails = getDetails(); + + if (builderDetails.criteria) { + output += '( '; + + var logicalOperator = ' ' + builderDetails.logic + ' '; + + for (let logicalUnit of builderDetails.criteria) { + output += formatSearchBuilderDetails(logicalUnit); + output += logicalOperator; + }); + + if (output.endsWith(logicalOperator)) { + output = output.substring(0, output.length - logicalOperator.length) + } + + output += ' )'; + } + else { + output += builderDetails.data + ' ' + builderDetails.condition + ' '; + + var andOperator = ' AND '; + + for (let item of builderDetails.value) { + output += item + andOperator; + }); + + if (output.endsWith(andOperator)) { + output = output.substring(0, output.length - andOperator.length) + } + } + + return output; + } /** * Gets the details required to rebuild the SearchBuilder as it currently is From c34784498f7ff417111cdf6fad32588b2c97f390 Mon Sep 17 00:00:00 2001 From: Edward Miller <1724472+symbiogenesis@users.noreply.github.com> Date: Fri, 9 Oct 2020 01:22:00 -0500 Subject: [PATCH 2/2] fixes --- src/searchBuilder.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/searchBuilder.ts b/src/searchBuilder.ts index 9cb54df..25da89b 100644 --- a/src/searchBuilder.ts +++ b/src/searchBuilder.ts @@ -242,18 +242,20 @@ export default class SearchBuilder { /** * Gets the details required to rebuild the SearchBuilder as it currently is, but formatted as a string */ - public getDetailsString(): string { + public getDetailsString(builderDetails): string { var output = ''; - - var builderDetails = getDetails(); - + + if (!builderDetails) { + builderDetails = getDetails(); + } + if (builderDetails.criteria) { output += '( '; var logicalOperator = ' ' + builderDetails.logic + ' '; for (let logicalUnit of builderDetails.criteria) { - output += formatSearchBuilderDetails(logicalUnit); + output += getDetailsString(logicalUnit); output += logicalOperator; });