Create and use get_session, add_and_refresh function
This commit is contained in:
@@ -1,28 +1,18 @@
|
||||
from fastapi import APIRouter, Depends, HTTPException
|
||||
from sqlmodel import Session
|
||||
from sqlmodel import Session, select
|
||||
from typing import List
|
||||
|
||||
from ..model.models import Card, AccessAuthorizationDB, AccessAuthorizationCreate, AccessAuthorizationResponse
|
||||
from ..services.database import engine
|
||||
from ..model.models import Card
|
||||
from ..services.database import engine, get_session, add_and_refresh
|
||||
import uuid as gen_uuid
|
||||
|
||||
card_router = APIRouter(prefix="/cards", tags=["Card"])
|
||||
|
||||
def get_session():
|
||||
with Session(engine) as db:
|
||||
yield db
|
||||
|
||||
def register_card(group_id: int):
|
||||
uuid = str(gen_uuid.uuid4()) #hier code für mifare registrierung
|
||||
card = Card(group_id=group_id, uuid=uuid)
|
||||
return card
|
||||
|
||||
def add_and_refresh(db: Session, obj):
|
||||
db.add(obj)
|
||||
db.commit()
|
||||
db.refresh(obj)
|
||||
return obj
|
||||
|
||||
@card_router.post("/{group_id}", response_model=Card)
|
||||
def add_card(*, db: Session = Depends(get_session), group_id: int):
|
||||
card = register_card(group_id)
|
||||
@@ -37,7 +27,10 @@ def del_card(*, db: Session = Depends(get_session), card_id: int):
|
||||
db.commit()
|
||||
return {"message": "Card deleted successfully"}
|
||||
##TBH not a big fan of having creation using group_id but deletion using card_id
|
||||
|
||||
@card_router.get("/{group_id}", response_model=List[Card])
|
||||
def get_cards(*, db: Session = Depends(get_session), group_id: int):
|
||||
cards = db.exec(select(Card).where(Card.group_id == group_id)).all()
|
||||
return cards
|
||||
|
||||
|
||||
#TODO:
|
||||
|
||||
@@ -3,20 +3,10 @@ from sqlmodel import Session, select
|
||||
from typing import List
|
||||
|
||||
from ..model.models import GroupDB, GroupResponse, GroupCreate
|
||||
from ..services.database import engine
|
||||
from ..services.database import engine, get_session, add_and_refresh
|
||||
|
||||
group_router = APIRouter(prefix="/groups", tags=["Group"])
|
||||
|
||||
def get_session():
|
||||
with Session(engine) as db:
|
||||
yield db
|
||||
|
||||
def add_and_refresh(db: Session, obj):
|
||||
db.add(obj)
|
||||
db.commit()
|
||||
db.refresh(obj)
|
||||
return obj
|
||||
|
||||
@group_router.get("/", response_model=List[GroupResponse])
|
||||
def get_groups(*, db: Session = Depends(get_session)):
|
||||
groups = db.exec(select(GroupDB)).all()
|
||||
@@ -25,8 +15,7 @@ def get_groups(*, db: Session = Depends(get_session)):
|
||||
@group_router.post("/", response_model=GroupResponse)
|
||||
def create_group(*, db: Session = Depends(get_session), group: GroupCreate):
|
||||
db_group = GroupDB.model_validate(group)
|
||||
add_and_refresh(db, db_group)
|
||||
return db_group
|
||||
return add_and_refresh(db, db_group)
|
||||
|
||||
@group_router.delete("/{group_id}")
|
||||
def delete_group(*, db: Session = Depends(get_session), group_id: int):
|
||||
|
||||
@@ -3,22 +3,15 @@ from sqlmodel import Session, select
|
||||
from typing import List
|
||||
|
||||
from ..model.models import UserResponse, UserCreate, UserDB, UserUpdate
|
||||
from ..services.database import engine
|
||||
from ..services.database import engine, get_session, add_and_refresh
|
||||
|
||||
user_router = APIRouter(tags=["Users"])
|
||||
|
||||
def get_session():
|
||||
with Session(engine) as db:
|
||||
yield db
|
||||
|
||||
@user_router.post("/users/", response_model=UserResponse)
|
||||
def create_user(*, db: Session = Depends(get_session), user: UserCreate):
|
||||
print("creating user with data ", user)
|
||||
db_user = UserDB.model_validate(user)
|
||||
db.add(db_user)
|
||||
db.commit()
|
||||
db.refresh(db_user)
|
||||
return db_user
|
||||
return add_and_refresh(db, db_user)
|
||||
|
||||
@user_router.get("/users/", response_model=List[UserResponse])
|
||||
def read_users(*, db: Session = Depends(get_session)):
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from sqlmodel import create_engine, SQLModel
|
||||
from sqlmodel import create_engine, SQLModel, Session
|
||||
|
||||
from ..model.models import Base
|
||||
|
||||
@@ -7,4 +7,14 @@ SQLALCHEMY_DATABASE_URL = "sqlite:///./gatekeeper.db"
|
||||
engine = create_engine(SQLALCHEMY_DATABASE_URL)
|
||||
|
||||
def create_db_and_tables():
|
||||
SQLModel.metadata.create_all(engine)
|
||||
SQLModel.metadata.create_all(engine)
|
||||
|
||||
def get_session():
|
||||
with Session(engine) as db:
|
||||
yield db
|
||||
|
||||
def add_and_refresh(db: Session, obj):
|
||||
db.add(obj)
|
||||
db.commit()
|
||||
db.refresh(obj)
|
||||
return obj
|
||||
Reference in New Issue
Block a user