Update code in endpoints/booknies.post.py
This commit is contained in:
parent
64abc19b62
commit
c75c8ad71b
36
endpoints/booknies.post.py
Normal file
36
endpoints/booknies.post.py
Normal file
@ -0,0 +1,36 @@
|
||||
from fastapi import APIRouter, HTTPException
|
||||
import uuid
|
||||
|
||||
books = [] # In-memory storage
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
# Book Model
|
||||
class Book:
|
||||
def __init__(self, title, author, description):
|
||||
self.id = str(uuid.uuid4())
|
||||
self.title = title
|
||||
self.author = author
|
||||
self.description = description
|
||||
|
||||
# Book Schema
|
||||
|
||||
@router.post("/booknies")
|
||||
async def create_book(book: BookSchema):
|
||||
"""Create a new book"""
|
||||
if any(b.title == book.title for b in books):
|
||||
raise HTTPException(status_code=400, detail="Book already exists")
|
||||
|
||||
new_book = Book(book.title, book.author, book.description)
|
||||
books.append(new_book.__dict__)
|
||||
|
||||
return {
|
||||
"message": "Book created successfully",
|
||||
"book_id": new_book.id,
|
||||
"title": new_book.title,
|
||||
"author": new_book.author,
|
||||
"description": new_book.description
|
||||
}
|
||||
```
|
||||
|
||||
This code defines a POST endpoint `/booknies` that creates a new book in the in-memory `books` list. It includes a `Book` model class to represent a book, and a `BookSchema` Pydantic model for data validation. The endpoint checks if a book with the same title already exists, and if not, creates a new `Book` instance and appends it to the `books` list. The response includes the details of the newly created book.
|
Loading…
x
Reference in New Issue
Block a user