redux-data-service > QueryBuilder
Uses the builder pattern for building up a query to the data source (such as a query to a REST API).
Example usage:
const queryBuilder = new QueryBuilder("student");
queryBuilder
.filter("firstName", "Bob")
.filter("state", "MA")
.sort("lastName")
.sort("age", "desc")
.page(2)
.pageSize(100)
.invoke();
Calling invoke
will dispatch the query to the associated Redux data service, which will use a QueryMapper to transform the query to the correct format for its data source.
For example, if using a UrlQueryMapper, it would return a string as query params in the following format:
?firstName=Bob&state=MA&page=2&pageSize=100&sort=lastName,age:desc
Extend the QueryMapper as needed for your data source / API to change how the query built from QueryBuilder is transformed.
Note that QueryBuilder is immutable. Each of the builder methods will return a new QueryBuilder instance.
QueryBuilder
⊕ new QueryBuilder(serviceName: string
, queryParams?: IQueryParams): QueryBuilder
Defined in Query/QueryBuilder.ts:92
Parameters:
Name | Type | Default value |
---|---|---|
serviceName | string |
- |
Default value queryParams |
IQueryParams | {} |
Returns: QueryBuilder
● hashCode: string
Defined in Query/QueryBuilder.ts:92
● queryParams: IQueryParams
Implementation of IQueryBuilder.queryParams
Defined in Query/QueryBuilder.ts:91
● serviceName: string
Implementation of IQueryBuilder.serviceName
Defined in Query/QueryBuilder.ts:90
▸ filter(key: string
, value: * string
| number
| false
| true
| ( string
| number
| false
| true
)[]*): IQueryBuilder
Defined in Query/QueryBuilder.ts:102
Parameters:
Name | Type |
---|---|
key | string |
value | string | number | false | true | ( string | number | false | true )[] |
Returns: IQueryBuilder
▸ getHashCode(): string
Defined in Query/QueryBuilder.ts:186
Returns: string
▸ getSortDirection(key: string
): "asc" | "desc"
Defined in Query/QueryBuilder.ts:194
Parameters:
Name | Type |
---|---|
key | string |
Returns: "asc" | "desc"
▸ invoke(): void
Defined in Query/QueryBuilder.ts:179
Returns: void
▸ page(pageNumber: number
): IQueryBuilder
Defined in Query/QueryBuilder.ts:121
Parameters:
Name | Type |
---|---|
pageNumber | number |
Returns: IQueryBuilder
▸ pageSize(pageSize: number
): IQueryBuilder
Defined in Query/QueryBuilder.ts:130
Parameters:
Name | Type |
---|---|
pageSize | number |
Returns: IQueryBuilder
▸ removeFilter(key: string
): IQueryBuilder
Defined in Query/QueryBuilder.ts:111
Parameters:
Name | Type |
---|---|
key | string |
Returns: IQueryBuilder
▸ removeSort(key: string
): IQueryBuilder
Defined in Query/QueryBuilder.ts:164
Parameters:
Name | Type |
---|---|
key | string |
Returns: IQueryBuilder
▸ sort(key: string
, direction?: SortDirection, position?: number
): IQueryBuilder
Defined in Query/QueryBuilder.ts:139
Parameters:
Name | Type | Default value |
---|---|---|
key | string |
- |
Default value direction |
SortDirection | "asc" |
Optional position |
number |
- |
Returns: IQueryBuilder