from fastapi import APIRouter, Depends from fooder.context import Context, AuthContextDependency from fooder.controller.user_settings import UserSettingsController from fooder.model.user_settings import UserSettingsModel, UserSettingsUpdateModel router = APIRouter(tags=["user_settings"]) _auth_ctx = AuthContextDependency() @router.get("", response_model=UserSettingsModel) async def get_user_settings( ctx: Context = Depends(_auth_ctx), ): return await ctx.repo.user_settings.get_by_user_id(ctx.user.id) @router.patch("", response_model=UserSettingsModel) async def update_user_settings( data: UserSettingsUpdateModel, ctx: Context = Depends(_auth_ctx), ): async with ctx.repo.transaction(): settings = await ctx.repo.user_settings.get_by_user_id(ctx.user.id) await UserSettingsController(ctx, settings).update(data) return settings