Better integration of sqlite3 database
This commit is contained in:
@@ -1,26 +1,32 @@
|
||||
from fastapi import APIRouter, HTTPException, status
|
||||
from typing import List, Optional
|
||||
from app.data.data import return_addresses
|
||||
from app.models import Address # Import the Address model
|
||||
|
||||
from fastapi import APIRouter, HTTPException, status, Depends
|
||||
from sqlalchemy.orm import Session
|
||||
from typing import List
|
||||
from app.schemas import Address as AddressSchema, AddressCreate
|
||||
from app.models import Address as AddressModel
|
||||
from app.dependencies import get_db
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
@router.get("/", response_model=List[Address])
|
||||
async def get_return_addresses():
|
||||
return return_addresses
|
||||
@router.get("/", response_model=List[AddressSchema])
|
||||
async def get_return_addresses(db: Session = Depends(get_db)):
|
||||
return db.query(AddressModel).all()
|
||||
|
||||
@router.post("/", response_model=Address, status_code=status.HTTP_201_CREATED)
|
||||
async def create_return_address(address: Address):
|
||||
if any(a.city == address.city for a in return_addresses):
|
||||
@router.post("/", response_model=AddressSchema, status_code=status.HTTP_201_CREATED)
|
||||
async def create_return_address(address: AddressCreate, db: Session = Depends(get_db)):
|
||||
if db.query(AddressModel).filter(AddressModel.city == address.city).first():
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail="Address in this city already exists."
|
||||
)
|
||||
if return_addresses:
|
||||
max_id = max(a.id for a in return_addresses)
|
||||
address.id = max_id + 1 if address.id is None else address.id
|
||||
else:
|
||||
address.id = 1 if address.id is None else address.id
|
||||
return_addresses.append(address)
|
||||
return address
|
||||
|
||||
db_address = AddressModel(
|
||||
street=address.street,
|
||||
city=address.city,
|
||||
zipcode=address.zipcode,
|
||||
country=address.country
|
||||
)
|
||||
|
||||
db.add(db_address)
|
||||
db.commit()
|
||||
db.refresh(db_address)
|
||||
return db_address
|
||||
Reference in New Issue
Block a user