41 lines
1.3 KiB
Markdown
41 lines
1.3 KiB
Markdown
## 💻 Usage
|
|
|
|
The criteria converter expect an url with the following format:
|
|
* `filters`: An array of filters. Composed by:
|
|
- `field`: The field to filter by.
|
|
- `operator`: The operator to apply. [You can see here](https://github.com/CodelyTV/php-criteria/tree/main/packages/criteria) the valid operators list.
|
|
- `value`: The value to filter by.
|
|
* `orderBy`: The field to order by.
|
|
* `order`: The order to apply. `asc` or `desc`.
|
|
* `pageSize`: The number of items per page.
|
|
* `pageNumber`: The page number.
|
|
|
|
### Valid operators
|
|
* `EQUALS`: Equal
|
|
* `NOT_EQUALS`: Not equal
|
|
* `GREATER_THAN`: Greater than
|
|
* `GREATER_THAN_OR_EQUAL`: Greater than or equal
|
|
* `LOWER_THAN`: Less than
|
|
* `LOWER_THAN_OR_EQUAL`: Less than or equal
|
|
* `CONTAINS`: Contains. It will translate to `like` in SQL.
|
|
* `NOT_CONTAINS`: Not contains. It will translate to `not like` in SQL.
|
|
|
|
### Url examples
|
|
Url with one filter and no order or pagination:
|
|
```
|
|
http://localhost:3000/api/users?filters[0][field]=name&filters[0][operator]=CONTAINS&filters[0][value]=Javi
|
|
```
|
|
|
|
Url with two filter, order and pagination:
|
|
```
|
|
http://localhost:3000/api/users
|
|
?filters[0][field]=name&filters[0][operator]=CONTAINS&filters[0][value]=Javi
|
|
&filters[1][field]=email&filters[1][operator]=CONTAINS&filters[1][value]=gmail
|
|
&orderBy=name
|
|
&order=asc
|
|
&pageSize=10
|
|
&pageNumber=2
|
|
```
|
|
|
|
|