Skip to content
This repository was archived by the owner on Jun 16, 2021. It is now read-only.

Latest commit

 

History

History
269 lines (160 loc) · 6.9 KB

querybuilder.md

File metadata and controls

269 lines (160 loc) · 6.9 KB

redux-data-service > QueryBuilder

Class: 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.

Hierarchy

QueryBuilder

Implements

Index

Constructors

Properties

Methods


Constructors

constructor

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


Properties

<Private> hashCode

● hashCode: string

Defined in Query/QueryBuilder.ts:92


queryParams

● queryParams: IQueryParams

Implementation of IQueryBuilder.queryParams

Defined in Query/QueryBuilder.ts:91


serviceName

● serviceName: string

Implementation of IQueryBuilder.serviceName

Defined in Query/QueryBuilder.ts:90


Methods

filter

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

getHashCode(): string

Defined in Query/QueryBuilder.ts:186

Returns: string


getSortDirection

getSortDirection(key: string): "asc" | "desc"

Defined in Query/QueryBuilder.ts:194

Parameters:

Name Type
key string

Returns: "asc" | "desc"


invoke

invoke(): void

Defined in Query/QueryBuilder.ts:179

Returns: void


page

page(pageNumber: number): IQueryBuilder

Defined in Query/QueryBuilder.ts:121

Parameters:

Name Type
pageNumber number

Returns: IQueryBuilder


pageSize

pageSize(pageSize: number): IQueryBuilder

Defined in Query/QueryBuilder.ts:130

Parameters:

Name Type
pageSize number

Returns: IQueryBuilder


removeFilter

removeFilter(key: string): IQueryBuilder

Defined in Query/QueryBuilder.ts:111

Parameters:

Name Type
key string

Returns: IQueryBuilder


removeSort

removeSort(key: string): IQueryBuilder

Defined in Query/QueryBuilder.ts:164

Parameters:

Name Type
key string

Returns: IQueryBuilder


sort

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