summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Controllers/BooksController.cs123
1 files changed, 123 insertions, 0 deletions
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<ActionResult<IEnumerable<Book>>> GetBooks()
+ {
+ if (_context.Books == null)
+ {
+ return NotFound();
+ }
+ return await _context.Books.ToListAsync();
+ }
+
+ // GET: api/Books/5
+ [HttpGet("{id}")]
+ public async Task<ActionResult<Book>> 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<IActionResult> 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<ActionResult<Book>> 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<IActionResult> 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();
+ }
+ }
+}