From 9a34c5b5c2aaf3d427fc3697561ce48dd697e696 Mon Sep 17 00:00:00 2001 From: Anton Micke Date: Mon, 14 Jul 2025 00:07:07 +0200 Subject: [PATCH] Add minimal Rest API for players and results --- .../kickerelo/api/Ergebnis1vs1Controller.java | 32 +++++++++++++++++++ .../kickerelo/api/Ergebnis2vs2Controller.java | 32 +++++++++++++++++++ .../kickerelo/api/PlayerController.java | 32 +++++++++++++++++++ 3 files changed, 96 insertions(+) create mode 100644 src/main/java/org/kickerelo/kickerelo/api/Ergebnis1vs1Controller.java create mode 100644 src/main/java/org/kickerelo/kickerelo/api/Ergebnis2vs2Controller.java create mode 100644 src/main/java/org/kickerelo/kickerelo/api/PlayerController.java diff --git a/src/main/java/org/kickerelo/kickerelo/api/Ergebnis1vs1Controller.java b/src/main/java/org/kickerelo/kickerelo/api/Ergebnis1vs1Controller.java new file mode 100644 index 0000000..b499b98 --- /dev/null +++ b/src/main/java/org/kickerelo/kickerelo/api/Ergebnis1vs1Controller.java @@ -0,0 +1,32 @@ +package org.kickerelo.kickerelo.api; + +import org.kickerelo.kickerelo.data.Ergebnis1vs1; +import org.kickerelo.kickerelo.repository.Ergebnis1vs1Repository; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/api/results/1vs1") +public class Ergebnis1vs1Controller { + private final Ergebnis1vs1Repository ergebnis1vs1Repository; + + public Ergebnis1vs1Controller(Ergebnis1vs1Repository ergebnis1vs1Repository) { + this.ergebnis1vs1Repository = ergebnis1vs1Repository; + } + + @GetMapping + public ResponseEntity> getAllResults() { + return ResponseEntity.ok(ergebnis1vs1Repository.findAll()); + } + + @GetMapping("/{id}") + public ResponseEntity getResultForId(@PathVariable Long id) { + return ergebnis1vs1Repository.findById(id).map(ResponseEntity::ok) + .orElseGet(() -> ResponseEntity.noContent().build()); + } +} diff --git a/src/main/java/org/kickerelo/kickerelo/api/Ergebnis2vs2Controller.java b/src/main/java/org/kickerelo/kickerelo/api/Ergebnis2vs2Controller.java new file mode 100644 index 0000000..a2cf64c --- /dev/null +++ b/src/main/java/org/kickerelo/kickerelo/api/Ergebnis2vs2Controller.java @@ -0,0 +1,32 @@ +package org.kickerelo.kickerelo.api; + +import org.kickerelo.kickerelo.data.Ergebnis2vs2; +import org.kickerelo.kickerelo.repository.Ergebnis2vs2Repository; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/api/results/2vs2") +public class Ergebnis2vs2Controller { + private final Ergebnis2vs2Repository ergebnis2vs2Repository; + + public Ergebnis2vs2Controller(Ergebnis2vs2Repository ergebnis2vs2Repository) { + this.ergebnis2vs2Repository = ergebnis2vs2Repository; + } + + @GetMapping + public ResponseEntity> getAllResults() { + return ResponseEntity.ok(ergebnis2vs2Repository.findAll()); + } + + @GetMapping("/{id}") + public ResponseEntity getResultForId(@PathVariable Long id) { + return ergebnis2vs2Repository.findById(id).map(ResponseEntity::ok) + .orElseGet(() -> ResponseEntity.noContent().build()); + } +} diff --git a/src/main/java/org/kickerelo/kickerelo/api/PlayerController.java b/src/main/java/org/kickerelo/kickerelo/api/PlayerController.java new file mode 100644 index 0000000..f7f9e8b --- /dev/null +++ b/src/main/java/org/kickerelo/kickerelo/api/PlayerController.java @@ -0,0 +1,32 @@ +package org.kickerelo.kickerelo.api; + +import org.kickerelo.kickerelo.data.Spieler; +import org.kickerelo.kickerelo.repository.SpielerRepository; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/api/players") +public class PlayerController { + private final SpielerRepository spielerRepository; + + public PlayerController(SpielerRepository spielerRepository) { + this.spielerRepository = spielerRepository; + } + + @GetMapping + public ResponseEntity> getAllPlayers() { + return ResponseEntity.ok(spielerRepository.findAll()); + } + + @GetMapping("/{id}") + public ResponseEntity getPlayer(@PathVariable Long id) { + return spielerRepository.findById(id).map(ResponseEntity::ok) + .orElseGet(() -> ResponseEntity.noContent().build()); + } +}