# Vytváranie tiketov z iných systémov cez API Todomatoru

> Overte sa tokenom Todomatoru a vytvorte tiket jedným volaním JSON zo skriptu, e-mailu alebo webového formulára, s priečinkami, ľuďmi, štítkami, prílohami a callbackom.

Framework: todomator
Product: Todomator (todomator@1.7)
Language: sk
Content-SHA256: 2ab23728b5584e7eced6806880368bab9ca76a01788038d88a0b969113479047
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

Todomator sprístupňuje svoje akcie cez jeden endpoint API: `POST /api/` s telom JSON `{ "schema": "<name>", "data": { ... } }` (trasy API Total.js; pozri recept [trasy API](/en/total5/api-routes/)). Adresa `/api/` pochádza z riadka `$api` v súbore `config`.

## Overenie tokenom

Okrem relácie prihlásenej osoby API prijíma **token**: pošlite ho v hlavičke `x-token` alebo v parametri dotazu `token`. Ak sa rovná nastaveniu `token` (pozri [nastavenia](/en/todomator/settings-and-database/)), požiadavka beží ako vstavaný používateľ *Bot*, správca s oprávnením `bot`; akýkoľvek iný token sa odmietne. Používajte dlhý náhodný token, uchovávajte ho na svojom serveri a posielajte ho iba cez HTTPS.

## Vytvorenie tiketu

Volanie sa volá `tickets_create`. Povinné je iba `name`, ostatné je voliteľné:

| Pole | Poznámky |
|---|---|
| `name` | názov |
| `folder` alebo `folderid` | priečinok, podľa **názvu** (Todomator ho vyhľadá) alebo podľa id; tiket preberie príznak fakturovateľnosti priečinka |
| `users` | ľudia na priradenie, podľa **mena alebo e-mailu**; neznáma osoba je chyba (`User "..." not found`) |
| `watcherid` | ľudia, ktorí ho sledujú, podľa **id** (na rozdiel od `users` ich schéma tejto verzie podľa mena neprijíma) |
| `statusid` | `pending` (predvolené), `open`, `review`, `postponed`, `note` alebo `closed` |
| `markdown`, `html` | obsah |
| `tags`, `ispriority`, `isbillable`, `ispublic` | štítky a príznaky |
| `date`, `deadline`, `worked` | deň, termín a už odpracované minúty |
| `attachments` | zoznam `{ name, data }`, kde `data` je súbor v Base64 |
| `reference`, `source`, `attrs` | voľné polia na prepojenie tiketu s vaším systémom |
| `callback` | adresa, ktorá dostane tiket |

```json
{
	"schema": "tickets_create",
	"data": {
		"name": "The invoice page fails with a 500",
		"folder": "Customer support",
		"users": ["jane@example.com"],
		"markdown": "Reported by the contact form.\n\nSteps: open the invoice and click *Print*.",
		"tags": ["bug"],
		"source": "website",
		"reference": "form-2041"
	}
}
```

Odpoveďou je id nového tiketu. Priradení ľudia dostanú oznámenie a otvorené relácie ľudí, ktorí ho smú vidieť, sa obnovia.

## Callback

Keď je `callback` nastavený, Todomator pošle na túto adresu `POST` s údajmi tiketu, keď sa tiket vytvorí, aktualizuje alebo klonuje, a keď sa pridá komentár (pri vytvorení a aktualizácii posiela aj zoznam zadaných polí, `keys`). Váš systém ho môže použiť na zrkadlenie stavu tiketu.

## Ďalšie volania

Rovnaký endpoint obsluhuje ostatné akcie s názvami z `controllers/api.js`: `tickets` (zoznam), `tickets_detail/{id}`, `tickets_update/{id}`, `tickets_clone/{id}`, `tickets_remove/{id}`, `logwork_create`, `folders`, `tags` a ďalšie. Oficiálna dokumentácia API je na [docs.totaljs.com/todomator](https://docs.totaljs.com/todomator/).
