bytedream 7b5557bd76
All checks were successful
deploy / build-and-deploy (/testvaro, /opt/website-test, website-test) (push) Successful in 25s
deploy / build-and-deploy (/varo, /opt/website, website) (push) Successful in 14s
show color if team is dead
2025-06-21 23:42:54 +02:00
2025-05-18 13:16:20 +02:00
2025-06-09 15:38:43 +02:00
2025-06-21 23:42:54 +02:00
2025-06-21 14:46:42 +02:00
2025-05-18 13:16:20 +02:00
2025-05-18 13:16:20 +02:00
2025-05-18 13:16:20 +02:00
2025-05-18 21:57:19 +02:00
2025-05-18 21:57:19 +02:00
2025-06-10 00:11:13 +02:00
2025-05-18 13:16:20 +02:00

API

Wenn die env variable API_SECRET gesetzt ist, muss jede API Request den HTTP Header Authorization: Basic <API_SECRET> haben.

POST /api/feedback (Erstellt Feedbackformulare)
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
  }[]
}
POST /api/report (Erstellt einen Report)
Request Body
{
  // UUID des Report Erstellers
  "reporter": string,
  // UUID des Reporteten Spielers
  "reported": string | null,
  // Report Grund
  "reason": string
}
Response Codes
http code beschreibung
200 /
400 Der Request Body ist falsch
401 Es wurde ein falsches API Secret angegeben
404 Der Report Ersteller, oder der reportete Spieler, existiert nicht
Response Body
{
  // URL, wo der Ersteller den Report abschicken kann
  "url": string
}
PUT /api/report (Erstellt einen Abgeschlossenen Report)
Request Body
{
  // UUID des Reporters. Wenn `null`, wird der Reporter als System interpretiert
  "reporter": string | null,
  // UUID des Reporteten Spielers
  "reported": string,
  // Report Grund
  "reason": string,
  // Inhalt des Reports
  "body": string | null,
  // Interne Notiz
  "notice": string | null,
  // Öffentliches Statement
  "statement": string | null,
  // ID des Strikegrundes
  "strike_reason_id": number
}
http code beschreibung
200 /
400 Der Request Body ist falsch
401 Es wurde ein falsches API Secret angegeben
404 Der Report Ersteller, oder der reportete Spieler, existiert nicht
Response Body

/

POST /api/player/death (Registriert einen Spielertod)
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

/

POST /api/player/status (Status eines Spielers)
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
}
PUT /api/player/status (Updatet den Status eines Spielers)
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

/

GET /api/team (Liste aller Teams)
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
  }[]
}

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
x-webhook-action: strike
{
  // UUIDs aller Nutzer des Teams, das einen Strike bekommen hat
  "users": string[],
  // Gewichtung aller Strikes, die das Team insgesamt bekommen hat
  "totalWeight": number
}
Description
No description provided
Readme 1.1 MiB
Languages
TypeScript 42.5%
Svelte 35.8%
Astro 20%
JavaScript 1.3%
CSS 0.4%