> For the complete documentation index, see [llms.txt](https://docs.eximee.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.eximee.com/budowanie-aplikacji/logika-biznesowa/scriptcode/case-repository-api.md).

# Case Repository - użycie w low-code

## Integracja low-code z Case Repository

{% hint style="warning" %}
Funkcjonalność dostępna od wersji platformy: 4.760.0
{% endhint %}

{% hint style="info" %}
Funkcjonalność dodawania nowych wpisów do Case Repository jest dostępna dla skryptów (scriptService) oraz zadań skryptowych (scriptTask).
{% endhint %}

## API Low-Code dla Case Repository

`Eximee Case Repository` pełni rolę centralnego repozytorium spraw klienta, agregując informacje z wielu kanałów i systemów w jednolitym modelu danych.\
W kontekście platformy low-code API umożliwia standaryzowaną integrację procesów, formularzy i usług z repozytorium spraw, tak aby dane o statusach i zdarzeniach były spójne, aktualne i dostępne między aplikacjami.

Integracja opiera się na modelu event-driven, dzięki czemu publikacja i aktualizacja danych może odbywać się w czasie rzeczywistym, niezależnie od miejsca inicjacji procesu.\
Pozwala to budować jednolity widok spraw klienta (omnichannel), wspierać automatyzację oraz zapewnić ciągłość obsługi w kanałach klienckich i wewnętrznych.

Niniejsza sekcja opisuje sposób wykorzystania API low-code do komunikacji z `Case Repository`, w tym zasady publikacji danych, wymagania dotyczące modelu obiektu `Case`.

Szczegółowy opis roli, architektury i modelu danych `Eximee Case Repository` znajduje się w dokumencie opisującym założenia [Case Repository](/wprowadzenie/architektura-platformy/rozszerzenia-platformy/eximee-case-repository.md).

### Utworzenie nowego statusu sprawy

Metoda `create` tworzy nowy wpis statusu sprawy w `Case Repository`.

Wymagane pola:

* `caseType` - typ sprawy,
* `client` - identyfikator klienta,
* `clientType` - typ identyfikatora klienta,
* `status` - aktualny status sprawy.

Pole `statusDescription` jest opcjonalne i służy do rozszerzenia opisu statusu.

Pole `source` domyślnie uzupełniane jest wartością "eximee" dla wszystkich wpisów tworzonych z poziomu platformy low-code. Pole `caseType` domyślnie uzupełniane jest nazwą aplikacji dla wszystkich wpisów tworzonych z poziomu platformy low-code.

```javascript
api.caseRepository.v1.create({
    caseType: "caseType",
    client: "client",
    clientType: "clientType",
    businessKey: "businessKey",
    source: "source",
    status: "status",
    statusDescription: "statusDescription"
});
```

Przykład:

```javascript
api.caseRepository.v1.create({
    caseType: "MORTGAGE_APPLICATION",
    client: "12345678901",
    clientType: "PERSON",
    businessKey: "MORTGAGE_APPLICATION-12345678901",
    source: "eximee",
    status: "APPLICATION_SUBMITTED",
    statusDescription: "Wniosek został poprawnie zarejestrowany"
});
```

### Modyfikacja istniejącego statusu sprawy

Metoda `update` aktualizuje status istniejącej sprawy. W żądaniu należy przekazać tylko te pola, które mają zostać zmienione. Operacja modyfikuje wszystkie statusy przypisane do danej sprawy.

```javascript
api.caseRepository.v1.update({
    caseType: "caseType",
    client: "client",
    clientType: "clientType",
    source: "source",
    businessKey: "businessKey",
    status: "status",
    statusDescription: "statusDescription"
});
```

Przykład wywołania aktualizacji statusu i opisu:

```javascript
api.caseRepository.v1.update({
    status: "UNDER_VERIFICATION",
    statusDescription: "Weryfikacja dokumentów dochodowych w toku"
});
```

### Usunięcie statusu sprawy

Metoda `delete` usuwa wszystkie statusy przypisane do danej sprawy. Operacja jest nieodwracalna.

```javascript
api.caseRepository.v1.delete();
```

### Pobranie aktualnego statusu sprawy

Metoda `get` pobiera aktualny status sprawy.

```javascript
api.caseRepository.v1.get();
```

Przykładowa odpowiedź:

```json
{
  "caseId": "f6d7b6ba-5f7f-4f7a-b4d8-0f5be3fd8f16",
  "creationDate": "2026-05-06T10:15:22",
  "updateDate": "2026-05-07T08:42:03",
  "caseType": "MORTGAGE_APPLICATION",
  "clientId": "12345678901",
  "clientType": "PESEL",
  "status": "APPLICATION_SUBMITTED",
  "source": "eximee",
  "businessKey": "MORTGAGE_APPLICATION-12345678901",
  "statusDescription": "Wniosek został poprawnie zarejestrowany"
}
```

### Wyszukiwanie statusu sprawy

Metoda `search` umożliwia wyszukiwanie statusów spraw na podstawie przekazanych filtrów. Filtry można łączyć dowolnie, a wyniki są stronicowane. Między różnymi polami filtra stosowany jest iloczyn logiczny (`AND`), co oznacza, że zwracane są wyłącznie rekordy spełniające wszystkie podane warunki.

```javascript
api.caseRepository.v1.search({
    caseTypes: ["caseType"],
    statuses: ["status"],
    clientId: "clientId",
    clientType: "clientType",
    createdDate: {
        from: "YYYY-MM-DDTHH:mm:ss",
        to: "YYYY-MM-DDTHH:mm:ss"
    },
    updatedDate: {
        from: "YYYY-MM-DDTHH:mm:ss",
        to: "YYYY-MM-DDTHH:mm:ss"
    },
    page: 0,
    pageSize: 10
});
```

Przykładowe użycie:

```javascript
api.caseRepository.v1.search({
    caseTypes: ["MORTGAGE_APPLICATION"],
    statuses: ["APPLICATION_SUBMITTED", "UNDER_VERIFICATION"],
    clientId: "12345678901",
    clientType: "PESEL",
    createdDate: {
        from: "2026-05-01T00:00:00",
        to: "2026-05-12T23:59:59"
    },
    page: 0,
    pageSize: 20
});
```

Przykładowa odpowiedź:

```json
{
  "page": 0,
  "pageSize": 20,
  "count": 2,
  "statuses": [
    {
      "caseId": "f6d7b6ba-5f7f-4f7a-b4d8-0f5be3fd8f16",
      "creationDate": "2026-05-06T10:15:22",
      "updateDate": "2026-05-07T08:42:03",
      "caseType": "MORTGAGE_APPLICATION",
      "clientId": "12345678901",
      "clientType": "PESEL",
      "status": "APPLICATION_SUBMITTED",
      "source": "eximee",
      "businessKey": "MORTGAGE_APPLICATION-12345678901",
      "statusDescription": "Wniosek został poprawnie zarejestrowany"
    },
    {
      "caseId": "f6d7b6ba-5f7f-4f7a-b4d8-0f5be3fd8f16",
      "creationDate": "2026-05-06T10:15:22",
      "updateDate": "2026-05-08T12:09:41",
      "caseType": "MORTGAGE_APPLICATION",
      "clientId": "12345678901",
      "clientType": "PESEL",
      "source": "eximee",
      "businessKey": "MORTGAGE_APPLICATION-12345678901",
      "status": "UNDER_VERIFICATION",
      "statusDescription": "Weryfikacja dokumentów dochodowych w toku"
    }
  ]
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.eximee.com/budowanie-aplikacji/logika-biznesowa/scriptcode/case-repository-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
