|
|
|
@ -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()));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|