This commit is contained in:
188
README.md
Normal file
188
README.md
Normal file
@ -0,0 +1,188 @@
|
||||
## API
|
||||
|
||||
> Wenn die env variable `API_SECRET` gesetzt ist, muss jede API Request den HTTP Header `Authorization: Basic <API_SECRET>` haben.
|
||||
|
||||
<details>
|
||||
<summary><code>POST</code> <code>/api/feedback</code> (Erstellt Feedbackformulare)</summary>
|
||||
|
||||
##### Request Body
|
||||
|
||||
```
|
||||
{
|
||||
// Interner Event Name (oder ID)
|
||||
"event": string,
|
||||
// Event Titel, wird über dem Feedbackformular angezeigt
|
||||
"title": string,
|
||||
// UUIDs aller Spieler, die das Feedback ausfüllen sollen
|
||||
"users": string[]
|
||||
}
|
||||
```
|
||||
|
||||
##### Response Codes
|
||||
|
||||
| http code | beschreibung |
|
||||
| --------- | ------------------------------------------ |
|
||||
| 200 | / |
|
||||
| 400 | Der Request Body ist falsch |
|
||||
| 401 | Es wurde ein falsches API Secret angegeben |
|
||||
|
||||
##### Response Body
|
||||
|
||||
```
|
||||
{
|
||||
"feedback": {
|
||||
// UUID eines Spieler
|
||||
"uuid": string
|
||||
// URL zum Feedbackformular
|
||||
"url": string
|
||||
}[]
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><code>POST</code> <code>/api/player/death</code> (Registriert einen Spielertod)</summary>
|
||||
|
||||
##### Request Body
|
||||
|
||||
```
|
||||
{
|
||||
// UUID des getöteten Spielers
|
||||
"user": string,
|
||||
// UUID des Spielers, der den Kill gemacht hat
|
||||
"killer": string | null,
|
||||
// Todesnachricht
|
||||
"message": string
|
||||
}
|
||||
```
|
||||
|
||||
##### Response Codes
|
||||
|
||||
| http code | beschreibung |
|
||||
| --------- | -------------------------------------------------------------------------------- |
|
||||
| 200 | / |
|
||||
| 400 | Der Request Body ist falsch |
|
||||
| 401 | Es wurde ein falsches API Secret angegeben |
|
||||
| 404 | Der getötete Spieler, oder der Spieler der den Kill gemacht hat, existiert nicht |
|
||||
|
||||
##### Response Body
|
||||
|
||||
`/`
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><code>POST</code> <code>/api/player/status</code> (Status eines Spielers)</summary>
|
||||
|
||||
##### Request Body
|
||||
|
||||
```
|
||||
{
|
||||
// UUID eines Spielers
|
||||
"user": string
|
||||
}
|
||||
```
|
||||
|
||||
##### Response Codes
|
||||
|
||||
| http code | beschreibung |
|
||||
| --------- | --------------------------------------------------- |
|
||||
| 200 | / |
|
||||
| 400 | Der Request Body ist falsch |
|
||||
| 401 | Es wurde ein falsches API Secret angegeben |
|
||||
| 404 | Der Spieler existiert nicht oder ist in keinem Team |
|
||||
|
||||
##### Response Body
|
||||
|
||||
```
|
||||
{
|
||||
"team": {
|
||||
// Teamname
|
||||
"name": string,
|
||||
// Teamfarbe in HEX
|
||||
"color": string
|
||||
},
|
||||
// Ob der Spieler Tot ist
|
||||
"dead": boolean,
|
||||
// Gewichtung aller Strikes
|
||||
"strikeWeight": number,
|
||||
// UTC timestamp wann das Team zuletzt gejoined ist
|
||||
"lastJoined": number | null
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><code>PUT</code> <code>/api/player/status</code> (Updatet den Status eines Spielers)</summary>
|
||||
|
||||
##### Request Body
|
||||
|
||||
```
|
||||
{
|
||||
// UUID eines Spieler
|
||||
"user": string,
|
||||
// Registriert einen neuen UTC timestamp an dem das Team zuletzt gejoined ist
|
||||
"lastJoined": number
|
||||
}
|
||||
```
|
||||
|
||||
##### Response Codes
|
||||
|
||||
| http code | beschreibung |
|
||||
| --------- | ------------------------------------------ |
|
||||
| 200 | / |
|
||||
| 400 | Der Request Body ist falsch |
|
||||
| 401 | Es wurde ein falsches API Secret angegeben |
|
||||
|
||||
##### Response Body
|
||||
|
||||
`/`
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary><code>POST</code> <code>/api/teams</code> (Liste aller Teams)</summary>
|
||||
|
||||
##### Request Body
|
||||
|
||||
`/`
|
||||
|
||||
##### Response Codes
|
||||
|
||||
| http code | beschreibung |
|
||||
| --------- | ------------------------------------------ |
|
||||
| 200 | / |
|
||||
| 400 | Der Request Body ist falsch |
|
||||
| 401 | Es wurde ein falsches API Secret angegeben |
|
||||
|
||||
##### Response Body
|
||||
|
||||
```
|
||||
{
|
||||
// Teamname
|
||||
"name": string,
|
||||
// Teamfarbe in HEX
|
||||
"color": string,
|
||||
// UUIDs aller Teammitglieder
|
||||
"users": (string | null)[]
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Webhook
|
||||
|
||||
> Die env variable `WEBHOOK_ENDPOINT` muss gesetzt und eine valide HTTP URL sein.
|
||||
|
||||
Bei bestimmten Aktionen wird an den Webhook Endpoint ein Webhook gesendet.
|
||||
Die Art des Webhooks wird dabei durch den `x-webhook-action` HTTP Header angegeben und hat einen festgelegten JSON Body.
|
||||
|
||||
Das Webhook wir so oft gesendet, bis der angegebene Webhook Endpoint eine Response mit Status `200` zurücksendet.
|
||||
|
||||
Alle Webhooks:
|
||||
|
||||
| Beschreibung | HTTP Header | Body |
|
||||
| -------------------------------- | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| Ein Team hat ein Strike bekommen | <pre>x-webhook-action: strike</pre> | <pre>{<br> // UUIDs aller Nutzer des Teams, das einen Strike bekommen hat<br> "users": string[],<br> // Gewichtung aller Strikes, die das Team insgesamt bekommen hat<br> "totalWeight": number<br>}</pre> |
|
Reference in New Issue
Block a user