feat: add migrations, api bot endpoints and revamp the whole twitch backend by making use of twitchio

This commit is contained in:
cătălin 2024-12-17 17:55:02 +01:00
commit 4c534de47b
No known key found for this signature in database
45 changed files with 1718 additions and 1109 deletions

View file

@ -0,0 +1,48 @@
from litestar import Request
from litestar.exceptions import HTTPException
from src.huesoporro.infra.authenticator import TwitchAuthenticator
from src.huesoporro.infra.db import Database
from src.huesoporro.models import User
from src.huesoporro.settings import Settings
from src.huesoporro.svc.authenticate import CodeAuthenticatorSvc
from src.huesoporro.svc.get_chatbot_settings import ChatbotSettingsGetterSvc
from src.huesoporro.svc.store_settings import ChatbotSettingsStorerSvc
def get_settings() -> Settings:
return Settings.get()
def get_authenticator(s: Settings) -> TwitchAuthenticator:
return TwitchAuthenticator(s=s)
def get_db(s: Settings):
return Database(s=s)
async def authenticate(request: Request) -> User:
token = request.query_params.get("huesoporro_token")
if token:
return User.decode(token)
cookies = request.cookies.get("huesoporroAuth")
if cookies:
return User.decode(cookies)
raise HTTPException(status_code=401, detail="Unauthorized")
async def get_code_authenticator_svc(
a: TwitchAuthenticator, db: Database
) -> CodeAuthenticatorSvc:
return CodeAuthenticatorSvc(authenticator=a, db=db)
async def get_chatbot_settings_svc(db: Database):
return ChatbotSettingsGetterSvc(db=db)
async def store_chatbot_settings_svc(db: Database):
return ChatbotSettingsStorerSvc(db=db)