## 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>GET</code> <code>/api/team</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, // UTC timestamp wann das Team zuletzt gejoined ist "lastJoined": number | null, // Gewichtung aller Strikes "strikeWeight": number, // Alle Spieler des Teams "users": { // UUID des Spielers "uuid": string, // Ob der Spieler Tot ist "dead": boolean }[] } ``` </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> |