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(); 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)) IEnumerable<ChampionDto> dtos = (await _manager.ChampionsMgr.GetItems(pageRequest.index, pageRequest.count))
.Select(x => x.ToDto()); .Select(x => x.ToDto());
return Ok(dtos); return Ok(dtos);
@ -38,11 +38,11 @@ namespace ApiLol.Controllers.v1
[HttpGet("{name}")] [HttpGet("{name}")]
public async Task<IActionResult> Get(string 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())) var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems()))
.Select(x => x.ToDto()); .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) 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), return CreatedAtAction(nameof(Get),
(await _manager.ChampionsMgr.AddItem(champion.ToModel())).ToDto()); (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) 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())); var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems()));
return Ok(await _manager.ChampionsMgr.UpdateItem(dtos.First(), champion.ToModel())); 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) 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())); var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems()));
return Ok(await _manager.ChampionsMgr.DeleteItem(dtos.First())); return Ok(await _manager.ChampionsMgr.DeleteItem(dtos.First()));

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

@ -82,16 +82,21 @@ namespace StubLib
(parent.championsAndRunePages (parent.championsAndRunePages
.Where(tuple => tuple.Item2.Equals(runePage)) .Where(tuple => tuple.Item2.Equals(runePage))
.Select(tuple => tuple.Item1) .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> 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) public Task<int> GetNbItemsByName(string substring)
=> parent.champions.GetNbItemsWithFilter(champ => filterByName(champ, substring)); => parent.champions.GetNbItemsWithFilter(champ => filterByName(champ, substring));
public Task<IEnumerable<Champion?>> GetItemsByName(string substring, int index, int count, string? orderingPropertyName, bool descending = false) 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); => 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) public Task<Champion?> UpdateItem(Champion? oldItem, Champion? newItem)
=> parent.champions.UpdateItem(oldItem, newItem); => parent.champions.UpdateItem(oldItem, newItem);
} }

@ -26,7 +26,7 @@ namespace ApiTests
//Act //Act
var total = await stub.ChampionsMgr.GetNbItems(); 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 //Assert
var objectResult = champion as OkObjectResult; var objectResult = champion as OkObjectResult;

Loading…
Cancel
Save