Add iOS method for sync
This commit is contained in:
parent
55a7168fcc
commit
93275d19b5
1 changed files with 21 additions and 1 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, HTTPException
|
from fastapi import APIRouter, Depends, HTTPException, status
|
||||||
|
|
||||||
from app.api.deps import (
|
from app.api.deps import (
|
||||||
get_current_user,
|
get_current_user,
|
||||||
|
|
@ -70,6 +70,26 @@ async def get_training(
|
||||||
return training
|
return training
|
||||||
|
|
||||||
|
|
||||||
|
@router.post("/", response_model=TrainingDTO, status_code=status.HTTP_201_CREATED)
|
||||||
|
async def create_training(
|
||||||
|
payload: TrainingUpdate,
|
||||||
|
user: UserDTO = Depends(get_current_user),
|
||||||
|
repository: TrainingRepository = Depends(get_training_repository),
|
||||||
|
user_repository: UserRepository = Depends(get_user_repository),
|
||||||
|
):
|
||||||
|
"""Create a training. Only a superuser may create it for another trainee."""
|
||||||
|
if payload.trainee_id != user.id:
|
||||||
|
if not user.is_superuser:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=403, detail="Only a superuser can create a training for another user"
|
||||||
|
)
|
||||||
|
await _check_participant(user_repository, payload.trainee_id, UserRole.trainee)
|
||||||
|
if payload.trainer_id is not None:
|
||||||
|
await _check_participant(user_repository, payload.trainer_id, UserRole.trainer)
|
||||||
|
training_id = await repository.save(TrainingDTO.model_validate(payload.model_dump()))
|
||||||
|
return await repository.get(training_id)
|
||||||
|
|
||||||
|
|
||||||
@router.put("/{training_id}/", response_model=TrainingDTO)
|
@router.put("/{training_id}/", response_model=TrainingDTO)
|
||||||
async def update_training(
|
async def update_training(
|
||||||
training_id: int,
|
training_id: int,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue