# Vytváření tiketů z jiných systémů přes API Todomatoru

> Ověřte se tokenem Todomatoru a vytvořte tiket jedním voláním JSON ze skriptu, e-mailu nebo webového formuláře, se složkami, lidmi, štítky, přílohami a callbackem.

Framework: todomator
Product: Todomator (todomator@1.7)
Language: cs
Content-SHA256: ad5a94e466274ad996de1cf48116f01c6836294c4c399ae1019861da378bbcf5
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

Todomator zpřístupňuje své akce přes jediný endpoint API: `POST /api/` s tělem JSON `{ "schema": "<name>", "data": { ... } }` (trasy API Total.js; viz recept [trasy API](/en/total5/api-routes/)). Adresa `/api/` pochází z řádku `$api` v souboru `config`.

## Ověření tokenem

Kromě relace přihlášené osoby API přijímá **token**: pošlete jej v hlavičce `x-token` nebo v parametru dotazu `token`. Pokud se rovná nastavení `token` (viz [nastavení](/en/todomator/settings-and-database/)), požadavek běží jako vestavěný uživatel *Bot*, správce s oprávněním `bot`; jakýkoli jiný token se odmítne. Používejte dlouhý náhodný token, uchovávejte jej na svém serveru a posílejte jej jen přes HTTPS.

## Vytvoření tiketu

Volání se jmenuje `tickets_create`. Povinné je jen `name`, zbytek je volitelný:

| Pole | Poznámky |
|---|---|
| `name` | název |
| `folder` nebo `folderid` | složka, podle **názvu** (Todomator ji vyhledá) nebo podle id; tiket přebírá příznak fakturovatelnosti složky |
| `users` | lidé k přiřazení, podle **jména nebo e-mailu**; neznámá osoba je chyba (`User "..." not found`) |
| `watcherid` | lidé, kteří jej sledují, podle **id** (na rozdíl od `users` je schéma této verze podle jména nepřijímá) |
| `statusid` | `pending` (výchozí), `open`, `review`, `postponed`, `note` nebo `closed` |
| `markdown`, `html` | obsah |
| `tags`, `ispriority`, `isbillable`, `ispublic` | štítky a příznaky |
| `date`, `deadline`, `worked` | den, termín a již odpracované minuty |
| `attachments` | seznam `{ name, data }`, kde `data` je soubor v Base64 |
| `reference`, `source`, `attrs` | volná pole pro propojení tiketu s vaším systémem |
| `callback` | adresa, která 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"
	}
}
```

Odpovědí je id nového tiketu. Přiřazení lidé dostanou oznámení a otevřené relace lidí, kteří jej smějí vidět, se obnoví.

## Callback

Když je `callback` nastaven, Todomator pošle na tuto adresu `POST` s údaji tiketu, když se tiket vytvoří, aktualizuje nebo klonuje, a když se přidá komentář (při vytvoření a aktualizaci posílá i seznam zadaných polí, `keys`). Váš systém jej může použít k zrcadlení stavu tiketu.

## Další volání

Stejný endpoint obsluhuje ostatní akce s názvy z `controllers/api.js`: `tickets` (seznam), `tickets_detail/{id}`, `tickets_update/{id}`, `tickets_clone/{id}`, `tickets_remove/{id}`, `logwork_create`, `folders`, `tags` a další. Oficiální dokumentace API je na [docs.totaljs.com/todomator](https://docs.totaljs.com/todomator/).
