32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
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[AddressSchema])
|
|
async def get_return_addresses(db: Session = Depends(get_db)):
|
|
return db.query(AddressModel).all()
|
|
|
|
@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."
|
|
)
|
|
|
|
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 |