Updating logs from ChampionsController class and create a new function for ChampionStub
continuous-integration/drone/push Build is passing Details

Logs_Version_Filtrage_Pagination
Emre KARTAL 2 years ago
parent 074892b3a7
commit 0b5a3f1d03

@ -28,7 +28,7 @@ namespace ApiLol.Controllers.v1
int nbTotal = await _manager.ChampionsMgr.GetNbItems();
_logger.LogInformation($"method Get call");
_logger.LogInformation("Executing {Action} with parameters: {Parameters}", nameof(Get), pageRequest);
IEnumerable<ChampionDto> dtos = (await _manager.ChampionsMgr.GetItems(pageRequest.index, pageRequest.count))
.Select(x => x.ToDto());
return Ok(dtos);
@ -38,11 +38,11 @@ namespace ApiLol.Controllers.v1
[HttpGet("{name}")]
public async Task<IActionResult> Get(string name)
{
_logger.LogInformation($"method GetByName call with {name}");
_logger.LogInformation("method {Action} call with {name}", nameof(Get), name);
var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems()))
.Select(x => x.ToDto());
return Ok(dtos);
return Ok(dtos.First());
}
@ -51,7 +51,7 @@ namespace ApiLol.Controllers.v1
public async Task<IActionResult> Post([FromBody] ChampionDto champion)
{
_logger.LogInformation($"method Post call");
_logger.LogInformation("method {Action} call with {item}", nameof(Post), champion);
return CreatedAtAction(nameof(Get),
(await _manager.ChampionsMgr.AddItem(champion.ToModel())).ToDto());
@ -62,7 +62,7 @@ namespace ApiLol.Controllers.v1
public async Task<IActionResult> Put(string name, [FromBody] ChampionDto champion)
{
_logger.LogInformation($"method Put call with {name}");
_logger.LogInformation("method {Action} call with {name} and {item}", nameof(Put), name, champion);
var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems()));
return Ok(await _manager.ChampionsMgr.UpdateItem(dtos.First(), champion.ToModel()));
@ -74,7 +74,7 @@ namespace ApiLol.Controllers.v1
public async Task<IActionResult> Delete(string name)
{
_logger.LogInformation($"method Delete call with {name}");
_logger.LogInformation("method {Action} call with {name}", nameof(Delete), name);
var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems()));
return Ok(await _manager.ChampionsMgr.DeleteItem(dtos.First()));

@ -1,4 +1,5 @@
using ApiLol.Mapper;
using Azure.Core;
using DTO;
using Microsoft.AspNetCore.Mvc;
using Microsoft.IdentityModel.Tokens;
@ -35,7 +36,7 @@ namespace ApiLol.Controllers.v2
return BadRequest($"Champion limit exceed, max {nbTotal}");
}
_logger.LogInformation($"method Get call");
_logger.LogInformation("Executing {Action} with parameters: {Parameters}", nameof(Get), pageRequest);
IEnumerable<ChampionDto> dtos = (await _manager.ChampionsMgr.GetItems(pageRequest.index, pageRequest.count))
.Select(x => x.ToDto());
return Ok(dtos);
@ -58,13 +59,13 @@ namespace ApiLol.Controllers.v2
pageRequest.index = 0;
pageRequest.count = nbTotal;
}
else if (pageRequest.count * pageRequest.index >= nbTotal)
else if (pageRequest.count * pageRequest.index >= nbTotal || pageRequest.count > nbTotal)
{
_logger.LogWarning($"too many, maximum {nbTotal}");
return BadRequest($"Champion limit exceed, max {nbTotal}");
}
_logger.LogInformation($"method Get call");
_logger.LogInformation("Executing {Action} with parameters: {Parameters}", nameof(Get), pageRequest);
IEnumerable<ChampionDto> dtos = (await _manager.ChampionsMgr.GetItems(pageRequest.index, pageRequest.count))
.Select(x => x.ToDto());
return Ok(dtos);
@ -81,7 +82,7 @@ namespace ApiLol.Controllers.v2
{
try
{
_logger.LogInformation($"method GetByName call with {name}");
_logger.LogInformation("method {Action} call with {name}", nameof(Get), name);
var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems()))
.Select(x => x.ToDto());
if (dtos.IsNullOrEmpty())
@ -89,7 +90,7 @@ namespace ApiLol.Controllers.v2
_logger.LogWarning($"{name} was not found");
return NotFound();
}
return Ok(dtos);
return Ok(dtos.First());
}
catch (Exception e)
{
@ -103,7 +104,7 @@ namespace ApiLol.Controllers.v2
{
try
{
_logger.LogInformation($"method Post call");
_logger.LogInformation("method {Action} call with {item}", nameof(Post), champion);
var dtos = (await _manager.ChampionsMgr.GetItemsByName(champion.Name, 0, await _manager.ChampionsMgr.GetNbItems()));
if (!dtos.IsNullOrEmpty())
{
@ -124,11 +125,11 @@ namespace ApiLol.Controllers.v2
{
try
{
_logger.LogInformation($"method Put call with {name}");
_logger.LogInformation("method {Action} call with {name} and {item}", nameof(Put), name, champion);
var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems()));
if (dtos.IsNullOrEmpty())
{
return NotFound("Name not exist");
return NotFound($"Name {name} not exist");
}
// Checks if the new name exists
if (name != champion.Name)
@ -152,6 +153,7 @@ namespace ApiLol.Controllers.v2
{
try
{
_logger.LogInformation("method {Action} call with {name}", nameof(GetChampionsSkins), name);
var champions = await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems());
//skinsDTO
IEnumerable<SkinDto> res = champions.First().Skins.Select(e => e.ToDto());
@ -169,6 +171,7 @@ namespace ApiLol.Controllers.v2
{
try
{
_logger.LogInformation("method {Action} call with {name}", nameof(GetChampionsSkills), name);
var champions = await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems());
//SkillDTO
IEnumerable<SkillDto> res = champions.First().Skills.Select(e => e.ToDto());
@ -187,11 +190,11 @@ namespace ApiLol.Controllers.v2
{
try
{
_logger.LogInformation($"method Delete call with {name}");
_logger.LogInformation("method {Action} call with {name}", nameof(Delete), name);
var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems()));
if (dtos.IsNullOrEmpty())
{
_logger.LogWarning($"{name} was not found");
_logger.LogWarning("{name} was not found", name);
return BadRequest();
}
return Ok(await _manager.ChampionsMgr.DeleteItem(dtos.First()));

@ -3,19 +3,19 @@ using Model;
namespace StubLib
{
public partial class StubData
{
private List<Champion> champions = new()
{
new Champion("Akali", ChampionClass.Assassin),
new Champion("Aatrox", ChampionClass.Fighter),
new Champion("Ahri", ChampionClass.Mage),
new Champion("Akshan", ChampionClass.Marksman),
new Champion("Bard", ChampionClass.Support),
new Champion("Alistar", ChampionClass.Tank),
};
public class ChampionsManager : IChampionsManager
public partial class StubData
{
private List<Champion> champions = new()
{
new Champion("Akali", ChampionClass.Assassin),
new Champion("Aatrox", ChampionClass.Fighter),
new Champion("Ahri", ChampionClass.Mage),
new Champion("Akshan", ChampionClass.Marksman),
new Champion("Bard", ChampionClass.Support),
new Champion("Alistar", ChampionClass.Tank),
};
public class ChampionsManager : IChampionsManager
{
private readonly StubData parent;
@ -82,19 +82,24 @@ namespace StubLib
(parent.championsAndRunePages
.Where(tuple => tuple.Item2.Equals(runePage))
.Select(tuple => tuple.Item1)
.Skip(index*count).Take(count));
.Skip(index * count).Take(count));
private Func<Champion, string, bool> filterByName = (champ, substring) => champ.Name.Equals(substring, StringComparison.InvariantCultureIgnoreCase);
private Func<Champion, string, bool> filterByNameContains = (champ, substring) => champ.Name.Contains(substring, StringComparison.InvariantCultureIgnoreCase);
public Task<int> GetNbItemsByName(string substring)
=> parent.champions.GetNbItemsWithFilter(champ => filterByName(champ, substring));
public Task<IEnumerable<Champion?>> GetItemsByName(string substring, int index, int count, string? orderingPropertyName, bool descending = false)
=> parent.champions.GetItemsWithFilterAndOrdering(champ => filterByName(champ, substring), index, count, orderingPropertyName, descending);
public Task<IEnumerable<Champion?>> GetItemsByNameContains(string substring, int index, int count, string? orderingPropertyName, bool descending = false)
=> parent.champions.GetItemsWithFilterAndOrdering(champ => filterByNameContains(champ, substring), index, count, orderingPropertyName, descending);
public Task<Champion?> UpdateItem(Champion? oldItem, Champion? newItem)
=> parent.champions.UpdateItem(oldItem, newItem);
}
}
}
}

@ -26,7 +26,7 @@ namespace ApiTests
//Act
var total = await stub.ChampionsMgr.GetNbItems();
var champion = await champs.Get(new PageRequest() { index = 0, count = total });
var champion = await champs.Get(new PageRequest());
//Assert
var objectResult = champion as OkObjectResult;

Loading…
Cancel
Save