feat: connect backend with the frontend
This commit is contained in:
@@ -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()
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user