mirror of
https://github.com/flibusta-apps/telegram_files_cache_server.git
synced 2026-03-03 15:10:48 +01:00
Init
This commit is contained in:
26
src/core/app.py
Normal file
26
src/core/app.py
Normal file
@@ -0,0 +1,26 @@
|
||||
from fastapi import FastAPI
|
||||
|
||||
from core.db import database
|
||||
from app.views import router
|
||||
|
||||
|
||||
def start_app() -> FastAPI:
|
||||
app = FastAPI()
|
||||
|
||||
app.state.database = database
|
||||
|
||||
app.include_router(router)
|
||||
|
||||
@app.on_event('startup')
|
||||
async def startup() -> None:
|
||||
database_ = app.state.database
|
||||
if not database_.is_connected:
|
||||
await database_.connect()
|
||||
|
||||
@app.on_event('shutdown')
|
||||
async def shutdown() -> None:
|
||||
database_ = app.state.database
|
||||
if database_.is_connected:
|
||||
await database_.disconnect()
|
||||
|
||||
return app
|
||||
4
src/core/auth.py
Normal file
4
src/core/auth.py
Normal file
@@ -0,0 +1,4 @@
|
||||
from fastapi.security import APIKeyHeader
|
||||
|
||||
|
||||
default_security = APIKeyHeader(name="Authorization")
|
||||
23
src/core/config.py
Normal file
23
src/core/config.py
Normal file
@@ -0,0 +1,23 @@
|
||||
from pydantic import BaseSettings
|
||||
|
||||
|
||||
class EnvConfig(BaseSettings):
|
||||
API_KEY: str
|
||||
|
||||
POSTGRES_USER: str
|
||||
POSTGRES_PASSWORD: str
|
||||
POSTGRES_HOST: str
|
||||
POSTGRES_PORT: int
|
||||
POSTGRES_DB: str
|
||||
|
||||
DOWNLOADER_API_KEY: str
|
||||
DOWNLOADER_URL: str
|
||||
|
||||
LIBRARY_API_KEY: str
|
||||
LIBRARY_URL: str
|
||||
|
||||
FILES_SERVER_API_KEY: str
|
||||
FILES_SERVER_URL: str
|
||||
|
||||
|
||||
env_config = EnvConfig()
|
||||
15
src/core/db.py
Normal file
15
src/core/db.py
Normal file
@@ -0,0 +1,15 @@
|
||||
from urllib.parse import quote
|
||||
from databases import Database
|
||||
|
||||
from sqlalchemy import MetaData
|
||||
|
||||
from core.config import env_config
|
||||
|
||||
|
||||
DATABASE_URL = (
|
||||
f"postgresql://{env_config.POSTGRES_USER}:{quote(env_config.POSTGRES_PASSWORD)}@"
|
||||
f"{env_config.POSTGRES_HOST}:{env_config.POSTGRES_PORT}/{env_config.POSTGRES_DB}"
|
||||
)
|
||||
|
||||
metadata = MetaData()
|
||||
database = Database(DATABASE_URL)
|
||||
Reference in New Issue
Block a user