using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using StubLib; using Web_Api.Mapper; using static StubLib.StubData; namespace Web_Api.Controllers { [ApiController] [Route("api/[controller]")] public class RunesController : Controller { private StubData.RunesManager RunesManager { get; set; } = new StubData.RunesManager(new StubData()); private readonly ILogger _logger; public RunesController(ILogger logger) { _logger = logger; } [HttpGet] public async Task Get() { var list = await RunesManager.GetItems(0, await RunesManager.GetNbItems()); return Ok(list.Select(rune => rune?.toDTO())); } [HttpGet("name")] public async Task GetById(string name) { var runeSelected = await RunesManager.GetItemsByName(name, 0, await RunesManager.GetNbItemsByName(name), null); return Ok(runeSelected.Select(rune => rune?.toDTO())); } [HttpPost("addRune")] public async Task AddRune(RuneDTO rune) { var newRune = rune.toModel(); await RunesManager.AddItem(newRune); if(rune.Description == "string") { rune.Description = "Aucune bio"; } Console.WriteLine("La rune { " + rune.Name + " } avec pour descrption { " + rune.Description + " } a bien été ajoutée"); return Ok(newRune); } [HttpPut("updateRune")] public async Task UpdateRune(string name, RuneDTO rune) { var runeSelected = await RunesManager.GetItemsByName(name, 0, await RunesManager.GetNbItemsByName(name), null); var existingRune = runeSelected.FirstOrDefault(); if (existingRune == null) { Console.WriteLine("La rune { " + name + " } n'existe pas !"); return NotFound(); } var updatedRune = rune.toModel(); await RunesManager.UpdateItem(existingRune, updatedRune); if (rune.Description == "string") { rune.Description = "Aucune bio"; } Console.WriteLine("La rune { " + name + " } a été modifiée en { " + updatedRune.Name + " } avec pour description { " + rune.Description + " }"); return Ok(); } [HttpDelete("deleteRune")] public async Task DeleteRune(string name) { var runeSelected = await RunesManager.GetItemsByName(name, 0, await RunesManager.GetNbItemsByName(name), null); if(!await RunesManager.DeleteItem(runeSelected.FirstOrDefault())) { Console.WriteLine("rune { " + name + " } non trouvée !"); return NotFound(); } Console.WriteLine("rune { " + name + " } supprimée"); return Ok(); } /*// GET: RuneController public ActionResult Index() { return View(); } // GET: RuneController/Details/5 public ActionResult Details(int id) { return View(); } // GET: RuneController/Create public ActionResult Create() { return View(); } // POST: RuneController/Create [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create(IFormCollection collection) { try { return RedirectToAction(nameof(Index)); } catch { return View(); } } // GET: RuneController/Edit/5 public ActionResult Edit(int id) { return View(); } // POST: RuneController/Edit/5 [HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit(int id, IFormCollection collection) { try { return RedirectToAction(nameof(Index)); } catch { return View(); } } // GET: RuneController/Delete/5 public ActionResult Delete(int id) { return View(); } // POST: RuneController/Delete/5 [HttpPost] [ValidateAntiForgeryToken] public ActionResult Delete(int id, IFormCollection collection) { try { return RedirectToAction(nameof(Index)); } catch { return View(); } }*/ } }