---
# System prepended metadata

title: Products API - pagination rework

---

# Products API - pagination rework

Domyślny interface produktu

```
Product{
    id: int; // default
    name: string; // default
    ean: string; // default
    mesh_name: string; // default
    dimension: string; // default
    sub_folder: string; // default
    valid_ean: string; // default
    subbrand: string; // default
    submacros: (w aplikacji brand) // default
    category: string;
    segment: string;
    pack_name: string;
    default_price: number;
    description: string;
    group: string;
    producer: string;
    status: string;
    default_rotation: float;
    default_price_promotion: float;
    is_active: int;
    thumbnail_id: int|null;
    AvgPricePerItemAvg: float|null;
    UnweightedRateOfSalesItemAvg: int|null;
    channel: string;
    id_repo: int|null,
    thumbnail int|null;
}
```

## 1. Filtry

Paginacja będzie działać jak jest to opisane poniżej.

Pobieranie produktów

**Żądanie**

Endpoint: ```POST /products/all```

Powyższy endpoint przyjmuje w ciele żądania JSON, w który można wstawić pole `filters`. 

Pole `filters` musi wyglądać jak następuje: 

```
{
  "filters": {
    "lop": "or",
    "0": {
      "name": "id",
      "value": 3
    }
  }
}
```

`lop` - logical operator, domyślnie jeśli wartość nie jest równa `or` to jest równa `and`, aby podać więcej niż jeden obiekt należy wprowadzić `or`.
`0` - de facto jest to n-ty z rzędu obiekt reprezentujący to, czego szukamy.
`name` - nazwa pola jak w intrerface `Product`
`value` - wartość: tekst, liczba całkowita, zmiennoprzecinkowa
