HR-Collector/HRServer-Exporter/HRServer/Controllers/HorseController.cs
2024-12-07 21:17:47 +01:00

113 lines
4 KiB
C#

using HRServer.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Hosting;
namespace HRServer.Controllers
{
[ApiController]
public class HorseController : ControllerBase
{
private readonly ILogger<HorseController> _logger;
public HorseController(ILogger<HorseController> 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);
}
}
}