# Crearea de tichete din alte sisteme cu API-ul Todomator

> Autentifică-te cu token-ul Todomator și creează un tichet cu un apel JSON, dintr-un script, un e-mail sau un formular web, cu foldere, persoane, etichete, atașamente și un callback.

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

Todomator își expune acțiunile printr-un singur endpoint API: `POST /api/` cu un corp JSON `{ "schema": "<name>", "data": { ... } }` (rutele API Total.js; vezi rețeta [rutele API](/en/total5/api-routes/)). Adresa `/api/` vine din linia `$api` a fișierului `config`.

## Autentificarea cu token-ul

Pe lângă sesiunea unei persoane autentificate, API-ul acceptă un **token**: trimite-l în antetul `x-token` sau în parametrul de interogare `token`. Dacă este egal cu setarea `token` (vezi [setări](/en/todomator/settings-and-database/)), cererea rulează ca un utilizator încorporat numit *Bot*, un administrator cu permisiunea `bot`; orice alt token este refuzat. Folosește un token lung și aleatoriu, păstrează-l pe serverul tău și trimite-l doar prin HTTPS.

## Crearea unui tichet

Apelul se numește `tickets_create`. Doar `name` este obligatoriu; restul este opțional:

| Câmp | Note |
|---|---|
| `name` | titlul |
| `folder` sau `folderid` | folderul, după **nume** (Todomator îl caută) sau după id; tichetul preia indicatorul de facturabil al folderului |
| `users` | persoanele de atribuit, după **nume sau e-mail**; o persoană necunoscută este o eroare (`User "..." not found`) |
| `watcherid` | persoanele care îl urmăresc, după **id** (spre deosebire de `users`, schema acestei versiuni nu le acceptă după nume) |
| `statusid` | `pending` (implicit), `open`, `review`, `postponed`, `note` sau `closed` |
| `markdown`, `html` | conținutul |
| `tags`, `ispriority`, `isbillable`, `ispublic` | etichete și indicatori |
| `date`, `deadline`, `worked` | ziua, un termen limită și minutele deja lucrate |
| `attachments` | o listă de `{ name, data }` unde `data` este fișierul în Base64 |
| `reference`, `source`, `attrs` | câmpuri libere pentru a lega tichetul de sistemul tău |
| `callback` | o adresă care primește tichetul |

```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"
	}
}
```

Răspunsul este id-ul noului tichet. Persoanele atribuite sunt notificate, iar sesiunile deschise ale persoanelor care îl pot vedea sunt reîmprospătate.

## Callback-ul

Când `callback` este setat, Todomator trimite un `POST` la acea adresă cu datele tichetului când tichetul este creat, actualizat sau clonat și când se adaugă un comentariu (la creare și actualizare trimite și lista câmpurilor furnizate, `keys`). Sistemul tău îl poate folosi pentru a oglindi starea unui tichet.

## Alte apeluri

Același endpoint deservește restul acțiunilor, cu numele din `controllers/api.js`: `tickets` (listă), `tickets_detail/{id}`, `tickets_update/{id}`, `tickets_clone/{id}`, `tickets_remove/{id}`, `logwork_create`, `folders`, `tags` și altele. Documentația oficială a API-ului se află la [docs.totaljs.com/todomator](https://docs.totaljs.com/todomator/).
