apps-l7cal6/endpoints/whatsapp.get.py
2025-03-25 13:35:45 +00:00

53 lines
1.4 KiB
Python

from fastapi import APIRouter, HTTPException
from sqlalchemy import Column, String, Integer
from sqlalchemy.ext.declarative import declarative_base
from typing import List
Base = declarative_base()
class Country(Base):
__tablename__ = "countries"
id = Column(Integer, primary_key=True, index=True)
name = Column(String, unique=True, index=True)
code = Column(String, unique=True)
phone_code = Column(String)
router = APIRouter()
@router.get("/whatsapp")
async def get_countries() -> List[dict]:
"""Get list of countries with phone codes"""
countries = [
{"name": "United States", "code": "US", "phone_code": "+1"},
{"name": "United Kingdom", "code": "GB", "phone_code": "+44"},
{"name": "India", "code": "IN", "phone_code": "+91"}
]
return {
"method": "GET",
"_verb": "get",
"countries": countries,
"total": len(countries)
}
# Migration file
"""
from alembic import op
import sqlalchemy as sa
def upgrade():
op.create_table(
'countries',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('name', sa.String(), nullable=False),
sa.Column('code', sa.String(), nullable=False),
sa.Column('phone_code', sa.String(), nullable=False),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('name'),
sa.UniqueConstraint('code')
)
def downgrade():
op.drop_table('countries')
"""