From 900637ac667a8aaa79a94c043dea69b1888c5534 Mon Sep 17 00:00:00 2001 From: HombreLaser Date: Thu, 15 Sep 2022 17:03:29 -0500 Subject: AƱadir controlador de Books MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Controllers/BooksController.cs | 123 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 Controllers/BooksController.cs diff --git a/Controllers/BooksController.cs b/Controllers/BooksController.cs new file mode 100644 index 0000000..5eeaa07 --- /dev/null +++ b/Controllers/BooksController.cs @@ -0,0 +1,123 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using LibraryAPI.Models; + +namespace LibraryAPI.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class BooksController : ControllerBase + { + private readonly LibraryContext _context; + + public BooksController(LibraryContext context) + { + _context = context; + } + + // GET: api/Books + [HttpGet] + public async Task>> GetBooks() + { + if (_context.Books == null) + { + return NotFound(); + } + return await _context.Books.ToListAsync(); + } + + // GET: api/Books/5 + [HttpGet("{id}")] + public async Task> GetBook(long id) + { + if (_context.Books == null) + { + return NotFound(); + } + var book = await _context.Books.FindAsync(id); + + if (book == null) + { + return NotFound(); + } + + return book; + } + + // PUT: api/Books/5 + // To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754 + [HttpPut("{id}")] + public async Task PutBook(long id, Book book) + { + if (id != book.Id) + { + return BadRequest(); + } + + _context.Entry(book).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!BookExists(id)) + { + return NotFound(); + } + else + { + throw; + } + } + + return NoContent(); + } + + // POST: api/Books + // To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754 + [HttpPost] + public async Task> PostBook(Book book) + { + if (_context.Books == null) + { + return Problem("Entity set 'LibraryContext.Books' is null."); + } + _context.Books.Add(book); + await _context.SaveChangesAsync(); + + return CreatedAtAction("GetBook", new { id = book.Id }, book); + } + + // DELETE: api/Books/5 + [HttpDelete("{id}")] + public async Task DeleteBook(long id) + { + if (_context.Books == null) + { + return NotFound(); + } + var book = await _context.Books.FindAsync(id); + if (book == null) + { + return NotFound(); + } + + _context.Books.Remove(book); + await _context.SaveChangesAsync(); + + return NoContent(); + } + + private bool BookExists(long id) + { + return (_context.Books?.Any(e => e.Id == id)).GetValueOrDefault(); + } + } +} -- cgit v1.2.3