From 55e062847e2beebcaf0069e2e2d88328cc7e4d60 Mon Sep 17 00:00:00 2001 From: "bastien.ollier@etu.uca.fr" Date: Fri, 24 Feb 2023 16:58:37 +0100 Subject: [PATCH 1/2] add test des parametre de l'api --- .../apiLOL/Controllers/ControllerChampions.cs | 40 ++++++++++++++----- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/Sources/apiLOL/Controllers/ControllerChampions.cs b/Sources/apiLOL/Controllers/ControllerChampions.cs index 1feacd7..5be9b16 100644 --- a/Sources/apiLOL/Controllers/ControllerChampions.cs +++ b/Sources/apiLOL/Controllers/ControllerChampions.cs @@ -24,7 +24,7 @@ namespace apiLOL.Controllers // GET: api/ [HttpGet] - public async Task Get([FromQuery]int index = 0, int count = 10, string nom="") + public async Task Get([FromQuery]int index = 0, int count = 10) { //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 @@ -51,8 +51,15 @@ namespace apiLOL.Controllers public async Task GetChampion(string name) { _logger.LogInformation($"methode GetChampion de ControllerChampions appelée avec le paramètre {name}"); - var champs = (await data.ChampionsMgr.GetItemsByName(name,0,1)).First(); - return Ok(champs.ToDTO()); + try + { + var champs = (await data.ChampionsMgr.GetItemsByName(name, 0, 1)); + return Ok(champs.First().ToDTO()); + } + catch + { + return BadRequest("erreur de nom de champion"); + } } @@ -73,17 +80,32 @@ namespace apiLOL.Controllers { _logger.LogInformation($"methode Put de ControllerChampions appelée avec le paramètre name: {name} et bio: {bio}"); - var champs = (await data.ChampionsMgr.GetItemsByName(name, 0, 1)).First(); - champs.Bio = bio; - return Ok(champs.ToDTO()); + try + { + var champs = (await data.ChampionsMgr.GetItemsByName(name, 0, 1)).First(); + champs.Bio = bio; + return Ok(champs.ToDTO()); + } + catch + { + return BadRequest("erreur de nom de champion"); + } } // DELETE api//5 [HttpDelete("{name}")] - public async void Delete(String name) + public async Task Delete(String name) { - var champ = (await data.ChampionsMgr.GetItemsByName(name, 0, 1)).First(); - data.ChampionsMgr.DeleteItem(champ); + try + { + var champ = (await data.ChampionsMgr.GetItemsByName(name, 0, 1)).First(); + data.ChampionsMgr.DeleteItem(champ); + return Ok(champ.ToDTO()); + } + catch + { + return BadRequest("erreur de nom de champion"); + } } } From cce59a0adfb3a3d99c5ed2d92d5eaa9e9be47fc9 Mon Sep 17 00:00:00 2001 From: "bastien.ollier@etu.uca.fr" Date: Fri, 24 Feb 2023 17:06:53 +0100 Subject: [PATCH 2/2] modif mapper --- Sources/apiLOL/ChampionMapper.cs | 6 ++---- .../apiLOL/Controllers/ControllerChampions.cs | 17 +++++++++++++---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/Sources/apiLOL/ChampionMapper.cs b/Sources/apiLOL/ChampionMapper.cs index 4a27adf..a7009ab 100644 --- a/Sources/apiLOL/ChampionMapper.cs +++ b/Sources/apiLOL/ChampionMapper.cs @@ -4,10 +4,8 @@ namespace apiLOL { public static class ChampionMapper { - public static ChampionDTO ToDTO(this Champion champion) - { - return new ChampionDTO(champion.Name, champion.Bio); - } + public static ChampionDTO ToDTO(this Champion champion) => new ChampionDTO(champion.Name, champion.Bio); + public static Champion ToModel(this ChampionDTO championDTO) { diff --git a/Sources/apiLOL/Controllers/ControllerChampions.cs b/Sources/apiLOL/Controllers/ControllerChampions.cs index 8243e03..18bb600 100644 --- a/Sources/apiLOL/Controllers/ControllerChampions.cs +++ b/Sources/apiLOL/Controllers/ControllerChampions.cs @@ -66,10 +66,19 @@ namespace apiLOL.Controllers public async Task Post(ChampionDTO champDTO) { _logger.LogInformation($"methode Post de ControllerChampions appelée avec le paramètre {champDTO.Name}"); - Champion tmp = champDTO.ToModel(); - Champion champion = await data.ChampionsMgr.AddItem(tmp); - ChampionDTO dtoChamp = champion.ToDTO(); - return CreatedAtAction(nameof(GetChampion), new { name = dtoChamp.Name }, dtoChamp); + + + try + { + Champion tmp = champDTO.ToModel(); + Champion champion = await data.ChampionsMgr.AddItem(tmp); + ChampionDTO dtoChamp = champion.ToDTO(); + return CreatedAtAction(nameof(GetChampion), new { name = dtoChamp.Name }, dtoChamp); + } + catch + { + return BadRequest("le champion existe deja"); + } } // PUT api//5