Files
website/README.md
bytedream d3af1cedfd
All checks were successful
deploy / build-and-deploy (push) Successful in 15s
update api auth
2025-10-15 13:15:24 +02:00

7.2 KiB

API

Wenn die env variable API_SECRET gesetzt ist, muss jede API Request den HTTP Header Authorization: Basic <"api:<API_SECRET>" as base64> 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

/

GET /api/player (Status eines Spielers)
Request Body
{
  // UUID eines Spielers
  "user": string
}
http code beschreibung
200 /
400 Der Request Body ist falsch
401 Es wurde ein falsches API Secret angegeben
404 Der Spieler existiert nicht
Response Body
{
  // Liste aller Strikes, die der Spieler hat
  strikes: {
    // UTC Timestamp wann der Strike erstellt wurde
    "at": number,
    // Strike Gewichtung
    "weight": number,
  }[]
}

Webhook

Die env variable WEBHOOK_ENDPOINT muss gesetzt und eine valide HTTP URL sein. Es können auch mehrere Endpoints gesetzt sein, dafür müssen die URLs mit einem komma getrennt 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 neuer Nutzer hat sich registriert
x-webhook-action: signup
{
  // Vorname des Nutzers
  firstname: string,
  // Nachname des Nutzers
  lastname: string,
  //Geburtstag des Nutzers im YYYY-MM-DD format
  birthday: string,
  // Telefonnummer des Nutzers. null wenn keine angegeben wurde
  telephone: string | null,
  // Spielername des Nutzers
  username: string,
  // Minecraft-Edition des Nutzers
  edition: 'java' | 'bedrock'
Ein neuer Report wurde erstellt
x-webhook-action: report
{
  // Username des Reporters. null wenn der Report vom System gemacht wurde
  reporter: string | null,
  // Username des reporteten Spielers. null wenn Spieler unbekannt ist
  reported: string | null,
  // Grund des Reports
  reason: string
}
Ein neuer Strike wurde erstellt
x-webhook-action: strike
{
  // UUID des Spielers, der gestriked wurde
  user: string
}