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/ [HttpGet] public async Task Get(int index, int count) { var skins = await dataManager.GetItems(index, count); IEnumerable items = skins.Select(c => c.ToDto()); return Ok(items); } // GET api//5 [HttpGet("{name}")] public async Task Get(string name) { var skins = await dataManager.GetItemsByName(name, 0, await dataManager.GetNbItems()); if (skins != null) { IEnumerable items = skins.Select(c => c.ToDto()); return Ok(items); } return NotFound(); } // POST api/ [HttpPost] public async Task Post([FromBody] SkinDTO skinDTO) { return CreatedAtAction(nameof(Get), (await dataManager.AddItem(skinDTO.ToModel())).ToDto); } // PUT api//5 [HttpPut("{name}")] public async Task 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//5 [HttpDelete("{name}")] public async Task Delete(string name) { var dtos = (await dataManager.GetItemsByName(name, 0, await dataManager.GetNbItems())); return Ok(dataManager.DeleteItem(dtos.First())); } } }