Source code for db.crud.allergies
"""All DB functions for the Allergie table"""
from typing import List
import sqlalchemy
from sqlalchemy.orm import Session
import schemes
from db.base import Allergie
from schemes.exceptions import DuplicateEntry
from tools.my_logging import logger
[docs]def create_allergie(db: Session, allergie: schemes.Allergies) -> Allergie:
"""Add a single allergie to the DB to select later
Args:
db (Session): Session to the db
allergie (scheme_allergie.Allergie): Allergie to be added
Raises:
DuplicateEntry: Duplicate Primary Key
Returns:
Allergie: return the db Allergie if success
"""
try:
db_allergie = Allergie(name=allergie.value)
db.add(db_allergie)
db.commit()
db.refresh(db_allergie)
logger.info("Added allergie to db... name:%s", db_allergie.name)
return db_allergie
except sqlalchemy.exc.IntegrityError as error:
raise DuplicateEntry(f"Allergie {allergie.value} already exist in the Database") from error
[docs]def get_all_allergies(db: Session) -> List[Allergie]:
"""Get all Allergies in the DB
Args:
db (Session): Session to the DB
Returns:
List[Allergie]: List of Allergies
"""
return db.query(Allergie).all()