router.py

router
 avatar
unknown
python
a year ago
1.7 kB
15
Indexable
#router.py

from fastapi import APIRouter, HTTPException, Path, Depends
from config import SessionLocal
from sqlalchemy.orm import Session
from schemas import BookSchema, RequestBook, Response
import crud


router = APIRouter()


def get_db():
    db = SessionLocal()
    try:
        yield db
    finally:
        db.close()

@router.post("/create", response_model=dict)
async def create(request: RequestBook, db: Session = Depends(get_db)):
    crud.create_book(db, book=request.parameter)
    return {"code": "200", "status": "Ok", "message": "Book created successfully", "result": {}}

@router.get("/", response_model=dict)
async def get(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)):
    _book = crud.get_book(db, skip, limit)
    return {"code": "200", "status": "Ok", "message": "Success fetch all data", "result": _book}

@router.get("/{id}", response_model=dict)
async def get_by_id(id: int, db: Session = Depends(get_db)):
    _book = crud.get_book_by_id(db, id)
    return {"code": "200", "status": "Ok", "message": "Success get data", "result": _book}

@router.post("/update", response_model=dict)
async def update_book(request: RequestBook, db: Session = Depends(get_db)):
    _book = crud.update_book(db, book_id=request.parameter.id, title=request.parameter.title, description=request.parameter.description)
    return {"code": "200", "status": "Ok", "message": "Success update data", "result": _book}

@router.delete("/{id}", response_model=dict)
async def delete(id: int, db: Session = Depends(get_db)):
    crud.remove_book(db, book_id=id)
    return {"code": "200", "status": "Ok", "message": "Success delete data", "result": {}}
Editor is loading...
Leave a Comment