Merge branch 'API' of https://codefirst.iut.uca.fr/git/bastien.ollier/LOL into API
continuous-integration/drone/push Build is passing Details

pull/1/head
nathan boileau 2 years ago
commit a0eaf90c47

@ -4,10 +4,8 @@ namespace apiLOL
{ {
public static class ChampionMapper public static class ChampionMapper
{ {
public static ChampionDTO ToDTO(this Champion champion) public static ChampionDTO ToDTO(this Champion champion) => new ChampionDTO(champion.Name, champion.Bio);
{
return new ChampionDTO(champion.Name, champion.Bio);
}
public static Champion ToModel(this ChampionDTO championDTO) public static Champion ToModel(this ChampionDTO championDTO)
{ {

@ -22,7 +22,7 @@ namespace apiLOL.Controllers
// GET: api/<ControllerLol> // GET: api/<ControllerLol>
[HttpGet] [HttpGet]
public async Task<IActionResult> Get([FromQuery] int index = 0, int count = 10, string name = "") public async Task<IActionResult> Get([FromQuery]int index = 0, int count = 10)
{ {
//FromQuery permet de filtrer dans la collection de champions en fonction du nom //FromQuery permet de filtrer dans la collection de champions en fonction du nom
// Possible de faire une classe PageRequest pour gérer les paramètres index et count // Possible de faire une classe PageRequest pour gérer les paramètres index et count
@ -49,8 +49,15 @@ namespace apiLOL.Controllers
public async Task<IActionResult> GetChampion(string name) public async Task<IActionResult> GetChampion(string name)
{ {
_logger.LogInformation($"methode GetChampion de ControllerChampions appelée avec le paramètre {name}"); _logger.LogInformation($"methode GetChampion de ControllerChampions appelée avec le paramètre {name}");
var champs = (await data.ChampionsMgr.GetItemsByName(name,0,1)).First(); try
return Ok(champs.ToDTO()); {
var champs = (await data.ChampionsMgr.GetItemsByName(name, 0, 1));
return Ok(champs.First().ToDTO());
}
catch
{
return BadRequest("erreur de nom de champion");
}
} }
@ -59,11 +66,20 @@ namespace apiLOL.Controllers
public async Task<IActionResult> Post(ChampionDTO champDTO) public async Task<IActionResult> Post(ChampionDTO champDTO)
{ {
_logger.LogInformation($"methode Post de ControllerChampions appelée avec le paramètre {champDTO.Name}"); _logger.LogInformation($"methode Post de ControllerChampions appelée avec le paramètre {champDTO.Name}");
try
{
Champion tmp = champDTO.ToModel(); Champion tmp = champDTO.ToModel();
Champion champion = await data.ChampionsMgr.AddItem(tmp); Champion champion = await data.ChampionsMgr.AddItem(tmp);
ChampionDTO dtoChamp = champion.ToDTO(); ChampionDTO dtoChamp = champion.ToDTO();
return CreatedAtAction(nameof(GetChampion), new { name = dtoChamp.Name }, dtoChamp); return CreatedAtAction(nameof(GetChampion), new { name = dtoChamp.Name }, dtoChamp);
} }
catch
{
return BadRequest("le champion existe deja");
}
}
// PUT api/<ControllerLol>/5 // PUT api/<ControllerLol>/5
[HttpPut("{name}")] [HttpPut("{name}")]
@ -71,17 +87,32 @@ namespace apiLOL.Controllers
{ {
_logger.LogInformation($"methode Put de ControllerChampions appelée avec le paramètre name: {name} et bio: {bio}"); _logger.LogInformation($"methode Put de ControllerChampions appelée avec le paramètre name: {name} et bio: {bio}");
try
{
var champs = (await data.ChampionsMgr.GetItemsByName(name, 0, 1)).First(); var champs = (await data.ChampionsMgr.GetItemsByName(name, 0, 1)).First();
champs.Bio = bio; champs.Bio = bio;
return Ok(champs.ToDTO()); return Ok(champs.ToDTO());
} }
catch
{
return BadRequest("erreur de nom de champion");
}
}
// DELETE api/<ControllerLol>/5 // DELETE api/<ControllerLol>/5
[HttpDelete("{name}")] [HttpDelete("{name}")]
public async void Delete(String name) public async Task<IActionResult> Delete(String name)
{
try
{ {
var champ = (await data.ChampionsMgr.GetItemsByName(name, 0, 1)).First(); var champ = (await data.ChampionsMgr.GetItemsByName(name, 0, 1)).First();
data.ChampionsMgr.DeleteItem(champ); data.ChampionsMgr.DeleteItem(champ);
return Ok(champ.ToDTO());
}
catch
{
return BadRequest("erreur de nom de champion");
}
} }
} }

Loading…
Cancel
Save