owned this note
owned this note
Published
Linked with GitHub
# Doplněk pro Money S5
Doplněk pro Money S5 je určen k importu vyčtených dokladů z Document Manageru a možnosti jednoduchého otevření dokumentu přímo z Money S5.
## API
Na adrese [api.cloudaper.dev/document-manager](http://api.cloudaper.dev/document-manager) je k dispozici specifikace API, které bude pro komunikaci využito. API nyní poskytuje pouze základní funkčnost, která by však pro zhotovení doplňku měla dostačovat. Do budoucna bude rozšířeno.
API poskytuje možnosti, jak sdružovat související atributy do jedné odpovědi. Avšak pokud je to možné, je preferováno asynchronní volání více endpointů zároveň, viz níže.
## Navrhované flow
1. Doplněk si načte seznam dokumentů k importu včetně základních údajů:
`GET /documents?expand[]=binder&expand[binder]=shelf&expand[binder.shelf]=cabinet&expand[]=information&filter[information]=tags:ciselna-rada`
_Je možné, že do budoucna se způsob dotazu změní, struktura odpovědi však zůstane stejná._
2. Tyto údaje zobrazí v tabulce uživateli, který si může zaškrtnout dokumenty, které chce importovat.
3. Doplněk si asynchronně stáhne všechny údaje ke každému dokumentu odpovídající [invoice schématu](https://schemas.cloudaper.dev/#tag/document-types-invoice):
`GET /documents/{id}/schemas/invoice`
4. Doplněk naimportuje dokumenty:
- Import dokumentu se povede – doplněk zavolá callback:
`POST /events`
a přidá údaje:
```json
"data": {
"success": true,
"timestamp": "2019-12-31T23:20:20.200Z",
"message": "Document imported into ERP",
"code": "imported-into-erp",
"references": [
{
"type": "document",
"id": "UUID úspěšně importovaného dokumentu"
}
],
"payload": {
// Zde je možné vložit jakákoliv další data objekt
// s doplňujícími daty, např. verzi doplňku,
// který uživatel import provedl, apod.
}
}
```
- Import dokumentu se nepovede – doplněk zavolá callback:
`POST /events`
a přidá údaje:
```json
"data": {
"success": false,
"timestamp": "2019-12-31T23:20:20.200Z",
"message": "Document not imported into ERP",
"code": "not-imported-into-erp",
"references": [
{
"type": "document",
"id": "UUID neimportovaného dokumentu"
}
],
"issues": [
{
"type": "information",
"id": "1f65a5893ad6a84601b9b3ffe0234d0bfde24ba2",
"attribute": "value",
"value": {
"data": {
"amount": 1200,
"currency": "EUR"
}
},
"message": "Currency `eur` should be uppercase."
}
],
"payload": {
// Zde je možné vložit jakákoliv další data objekt
// s doplňujícími daty, např. verzi doplňku,
// který uživatel import provedl, apod.
}
}
```
## Další funkcionalita
Doplněk by dále měl:
- umožňovat nastavení API endpointu a autentizačního tokenu pro každého uživatele,
- umožňovat otevření dokumentu k právě označené položce skrz endpoint `/documents/{id}/actions/open-in-session`, a to tak, aby byl zpětně kompatibilní se stávajícím párovacím doplňkem