Add get endpoint for states

This commit is contained in:
Backend IM Bot 2025-03-26 13:05:33 +00:00
parent 1a63e5aaf2
commit 0edebf0738

View File

@ -1,21 +1,18 @@
# Entity: Country
# Entity: State
from fastapi import APIRouter, HTTPException, status
from fastapi import APIRouter, Depends, HTTPException, status
from sqlalchemy.orm import Session
from typing import List
from core.models.country import Country
from core.schemas.country import CountrySchema
import httpx
from core.database import get_db
from core.models.state import State
from core.schemas.state import StateSchema
router = APIRouter()
@router.get("/states", response_model=List[CountrySchema], status_code=status.HTTP_200_OK)
async def get_countries():
"""Get list of countries from third party API"""
async with httpx.AsyncClient() as client:
response = await client.get("https://restcountries.com/v3.1/all")
if response.status_code != 200:
raise HTTPException(
status_code=status.HTTP_503_SERVICE_UNAVAILABLE,
detail="Unable to fetch countries from external API"
)
return response.json()
@router.get("/states", response_model=List[StateSchema], status_code=200)
async def get_states(
db: Session = Depends(get_db)
):
"""Get all states"""
states = db.query(State).all()
return states