feat: connect backend with the frontend

This commit is contained in:
2025-07-23 15:02:32 +00:00
parent 7abed7e634
commit 98369ef531
11 changed files with 54 additions and 20 deletions

View File

@@ -1,15 +1,20 @@
from pydantic_settings import BaseSettings
from typing import Literal
from typing import Literal, List
class Settings(BaseSettings):
database_url: str
environment: Literal["dev", "stage", "prod"]
hashids_salt: str
encoder_alphabet: str
allow_origins: str
class Config:
env_file = ".env"
env_file_encoding = "utf-8"
def get_allow_origins(self) -> List[str]:
return [origin.strip() for origin in self.allow_origins.split(",")]
# Singleton instance of settings
settings = Settings()

View File

@@ -1,4 +1,5 @@
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from backend.config import settings
from backend.db import database, Base, engine
@@ -6,6 +7,14 @@ from backend.routes import shortener_router
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=settings.get_allow_origins(),
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.on_event("startup")
async def startup():
await database.connect()