Skip to content

Commit 8cd4a8e

Browse files
authored
Merge pull request #265 from multiversx/prefix-query-support
Elastic Prefix Query Support
2 parents 3573815 + e54ed02 commit 8cd4a8e

15 files changed

Lines changed: 108 additions & 17 deletions

File tree

lerna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "node_modules/lerna/schemas/lerna-schema.json",
3-
"version": "7.1.0",
3+
"version": "7.2.0",
44
"packages": [
55
"packages/*"
66
],

package-lock.json

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/auth/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@multiversx/sdk-nestjs-auth",
3-
"version": "7.1.0",
3+
"version": "7.2.0",
44
"description": "Multiversx SDK Nestjs auth package",
55
"main": "lib/index.js",
66
"types": "lib/index.d.ts",

packages/cache/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@multiversx/sdk-nestjs-cache",
3-
"version": "7.1.0",
3+
"version": "7.2.0",
44
"description": "Multiversx SDK Nestjs cache package",
55
"main": "lib/index.js",
66
"types": "lib/index.d.ts",

packages/common/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@multiversx/sdk-nestjs-common",
3-
"version": "7.1.0",
3+
"version": "7.2.0",
44
"description": "Multiversx SDK Nestjs common package",
55
"main": "lib/index.js",
66
"types": "lib/index.d.ts",

packages/elastic/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@multiversx/sdk-nestjs-elastic",
3-
"version": "7.1.0",
3+
"version": "7.2.0",
44
"description": "Multiversx SDK Nestjs elastic package",
55
"main": "lib/index.js",
66
"types": "lib/index.d.ts",

packages/elastic/src/entities/elastic.query.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,22 @@ export class ElasticQuery {
8989
return this.withMustNotCondition(QueryType.Exists(key));
9090
}
9191

92+
withMustPrefixCondition(key: string, value: string | undefined): ElasticQuery {
93+
if (value === undefined) {
94+
return this;
95+
}
96+
97+
return this.withMustCondition(QueryType.Prefix(key, value.toLowerCase()));
98+
}
99+
100+
withMustNotPrefixCondition(key: string, value: string | undefined): ElasticQuery {
101+
if (value === undefined) {
102+
return this;
103+
}
104+
105+
return this.withMustNotCondition(QueryType.Prefix(key, value.toLowerCase()));
106+
}
107+
92108
withMustCondition(queries: AbstractQuery[] | AbstractQuery): ElasticQuery {
93109
return this.withCondition(QueryConditionOptions.must, queries);
94110
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { AbstractQuery } from './abstract.query';
2+
3+
export class PrefixQuery extends AbstractQuery {
4+
constructor(
5+
private readonly key: string,
6+
private readonly value: string,
7+
) {
8+
super();
9+
}
10+
11+
getQuery(): any {
12+
return {
13+
prefix: {
14+
[this.key]: {
15+
value: this.value,
16+
case_insensitive: true,
17+
},
18+
},
19+
};
20+
}
21+
}

packages/elastic/src/entities/query.type.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { ShouldQuery } from "./should.query";
1010
import { WildcardQuery } from "./wildcard.query";
1111
import { StringQuery } from "./string.query";
1212
import { NestedShouldQuery } from "./nested.should.query";
13+
import { PrefixQuery } from './prefix.query';
1314
import { ScriptQuery } from "./script.query";
1415

1516
export class QueryType {
@@ -29,6 +30,10 @@ export class QueryType {
2930
return new WildcardQuery(key, value);
3031
};
3132

33+
static Prefix = (key: string, value: string): PrefixQuery => {
34+
return new PrefixQuery(key, value);
35+
};
36+
3237
static Nested = (key: string, value: MatchQuery[]): NestedQuery => {
3338
return new NestedQuery(key, value);
3439
};

packages/elastic/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@ export * from './entities/range.query';
2626
export * from './entities/should.query';
2727
export * from './entities/terms.query';
2828
export * from './entities/wildcard.query';
29+
export * from './entities/prefix.query';

0 commit comments

Comments
 (0)