diff --git a/Controllers/InventarController.cs b/Controllers/InventarController.cs index 8a16a64..369f5b9 100644 --- a/Controllers/InventarController.cs +++ b/Controllers/InventarController.cs @@ -11,9 +11,9 @@ namespace BuecherwurmAPI.Controllers [ApiController] public class InventarController : ControllerBase { - private readonly IInventarRepo _repository; + private readonly IItemRepo _repository; - public InventarController(IInventarRepo repository) + public InventarController(IItemRepo repository) { _repository = repository; } @@ -32,7 +32,7 @@ namespace BuecherwurmAPI.Controllers return Ok(new Item { Id = item.Id, - BookId = item.BookId, + BookId = book.ProductId, }); } @@ -60,7 +60,7 @@ namespace BuecherwurmAPI.Controllers { return NotFound(); } - _repository.DeleteItem(item); + _repository.DeleteItems(item); return NoContent(); } diff --git a/Controllers/LendController.cs b/Controllers/LendController.cs index 136b429..22e2671 100644 --- a/Controllers/LendController.cs +++ b/Controllers/LendController.cs @@ -1,84 +1,84 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using AutoMapper; -using BuecherwurmAPI.Data; -using BuecherwurmAPI.DTOs; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.JsonPatch; -using Microsoft.Extensions.Logging; -using BuecherwurmAPI.Models; - -namespace BuecherwurmAPI.Controllers -{ - [Route("api/leihvorgang")] - [ApiController] - public class LendController : ControllerBase - { - private readonly ILendRepo _repository; - private readonly IMapper _mapper; - - public LendController(ILendRepo repository, IMapper mapper) - { - _repository = repository; - _mapper = mapper; - } - - //GET api/leihvorgang - [HttpGet] - public ActionResult> LendsGet() - { - return Ok(_repository.GetAllLends()); - } - - //POST api/leihvorgang - [HttpPost] - public ActionResult LendsPost(Lend lend) - { - /* - Internally a lend is stored with an id - but the client shouldn't be allowed to set or change it - therefore the package 'AutoMapper' is used to prevent errors - that could happen when doing this task manually. - It takes the information from the client and maps it to the - corresponding internal object which then will be returned. - Furthermore it could be used to keep some attributes secret. - Another nice effect of this is that the implementation could be changed - while the interface could be retained by some minor changes in the code. - - DTO stands for Data Transfer Object - */ - var item = new Lend - { - Id = 256, - Customer = lend.Customer, - Returned = lend.Returned, - ItemId = lend.ItemId, - ReturnDate = lend.ReturnDate - }; - return Ok(item); - //return Ok(_mapper.Map(item)); - } - - //GET api/leihvorgang/{id} - [HttpGet("{id}")] - public ActionResult LendById(int id) - { - var lend = _repository.GetLendById(id); - return Ok(lend); - } - - //PATCH api/leihvorgang/{id} - [HttpPatch("{id}")] - public ActionResult LendPatchById(int id, JsonPatchDocument patchDocument) - { - var lend = _repository.GetLendById(id); - if (lend == null) - { - return NotFound(); - } - return Ok(); - } - } -} +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using AutoMapper; +using BuecherwurmAPI.Data; +using BuecherwurmAPI.DTOs; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.JsonPatch; +using Microsoft.Extensions.Logging; +using BuecherwurmAPI.Models; + +namespace BuecherwurmAPI.Controllers +{ + [Route("api/leihvorgang")] + [ApiController] + public class LendController : ControllerBase + { + private readonly ILendRepo _repository; + private readonly IMapper _mapper; + + public LendController(ILendRepo repository, IMapper mapper) + { + _repository = repository; + _mapper = mapper; + } + + //GET api/leihvorgang + [HttpGet] + public ActionResult> LendsGet() + { + return Ok(_repository.GetAllLends()); + } + + //POST api/leihvorgang + [HttpPost] + public ActionResult LendsPost(Lend lend) + { + /* + Internally a lend is stored with an id + but the client shouldn't be allowed to set or change it + therefore the package 'AutoMapper' is used to prevent errors + that could happen when doing this task manually. + It takes the information from the client and maps it to the + corresponding internal object which then will be returned. + Furthermore it could be used to keep some attributes secret. + Another nice effect of this is that the implementation could be changed + while the interface could be retained by some minor changes in the code. + + DTO stands for Data Transfer Object + */ + var item = new Lend + { + Id = 256, + Customer = lend.Customer, + Returned = lend.Returned, + ItemId = lend.ItemId, + ReturnDate = lend.ReturnDate + }; + return Ok(item); + //return Ok(_mapper.Map(item)); + } + + //GET api/leihvorgang/{id} + [HttpGet("{id}")] + public ActionResult LendById(int id) + { + var lend = _repository.GetLendById(id); + return Ok(lend); + } + + //PATCH api/leihvorgang/{id} + [HttpPatch("{id}")] + public ActionResult LendPatchById(int id, JsonPatchDocument patchDocument) + { + var lend = _repository.GetLendById(id); + if (lend == null) + { + return NotFound(); + } + return Ok(); + } + } +} diff --git a/Data/IItemRepo.cs b/Data/IItemRepo.cs new file mode 100644 index 0000000..307a65d --- /dev/null +++ b/Data/IItemRepo.cs @@ -0,0 +1,13 @@ +using System.Collections.Generic; +using BuecherwurmAPI.Models; + +namespace BuecherwurmAPI.Data +{ + public interface IItemRepo + { + IEnumerable GetAllItems(); + Item GetItemById(int id); + NewItem(Item item); + DeleteItem(int id); + } +} \ No newline at end of file diff --git a/Models/Lend.cs b/Models/Lend.cs index b740853..31abd2b 100644 --- a/Models/Lend.cs +++ b/Models/Lend.cs @@ -10,4 +10,4 @@ namespace BuecherwurmAPI.Models public string Customer { get; set; } public bool Returned { get; set; } } -} \ No newline at end of file +}