# Einsatz erstellen

### URL

`POST` `https://api.smartpager.at/v1/operation/new`

### Parameter

Parameter müssen als JSON übermittelt werden.

| Parameter                 | Datentyp   | Pflichtfeld                                    | Beschreibung                                                                                                                                                    |
|---------------------------|------------|------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `keyword`                 | `string`   | Ja                                             | Stichwort                                                                                                                                                       |
| `text`                    | `string`   | Nein                                           | Beschreibung                                                                                                                                                    |
| `alarm.selection_method`  | `string`   | Ja                                             | <p>Mitgliederauswahl<br><code>all</code> Sammelruf<br><code>manual_email</code> Manuell<br><code>group</code> Gruppe<br><code>none</code> Keine Alarmierung</p> |
| `alarm.users`             | `string[]` | Wenn `alarm.selection_method` = `manual_email` | E-Mail-Adressen                                                                                                                                                 |
| `alarm.group_id`          | `string`   | Wenn `alarm.selection_method` = `group`        | Gruppen-ID                                                                                                                                                      |
| `alarm.require_users`     | `boolean`  | Nein (Standard: `false`)                       | Wenn `true` und keine Empfänger alarmiert werden würden, wird der Fehler `400` `no-users` zurückgegeben                                                         |
| `address.name`            | `string`   | Nein                                           | Firma, Name                                                                                                                                                     |
| `address.street`          | `string`   | Nein                                           | Straße                                                                                                                                                          |
| `address.street_number`   | `string`   | Nein                                           | Hausnummer                                                                                                                                                      |
| `address.floor`           | `string`   | Nein                                           | Stockwerk                                                                                                                                                       |
| `address.door`            | `string`   | Nein                                           | Türnummer                                                                                                                                                       |
| `address.postcode`        | `string`   | Nein                                           | Postleitzahl                                                                                                                                                    |
| `address.city`            | `string`   | Nein                                           | Ort                                                                                                                                                             |
| `address.country`         | `string`   | Nein                                           | Land                                                                                                                                                            |
| `address.unformatted`     | `string`   | Nein                                           | Unformatierte Adresse                                                                                                                                           |
| `address.coordinates.lat` | `float`    | Nein                                           | Latitude                                                                                                                                                        |
| `address.coordinates.lng` | `float`    | Nein                                           | Longitude                                                                                                                                                       |
| `contact.name`            | `string`   | Nein                                           | Name, Anrufer                                                                                                                                                   |
| `contact.phone`           | `string`   | Nein                                           | Telefonnummer                                                                                                                                                   |
| `contact.notes`           | `string`   | Nein                                           | Kontaktnotizen                                                                                                                                                  |
| `is_test`                 | `boolean`  | Nein (Standard: `false`)                       | Für Testzwecke; Es wird dabei kein Einsatz erstellt                                                                                                             |

### Response

#### Ok

HTTP-Status: 200

| Wert      | Datentyp | Beschreibung |
|-----------|----------|--------------|
| `status`  | `int`    | HTTP Status  |
| `data.id` | `string` | Einsatz-ID   |

```json
{
  "status": 200,
  "data": {
    "id": "abcdefghi"
  }
}
```

#### Fehler

| HTTP-Status | Fehler                | Beschreibung                                                                         |
|-------------|-----------------------|--------------------------------------------------------------------------------------|
| `400`       | `not-licensed`        | Schnittstelle nicht in Plan enthalten                                                |
| `400`       | `no-users`            | Der Einsatz würde ohne Empfänger erstellt werden (wenn `alarm.require_users`=`true`) |
| `401`       | `unauthorized`        | Authorization-Header Daten ungültig                                                  |
| `406`       | `malformed-parameter` | Ungültiges Parameterformat                                                           |
| `500`       | `internal`            | Interner Fehler                                                                      |

### Beispiel Parameter <a href="#beispiel-parameter" id="beispiel-parameter"></a>

```json
{
  "keyword": "BRAND KFZ",
  "text": "Lieferwagen brennt, Polizei verständigt",
  "alarm": {
    "selection_method": "all"
  },
  "address": {
    "name": "Fa. Musterbetrieb",
    "street": "Musterstraße",
    "street_number": "1",
    "floor": "2",
    "door": "3",
    "postcode": "4000",
    "city": "Musterstadt",
    "country": "Österreich",
    "unformatted": "Musterstraße 1/2/3, 4000 Musterstadt",
    "coordinates": {
      "lat": 48.305489,
      "lng": 14.286822
    }
  },
  "contact": {
    "name": "Max Mustermann",
    "phone": "+43 123123123123",
    "notes": "Nachbar"
  }
}
```

### Beispiel cURL

```bash
curl --location --request POST 'https://api.smartpager.at/v1/operation/new' \
--header 'Authorization: Bearer <TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{
  "keyword": "BRAND KFZ",
  "text": "Lieferwagen brennt, Polizei verständigt",
  "alarm": {
    "selection_method": "all"
  },
  "address": {
    "name": "Fa. Musterbetrieb",
    "street": "Musterstraße",
    "street_number": "1",
    "floor": "2",
    "door": "3",
    "postcode": "4000",
    "city": "Musterstadt",
    "country": "Österreich",
    "unformatted": "Musterstraße 1/2/3, 4000 Musterstadt",
    "coordinates": {
      "lat": 48.305489,
      "lng": 14.286822
    }
  },
  "contact": {
    "name": "Max Mustermann",
    "phone": "+43 123123123123",
    "notes": "Nachbar"
  }
}'
```
