|
|
@ -24,82 +24,156 @@ namespace ApiLol.Controllers
|
|
|
|
[HttpGet]
|
|
|
|
[HttpGet]
|
|
|
|
public async Task<IActionResult> Get([FromQuery] PageRequest pageRequest)
|
|
|
|
public async Task<IActionResult> Get([FromQuery] PageRequest pageRequest)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
int nbTotal = await _manager.ChampionsMgr.GetNbItems();
|
|
|
|
try
|
|
|
|
if (pageRequest.count + pageRequest.index > nbTotal)
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
_logger.LogWarning($"too many, maximum {nbTotal}");
|
|
|
|
int nbTotal = await _manager.ChampionsMgr.GetNbItems();
|
|
|
|
return BadRequest("Champion limit exceed");
|
|
|
|
if (pageRequest.count + pageRequest.index > nbTotal)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_logger.LogWarning($"too many, maximum {nbTotal}");
|
|
|
|
|
|
|
|
return BadRequest($"Champion limit exceed, max {nbTotal}");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_logger.LogInformation($"method Get call");
|
|
|
|
|
|
|
|
IEnumerable<ChampionDto> dtos = (await _manager.ChampionsMgr.GetItems(pageRequest.index, pageRequest.count))
|
|
|
|
|
|
|
|
.Select(x => x.ToDto());
|
|
|
|
|
|
|
|
return Ok(dtos);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
catch (Exception e)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return BadRequest(e.Message);
|
|
|
|
|
|
|
|
|
|
|
|
_logger.LogInformation($"method Get call");
|
|
|
|
}
|
|
|
|
IEnumerable<ChampionDto> dtos = (await _manager.ChampionsMgr.GetItems(pageRequest.index, pageRequest.count))
|
|
|
|
|
|
|
|
.Select(x => x.ToDto());
|
|
|
|
|
|
|
|
return Ok(dtos);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// GET api/<ValuesController>/5
|
|
|
|
// GET api/<ValuesController>/5
|
|
|
|
[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}");
|
|
|
|
try
|
|
|
|
var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems()))
|
|
|
|
|
|
|
|
.Select(x => x.ToDto());
|
|
|
|
|
|
|
|
if (dtos.IsNullOrEmpty())
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
_logger.LogWarning($"{name} was not found");
|
|
|
|
_logger.LogInformation($"method GetByName call with {name}");
|
|
|
|
return NotFound();
|
|
|
|
var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems()))
|
|
|
|
|
|
|
|
.Select(x => x.ToDto());
|
|
|
|
|
|
|
|
if (dtos.IsNullOrEmpty())
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_logger.LogWarning($"{name} was not found");
|
|
|
|
|
|
|
|
return NotFound();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return Ok(dtos);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
catch (Exception e)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return BadRequest(e.Message);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return Ok(dtos);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// POST api/<ValuesController>
|
|
|
|
// POST api/<ValuesController>
|
|
|
|
[HttpPost]
|
|
|
|
[HttpPost]
|
|
|
|
public async Task<IActionResult> Post([FromBody] ChampionDto champion)
|
|
|
|
public async Task<IActionResult> Post([FromBody] ChampionDto champion)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
_logger.LogInformation($"method Post call");
|
|
|
|
try
|
|
|
|
var dtos = (await _manager.ChampionsMgr.GetItemsByName(champion.Name, 0, await _manager.ChampionsMgr.GetNbItems()));
|
|
|
|
|
|
|
|
if (!dtos.IsNullOrEmpty())
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return BadRequest("Name is already exist");
|
|
|
|
_logger.LogInformation($"method Post call");
|
|
|
|
|
|
|
|
var dtos = (await _manager.ChampionsMgr.GetItemsByName(champion.Name, 0, await _manager.ChampionsMgr.GetNbItems()));
|
|
|
|
|
|
|
|
if (!dtos.IsNullOrEmpty())
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return BadRequest("Name is already exist");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return CreatedAtAction(nameof(Get),
|
|
|
|
|
|
|
|
(await _manager.ChampionsMgr.AddItem(champion.ToModel())).ToDto());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
catch (Exception e)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return BadRequest(e.Message);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return CreatedAtAction(nameof(Get),
|
|
|
|
|
|
|
|
(await _manager.ChampionsMgr.AddItem(champion.ToModel())).ToDto());
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// PUT api/<ValuesController>/5
|
|
|
|
// PUT api/<ValuesController>/5
|
|
|
|
[HttpPut("{name}")]
|
|
|
|
[HttpPut("{name}")]
|
|
|
|
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}");
|
|
|
|
try
|
|
|
|
var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems()));
|
|
|
|
|
|
|
|
if (dtos.IsNullOrEmpty())
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return BadRequest("Name not exist");
|
|
|
|
_logger.LogInformation($"method Put call with {name}");
|
|
|
|
}
|
|
|
|
var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems()));
|
|
|
|
// Checks if the new name exists
|
|
|
|
if (dtos.IsNullOrEmpty())
|
|
|
|
if (name != champion.Name)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var dtos2 = (await _manager.ChampionsMgr.GetItemsByName(champion.Name, 0, await _manager.ChampionsMgr.GetNbItems()));
|
|
|
|
|
|
|
|
if (!dtos.IsNullOrEmpty())
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
return BadRequest("Name is already exist");
|
|
|
|
return BadRequest("Name not exist");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// Checks if the new name exists
|
|
|
|
|
|
|
|
if (name != champion.Name)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var dtos2 = (await _manager.ChampionsMgr.GetItemsByName(champion.Name, 0, await _manager.ChampionsMgr.GetNbItems()));
|
|
|
|
|
|
|
|
if (!dtos.IsNullOrEmpty())
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return BadRequest("Name is already exist");
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return Ok(await _manager.ChampionsMgr.UpdateItem(dtos.First(), champion.ToModel()));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
catch (Exception e)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return BadRequest(e.Message);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[HttpGet("/{name}/skins")]
|
|
|
|
|
|
|
|
public async Task<ActionResult<Skin>> GetChampionsSkins(string name)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
try
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var champions = await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems());
|
|
|
|
|
|
|
|
//skinsDTO
|
|
|
|
|
|
|
|
IEnumerable<SkinDto> res = champions.First().Skins.Select(e => e.ToDto());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return Ok(res);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
catch (Exception e)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return BadRequest(e.Message);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[HttpGet("/{name}/skills")]
|
|
|
|
|
|
|
|
public async Task<ActionResult<Skin>> GetChampionsSkills(string name)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
try
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
var champions = await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems());
|
|
|
|
|
|
|
|
//SkillDTO
|
|
|
|
|
|
|
|
IEnumerable<SkillDto> res = champions.First().Skills.Select(e => e.ToDto());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return Ok(res);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
catch (Exception e)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
return BadRequest(e.Message);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return Ok(await _manager.ChampionsMgr.UpdateItem(dtos.First(), champion.ToModel()));
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// DELETE api/<ValuesController>/5
|
|
|
|
// DELETE api/<ValuesController>/5
|
|
|
|
[HttpDelete("{name}")]
|
|
|
|
[HttpDelete("{name}")]
|
|
|
|
public async Task<IActionResult> Delete(string name)
|
|
|
|
public async Task<IActionResult> Delete(string name)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
_logger.LogInformation($"method Delete call with {name}");
|
|
|
|
try
|
|
|
|
var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems()));
|
|
|
|
{
|
|
|
|
if (dtos.IsNullOrEmpty())
|
|
|
|
_logger.LogInformation($"method Delete call with {name}");
|
|
|
|
|
|
|
|
var dtos = (await _manager.ChampionsMgr.GetItemsByName(name, 0, await _manager.ChampionsMgr.GetNbItems()));
|
|
|
|
|
|
|
|
if (dtos.IsNullOrEmpty())
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
_logger.LogWarning($"{name} was not found");
|
|
|
|
|
|
|
|
return BadRequest();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return Ok(await _manager.ChampionsMgr.DeleteItem(dtos.First()));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
catch (Exception e)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
_logger.LogWarning($"{name} was not found");
|
|
|
|
return BadRequest(e.Message);
|
|
|
|
return BadRequest();
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return Ok(await _manager.ChampionsMgr.DeleteItem(dtos.First()));
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|