Better integration of sqlite3 database
This commit is contained in:
@ -1,19 +1,38 @@
|
||||
from fastapi import APIRouter, HTTPException, status
|
||||
from typing import List, Optional
|
||||
from fastapi import APIRouter, HTTPException, status, Depends
|
||||
from sqlalchemy.orm import Session
|
||||
from typing import List
|
||||
import uuid
|
||||
from app.data.data import dewars, contacts, return_addresses
|
||||
from app.models import Dewar, ContactPerson, Address
|
||||
|
||||
from app.schemas import Dewar as DewarSchema, DewarCreate
|
||||
from app.models import Dewar as DewarModel
|
||||
from app.dependencies import get_db
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
@router.get("/", response_model=List[Dewar])
|
||||
async def get_dewars():
|
||||
return dewars
|
||||
@router.get("/", response_model=List[DewarSchema])
|
||||
async def get_dewars(db: Session = Depends(get_db)):
|
||||
return db.query(DewarModel).all()
|
||||
|
||||
@router.post("/", response_model=Dewar, status_code=status.HTTP_201_CREATED)
|
||||
async def create_dewar(dewar: Dewar) -> Dewar:
|
||||
@router.post("/", response_model=DewarSchema, status_code=status.HTTP_201_CREATED)
|
||||
async def create_dewar(dewar: DewarCreate, db: Session = Depends(get_db)) -> DewarSchema:
|
||||
dewar_id = f'DEWAR-{uuid.uuid4().hex[:8].upper()}'
|
||||
dewar.id = dewar_id
|
||||
dewars.append(dewar)
|
||||
return dewar
|
||||
|
||||
db_dewar = DewarModel(
|
||||
id=dewar_id,
|
||||
dewar_name=dewar.dewar_name,
|
||||
tracking_number=dewar.tracking_number,
|
||||
number_of_pucks=dewar.number_of_pucks,
|
||||
number_of_samples=dewar.number_of_samples,
|
||||
status=dewar.status,
|
||||
ready_date=dewar.ready_date,
|
||||
shipping_date=dewar.shipping_date,
|
||||
arrival_date=dewar.arrival_date,
|
||||
returning_date=dewar.returning_date,
|
||||
qrcode=dewar.qrcode,
|
||||
contact_person_id=dewar.contact_person_id,
|
||||
return_address_id=dewar.return_address_id
|
||||
)
|
||||
|
||||
db.add(db_dewar)
|
||||
db.commit()
|
||||
db.refresh(db_dewar)
|
||||
return db_dewar
|
Reference in New Issue
Block a user