27 lines
882 B
Python
27 lines
882 B
Python
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
|