finish crud champio and start skin crud
continuous-integration/drone/push Build is failing Details

rune
Lucas Delanier 2 years ago
parent ecd16624b8
commit 0673268745

@ -12,13 +12,20 @@ namespace APILOL.Controllers
[ApiController] [ApiController]
public class ChampionsController : ControllerBase public class ChampionsController : ControllerBase
{ {
IChampionsManager dataManager = new StubData().ChampionsMgr; IChampionsManager dataManager;
public ChampionsController(IDataManager dataManager)
{
this.dataManager = dataManager.ChampionsMgr;
}
// GET: api/<ChampionController> // GET: api/<ChampionController>
[HttpGet] [HttpGet]
public async Task<IActionResult> Get() public async Task<IActionResult> Get(int index, int count)
{ {
var champions = await dataManager.GetItems(0, await dataManager.GetNbItems()); var champions = await dataManager.GetItems(index, count);
IEnumerable<ChampionDTO> items = champions.Select(c => c.ToDto()); IEnumerable<ChampionDTO> items = champions.Select(c => c.ToDto());
return Ok(items); return Ok(items);
} }
@ -44,14 +51,21 @@ namespace APILOL.Controllers
// PUT api/<ChampionController>/5 // PUT api/<ChampionController>/5
[HttpPut("{name}")] [HttpPut("{name}")]
public void Put(string name, [FromBody] ChampionDTO championDTO) public async Task<IActionResult> PutAsync(string name, [FromBody] ChampionDTO championDTO)
{ {
var dtos = (await dataManager.GetItemsByName(name, 0, await dataManager.GetNbItems()));
return Ok(dataManager.UpdateItem(dtos.First(), championDTO.ToModel()));
} }
// DELETE api/<ChampionController>/5 // DELETE api/<ChampionController>/5
[HttpDelete("{name}")] [HttpDelete("{name}")]
public void Delete(string name) public async Task<IActionResult> Delete(string name)
{ {
var dtos = (await dataManager.GetItemsByName(name, 0, await dataManager.GetNbItems()));
return Ok(dataManager.DeleteItem(dtos.First()));
} }
} }
} }

@ -0,0 +1,75 @@
using APILOL.Mapper;
using DTO;
using Microsoft.AspNetCore.Mvc;
using Model;
namespace APILOL.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class SkinController : ControllerBase
{
ISkinsManager dataManager;
public SkinController(IDataManager dataManager)
{
this.dataManager = dataManager.SkinsMgr;
}
// GET: api/<SkinController>
[HttpGet]
public async Task<IActionResult> Get(int index, int count)
{
var skins = await dataManager.GetItems(index, count);
IEnumerable<SkinDTO> items = skins.Select(c => c.ToDto());
return Ok(items);
}
// GET api/<SkinController>/5
[HttpGet("{name}")]
public async Task<IActionResult> Get(string name)
{
var skins = await dataManager.GetItemsByName(name, 0, await dataManager.GetNbItems());
if (skins != null)
{
IEnumerable<SkinDTO> items = skins.Select(c => c.ToDto());
return Ok(items);
}
return NotFound();
}
// POST api/<SkinController>
[HttpPost]
public async Task<IActionResult> Post([FromBody] SkinDTO skinDTO)
{
return CreatedAtAction(nameof(Get), (await dataManager.AddItem(skinDTO.ToModel())).ToDto);
}
// PUT api/<SkinController>/5
[HttpPut("{name}")]
public async Task<IActionResult> PutAsync(string name, [FromBody] SkinDTO skinDTO)
{
var dtos = (await dataManager.GetItemsByName(name, 0, await dataManager.GetNbItems()));
if(dtos != null) {
return Ok(dataManager.UpdateItem(dtos.First(), skinDTO.ToModel()));
}
return NotFound();
}
// DELETE api/<SkinController>/5
[HttpDelete("{name}")]
public async Task<IActionResult> Delete(string name)
{
var dtos = (await dataManager.GetItemsByName(name, 0, await dataManager.GetNbItems()));
return Ok(dataManager.DeleteItem(dtos.First()));
}
}
}

@ -0,0 +1,26 @@
using DTO;
using Model;
namespace APILOL.Mapper
{
public static class SkinMapper
{
public static SkinDTO ToDto(this Skin skin)
{
return new SkinDTO()
{
Name = skin.Name,
Description = skin.Description,
Icon = skin.Icon,
Price = skin.Price,
Champion = skin.Champion.ToDto(),
Image = skin.Image.Base64,
};
}
public static Skin ToModel(this SkinDTO skin)
{
return new Skin(skin.Name, skin.Champion.ToModel(),skin.Price, skin.Image, skin.Icon, skin.Description);
}
}
}

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DTO
{
public class SkinDTO
{
public string Name { get; set; }
public string Description { get; set; }
public string Icon { get; set; }
public float Price { get; set; }
public ChampionDTO Champion { get; set; }
public string Image { get; set; }
}
}
Loading…
Cancel
Save