# Δημιουργία δελτίων από άλλα συστήματα με το API του Todomator

> Ταυτοποιηθείτε με το token του Todomator και δημιουργήστε ένα δελτίο με μία κλήση JSON, από ένα σενάριο, ένα email ή μια φόρμα ιστότοπου, με φακέλους, άτομα, ετικέτες, συνημμένα και callback.

Framework: todomator
Product: Todomator (todomator@1.7)
Language: el
Content-SHA256: 3c628c1dd9216b621242e521e66adb6217c52a288ac6421420c2102333d0370a
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

Το Todomator εκθέτει τις ενέργειές του μέσω ενός endpoint API: `POST /api/` με σώμα JSON `{ "schema": "<name>", "data": { ... } }` (οι διαδρομές API του Total.js· δείτε τη συνταγή [διαδρομές API](/en/total5/api-routes/)). Η διεύθυνση `/api/` προέρχεται από τη γραμμή `$api` του αρχείου `config`.

## Ταυτοποίηση με το token

Εκτός από τη συνεδρία ενός συνδεδεμένου ατόμου, το API δέχεται ένα **token**: στείλτε το στην κεφαλίδα `x-token` ή στην παράμετρο ερωτήματος `token`. Αν ισούται με τη ρύθμιση `token` (δείτε [ρυθμίσεις](/en/todomator/settings-and-database/)), το αίτημα εκτελείται ως ένας ενσωματωμένος χρήστης με όνομα *Bot*, διαχειριστής με το δικαίωμα `bot`· οποιοδήποτε άλλο token απορρίπτεται. Χρησιμοποιήστε ένα μακρύ τυχαίο token, κρατήστε το στον διακομιστή σας και στείλτε το μόνο μέσω HTTPS.

## Δημιουργία ενός δελτίου

Η κλήση λέγεται `tickets_create`. Μόνο το `name` είναι υποχρεωτικό· τα υπόλοιπα είναι προαιρετικά:

| Πεδίο | Σημειώσεις |
|---|---|
| `name` | ο τίτλος |
| `folder` ή `folderid` | ο φάκελος, με **όνομα** (το Todomator τον αναζητά) ή με id· το δελτίο παίρνει τη σημαία χρεώσιμου του φακέλου |
| `users` | τα άτομα που θα αναλάβουν, με **όνομα ή email**· ένα άγνωστο άτομο είναι σφάλμα (`User "..." not found`) |
| `watcherid` | τα άτομα που το παρακολουθούν, με **id** (αντίθετα με το `users`, το σχήμα αυτής της έκδοσης δεν τα δέχεται με όνομα) |
| `statusid` | `pending` (προεπιλογή), `open`, `review`, `postponed`, `note` ή `closed` |
| `markdown`, `html` | το περιεχόμενο |
| `tags`, `ispriority`, `isbillable`, `ispublic` | ετικέτες και σημαίες |
| `date`, `deadline`, `worked` | η ημέρα, μια προθεσμία και τα λεπτά που έχουν ήδη δουλευτεί |
| `attachments` | μια λίστα `{ name, data }` όπου το `data` είναι το αρχείο σε Base64 |
| `reference`, `source`, `attrs` | ελεύθερα πεδία για να συνδέσετε το δελτίο με το σύστημά σας |
| `callback` | μια διεύθυνση που λαμβάνει το δελτίο |

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

Η απάντηση είναι το id του νέου δελτίου. Τα άτομα που έχουν αναλάβει ειδοποιούνται και ανανεώνονται οι ανοιχτές συνεδρίες των ατόμων που μπορούν να το δουν.

## Το callback

Όταν έχει οριστεί το `callback`, το Todomator στέλνει ένα `POST` σε αυτή τη διεύθυνση με τα δεδομένα του δελτίου όταν το δελτίο δημιουργείται, ενημερώνεται ή κλωνοποιείται, και όταν προστίθεται ένα σχόλιο (κατά τη δημιουργία και την ενημέρωση στέλνει επίσης τη λίστα των πεδίων που δόθηκαν, `keys`). Το σύστημά σας μπορεί να το χρησιμοποιήσει για να αντικατοπτρίζει την κατάσταση ενός δελτίου.

## Άλλες κλήσεις

Το ίδιο endpoint εξυπηρετεί τις υπόλοιπες ενέργειες, με τα ονόματα του `controllers/api.js`: `tickets` (λίστα), `tickets_detail/{id}`, `tickets_update/{id}`, `tickets_clone/{id}`, `tickets_remove/{id}`, `logwork_create`, `folders`, `tags` και άλλα. Η επίσημη τεκμηρίωση του API βρίσκεται στο [docs.totaljs.com/todomator](https://docs.totaljs.com/todomator/).
