<commit_before># Http Query Filter

[![Build status](https://ci.appveyor.com/api/projects/status/id8it23ojpmcwlbb?svg=true)](https://ci.appveyor.com/project/junioro/http-query-filter)
[![Build Status](https://travis-ci.org/jroliveira/http-query-filter.svg?branch=master)](https://travis-ci.org/jroliveira/http-query-filter)
[![NuGet](https://img.shields.io/nuget/v/Http.Query.Filter.svg)](https://www.nuget.org/packages/Http.Query.Filter/)
[![NuGet](https://img.shields.io/nuget/dt/Http.Query.Filter.svg)](https://www.nuget.org/packages/Http.Query.Filter/)
[![License: MIT](http://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)

![Http Query Filter - Logo][logo]

Sistema de filtro baseado no projeto [StrongLoop Node.js API Platform][strongloop] desenvolvido pela [IBM Company][ibm].

## Features

### Limit

Retorna apenas a quantidade de dados passada no filtro ou menos dados.

Exemplo:

```
/accounts?filter[limit]=5
```

### Skip

Retorna apenas os dados ignorando os primeiros registros retornados na consulta. Geralmente  utilizado para paginao.

Exemplo:

```
/accounts?filter[skip]=1
```

### Order

Retorna os dados ordenados de forma crescente (asc) ou decrescente(desc) com base em um propriedade especifica.

Exemplos:

De forma CRESCENTE:

```
/accounts?filter[order]=name%20asc
```

De forma DECRESCENTE:

```
/accounts?filter[order]=name%20desc
```

De forma crescente E decrescente:

```
/accounts?filter[order][0]=id%20asc&filter[order][1]=name%20desc
```

### Where

Retorna os dados respeitando as condies solicitadas.

Exemplos:

Onde for IGUAL:

```
/accounts?filter[where][id]=100
```

Onde for MAIOR QUE:

```
/accounts?filter[where][id][gt]=100
```

Onde for MENOR QUE:

```
/accounts?filter[where][id][lt]=100
```

### Fields

Retorna os dados respeitando a configurao de visualizao de cada campo.

obs.: A coluna por padro ser retornada na consulta.

Exemplos:

Onde for VERDADEIRO:

```
/accounts?filter[fields][id]=true
```

Onde for FALSO:

```
/accounts?filter[fields][id]=false
```

## Instalao

* `Install-Package Http.Query.Filter`

## Rodar os testes

* `git clone https://github.com/jroliveira/http-query-filter.git`
* `npm install`
* `npm test`

## Contribuies

1. Fork it
2. git checkout -b <branch-name>
3. git add --all && git commit -m "feature description"
4. git push origin <branch-name>
5. Create a pull request

[strongloop]: https://strongloop.com/
[ibm]: http://www.ibm.com/
[logo]: https://raw.githubusercontent.com/jroliveira/http-query-filter/master/logo.png "Http Query Filter - Logo"<commit_msg>docs: update readme<commit_after># Http Query Filter

[![Build status](https://ci.appveyor.com/api/projects/status/id8it23ojpmcwlbb?svg=true)](https://ci.appveyor.com/project/junioro/http-query-filter)
[![Build Status](https://travis-ci.org/jroliveira/http-query-filter.svg?branch=master)](https://travis-ci.org/jroliveira/http-query-filter)
[![NuGet](https://img.shields.io/nuget/v/Http.Query.Filter.svg)](https://www.nuget.org/packages/Http.Query.Filter/)
[![NuGet](https://img.shields.io/nuget/dt/Http.Query.Filter.svg)](https://www.nuget.org/packages/Http.Query.Filter/)
[![License: MIT](http://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)

![Http Query Filter - Logo][logo]

Sistema de filtro baseado no projeto [StrongLoop Node.js API Platform][strongloop] desenvolvido pela [IBM Company][ibm].

## Features

### Limit

Retorna apenas a quantidade de dados passada no filtro ou menos dados.

Exemplo:

```
/accounts?filter[limit]=5
```

### Skip

Retorna apenas os dados ignorando os primeiros registros retornados na consulta. Geralmente  utilizado para paginao.

Exemplo:

```
/accounts?filter[skip]=1
```

### Order

Retorna os dados ordenados de forma crescente (asc) ou decrescente(desc) com base em um propriedade especifica.

Exemplos:

De forma CRESCENTE:

```
/accounts?filter[order]=name%20asc
```

De forma DECRESCENTE:

```
/accounts?filter[order]=name%20desc
```

De forma crescente E decrescente:

```
/accounts?filter[order][0]=id%20asc&filter[order][1]=name%20desc
```

### Where

Retorna os dados respeitando as condies solicitadas.

Exemplos:

Onde for IGUAL:

```
/accounts?filter[where][id]=100
```

Onde for MAIOR QUE:

```
/accounts?filter[where][id][gt]=100
```

Onde for MENOR QUE:

```
/accounts?filter[where][id][lt]=100
```

### Fields

Retorna os dados respeitando a configurao de visualizao de cada campo.

obs.: A coluna por padro ser retornada na consulta.

Exemplos:

Onde for VERDADEIRO:

```
/accounts?filter[fields][id]=true
```

Onde for FALSO:

```
/accounts?filter[fields][id]=false
```

## Pre requirements

* Visual Studio 2017

## Installing

``` bash
$ git clone https://github.com/jroliveira/http-query-filter.git
$ dotnet restore
```

### Running tests

``` bash
$ dotnet test -c Release test/unit/Http.Query.Filter.Test/Http.Query.Filter.Test.csproj
```

## Building

``` bash
$ dotnet build
```

## How to use it

``` PowerShell
PM> Install-Package Http.Query.Filter
```

## Contributions

1. Fork it
2. git checkout -b <branch-name>
3. git add -A && git commit -m "feature description"
4. git push origin <branch-name>
5. Create a pull request

[strongloop]: https://strongloop.com/
[ibm]: http://www.ibm.com/
[logo]: https://raw.githubusercontent.com/jroliveira/http-query-filter/master/logo.png "Http Query Filter - Logo"
{'fraction_non_alphanumeric': 0.16519947555722045, 'fraction_numerical': 0.0116126615471062, 'mean_word_length': 4.9201773835920175, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 8, 'https://': 22, 'lorem ipsum': 0, 'www.': 6, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7498483', 'n_tokens_mistral': 2098, 'n_tokens_neox': 1977, 'n_words': 420}