Skip to content

Commit

Permalink
fix(Result): Add missing filter param
Browse files Browse the repository at this point in the history
Signed-off-by: Gordon Smith <gordonjsmith@gmail.com>
  • Loading branch information
GordonSmith committed Sep 6, 2018
1 parent 2f81395 commit 487b0af
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 7 deletions.
19 changes: 15 additions & 4 deletions packages/comms/src/ecl/result.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,8 @@ export class Result extends StateObject<UResulState, IResulState> implements ECL
return this;
}

fetchRows(from: number = 0, count: number = -1, includeSchema: boolean = false): Promise<any[]> {
return this.WUResult(from, count, !includeSchema).then((response) => {
fetchRows(from: number = 0, count: number = -1, includeSchema: boolean = false, filter: { [key: string]: string | number } = {}): Promise<any[]> {
return this.WUResult(from, count, !includeSchema, filter).then((response) => {
const result = response.Result;
delete response.Result; // Do not want it in "set"
this.set({
Expand Down Expand Up @@ -142,8 +142,19 @@ export class Result extends StateObject<UResulState, IResulState> implements ECL
return this.xsdSchema.root.children();
}

protected WUResult(start: number = 0, count: number = 1, suppressXmlSchema: boolean = false): Promise<WUResult.Response> {
const request: WUResult.Request = {} as WUResult.Request;
protected WUResult(start: number = 0, count: number = 1, suppressXmlSchema: boolean = false, filter: { [key: string]: string | number } = {}): Promise<WUResult.Response> {
const FilterBy = {
NamedValue: {
itemcount: 0
}
};
for (const key in filter) {
FilterBy.NamedValue[FilterBy.NamedValue.itemcount++] = {
Name: key,
Value: filter[key]
};
}
const request: WUResult.Request = { FilterBy } as WUResult.Request;
if (this.Wuid && this.ResultName !== undefined) {
request.Wuid = this.Wuid;
request.ResultName = this.ResultName;
Expand Down
2 changes: 1 addition & 1 deletion packages/comms/src/services/wsWorkunits.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2019,7 +2019,7 @@ export namespace WUResult {
Cluster?: string;
SuppressXmlSchema?: boolean;
BypassCachedResult?: boolean;
FilterBy?: any[];
FilterBy?: any;
Start: number;
Count: number;
}
Expand Down
34 changes: 32 additions & 2 deletions tests/test-comms/src/ecl/workunit.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,19 @@ describe("test/esp/ecl/Workunit", function () {
});
it("update", function () {
return wu1.update({
QueryText: "'Hello and Welcome!';"
QueryText: `
Layout_Person := RECORD
UNSIGNED1 PersonID;
STRING15 FirstName;
STRING25 LastName;
END;
allPeople := DATASET([ {1,'Fred','Smith'},
{2,'Joe','Blow'},
{3,'Jane','Smith'}], Layout_Person);
allPeople;
`
});
});
it("submit", function () {
Expand All @@ -38,7 +50,7 @@ describe("test/esp/ecl/Workunit", function () {
}
});
});
it("results", function () {
it("result schema", function () {
return wu1.fetchResults().then((results) => {
expect(results.length).equals(1);
return wu1.CResults[0].fetchXMLSchema().then((schema) => {
Expand All @@ -47,6 +59,24 @@ describe("test/esp/ecl/Workunit", function () {
});
});
});
it("results", function () {
return wu1.fetchResults().then((results) => {
expect(results.length).equals(1);
return wu1.CResults[0].fetchRows().then(response => {
expect(response.length).to.equal(3);
return response;
});
});
});
it("results filter", function () {
return wu1.fetchResults().then((results) => {
expect(results.length).equals(1);
return wu1.CResults[0].fetchRows(0, 100, false, { LastName: "Smith" }).then(response => {
expect(response.length).to.equal(2);
return response;
});
});
});
it("delete", function () {
return wu1.delete().then(function (response) {
expect(wu1.isComplete(), "isComplete").is.true;
Expand Down

0 comments on commit 487b0af

Please sign in to comment.