mirror of
https://gitlab.aachen.ccc.de/inventory/in.git
synced 2025-06-08 21:15:09 +02:00
initial commit
This commit is contained in:
commit
0961d0e47d
15 changed files with 564 additions and 0 deletions
47
main.py
Normal file
47
main.py
Normal file
|
@ -0,0 +1,47 @@
|
|||
from fastapi import Depends, FastAPI, Response
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
from sqlalchemy import event
|
||||
from sqlalchemy.orm import Session
|
||||
from sqlalchemy.engine import Engine
|
||||
|
||||
import crud
|
||||
from database import SessionLocal, engine
|
||||
from models import Base
|
||||
from schemas import Item
|
||||
|
||||
Base.metadata.create_all(bind=engine)
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
def get_db():
|
||||
db = SessionLocal()
|
||||
try:
|
||||
yield db
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
@event.listens_for(Engine, "connect")
|
||||
def _set_sqlite_pragma(conn, _):
|
||||
cursor = conn.cursor()
|
||||
cursor.execute("PRAGMA foreign_keys=ON;")
|
||||
cursor.close()
|
||||
|
||||
|
||||
@app.get("/api/items", response_model=dict[str, Item])
|
||||
async def list_items(db: Session = Depends(get_db)):
|
||||
items = crud.get_items(db)
|
||||
return {i.id:i for i in items}
|
||||
|
||||
|
||||
@app.put("/api/items/{id}")
|
||||
async def put_item(id: str, item: Item, db: Session = Depends(get_db)):
|
||||
if crud.put_item(db, id, item):
|
||||
return Response(b'', status_code=204)
|
||||
return Response(b'', status_code=201)
|
||||
|
||||
|
||||
@app.delete("/api/items/{id}", status_code=204)
|
||||
async def delete_item(id: str, db: Session = Depends(get_db)):
|
||||
crud.delete_item(db, id)
|
||||
|
||||
app.mount("/", StaticFiles(directory="static", html=True), name="static")
|
Loading…
Add table
Add a link
Reference in a new issue