using HRServer.Models; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Hosting; namespace HRServer.Controllers { [ApiController] public class HorseController : ControllerBase { private readonly ILogger _logger; public HorseController(ILogger logger) { _logger = logger; } [HttpGet("/api/ping")] public IActionResult Ping() { return Ok("pong"); } [HttpGet("/api/getHorse/{id}")] public IActionResult GetHorse (int id) { var horse = HorseFactory.GetHorse((ulong)id); if (horse == null) { horse = new Horse { Id = (ulong)id }; HorseFactory.AddOrUpdateHorse(horse); } return Ok(horse); } [HttpGet("/api/getHorse/{id}/LoadState")] public IActionResult GetHorseLoadState (ulong id) { // Hole das Pferd aus der Factory var horse = HorseFactory.GetHorse((ulong)id); // Überprüfe, ob das Pferd existiert if (horse == null) { horse = new Horse { Id = (ulong)id }; HorseFactory.AddOrUpdateHorse(horse); } // Gib den Ladezustand des Pferdes zurück return Ok(horse.LoadState); } [HttpPost("/api/updateHorse/{id}/BasicData")] public IActionResult UpdateHorseBasicData(ulong id, [FromBody] Horse websiteHorse) { var localHorse = HorseFactory.GetHorse((ulong)id); if (localHorse == null) { localHorse = new Horse { Id = (ulong)id }; HorseFactory.AddOrUpdateHorse(localHorse); } localHorse.Age = localHorse.Age; localHorse.Breed = localHorse.Breed; localHorse.HorseName = localHorse.HorseName; localHorse.Gender = localHorse.Gender; localHorse.Link = localHorse.Link; return Ok(localHorse); } [HttpPost("/api/updateHorse/{id}/Pedigree")] public IActionResult UpdateHorsePedigree(ulong id, [FromBody] HorseSummary websiteHorseSummary) { var localHorse = HorseFactory.GetHorse((ulong)id); if (localHorse == null) { localHorse = new Horse { Id = (ulong)id }; HorseFactory.AddOrUpdateHorse(localHorse); } localHorse.Summary = websiteHorseSummary; return Ok(localHorse); } [HttpPost("/api/updateHorse/{id}/Training")] public IActionResult UpdateHorseTraining(ulong id, [FromBody] HorseTraining websiteHorseTraining) { var localHorse = HorseFactory.GetHorse((ulong)id); if (localHorse == null) { localHorse = new Horse { Id = (ulong)id }; HorseFactory.AddOrUpdateHorse(localHorse); } localHorse.Training = websiteHorseTraining; return Ok(localHorse); } [HttpPost("/api/updateHorse/{id}/Health")] public IActionResult UpdateHorseHealth(ulong id, [FromBody] HorseHealth websiteHorseHealth) { var localHorse = HorseFactory.GetHorse((ulong)id); if (localHorse == null) { localHorse = new Horse { Id = (ulong)id }; HorseFactory.AddOrUpdateHorse(localHorse); } localHorse.Health = websiteHorseHealth; return Ok(localHorse); } [HttpPost("/api/updateHorse/{id}/Genetics")] public IActionResult UpdateHorseGenetics(ulong id, [FromBody] HorseGenetics websiteHorseGenetics) { var localHorse = HorseFactory.GetHorse((ulong)id); if (localHorse == null) { localHorse = new Horse { Id = (ulong)id }; HorseFactory.AddOrUpdateHorse(localHorse); } localHorse.Genetics = websiteHorseGenetics; return Ok(localHorse); } [HttpPost("/api/updateHorse/{id}/Achievements")] public IActionResult UpdateHorseAchievements(ulong id, [FromBody] HorseAchievements websiteHorseAchievements) { var localHorse = HorseFactory.GetHorse((ulong)id); if (localHorse == null) { localHorse = new Horse { Id = (ulong)id }; HorseFactory.AddOrUpdateHorse(localHorse); } localHorse.Achievements = websiteHorseAchievements; return Ok(localHorse); } } }