| | from fastapi import Depends |
| | from cbh.api.account.models import AccountModel |
| | from cbh.api.availability.db_requests import update_availability_obj |
| | from cbh.api.availability.schemas import ( |
| | UpdateAvailabilityRequest, |
| | ) |
| | from cbh.api.common.db_requests import get_obj_by_id |
| | from cbh.core.security import PermissionDependency |
| | from cbh.api.account.dto import AccountType |
| | from cbh.core.wrappers import CbhResponseWrapper |
| | from cbh.api.availability.models import AvailabilityModel |
| | from cbh.api.availability import availability_router |
| |
|
| |
|
| | @availability_router.get("") |
| | async def get_own_availability( |
| | account: AccountModel = Depends(PermissionDependency([AccountType.COACH])), |
| | ) -> CbhResponseWrapper[AvailabilityModel]: |
| |
|
| | availability = await get_obj_by_id( |
| | AvailabilityModel, None, additional_filter={"coach.id": account.id} |
| | ) |
| | return CbhResponseWrapper(data=availability) |
| |
|
| |
|
| | @availability_router.get("/{coachId}") |
| | async def get_availability( |
| | coachId: str, |
| | _: AccountModel = Depends( |
| | PermissionDependency([AccountType.ADMIN, AccountType.USER]) |
| | ), |
| | ) -> CbhResponseWrapper[AvailabilityModel]: |
| | """ |
| | Get availability by coach ID. |
| | """ |
| | availability = await get_obj_by_id( |
| | AvailabilityModel, None, additional_filter={"coach.id": coachId} |
| | ) |
| | return CbhResponseWrapper(data=availability) |
| |
|
| |
|
| | @availability_router.put("") |
| | async def update_own_availability( |
| | availability: UpdateAvailabilityRequest, |
| | account: AccountModel = Depends(PermissionDependency([AccountType.COACH])), |
| | ) -> CbhResponseWrapper[AvailabilityModel]: |
| | """ |
| | Update own availability. |
| | """ |
| | availability = await update_availability_obj(availability, account.id) |
| | return CbhResponseWrapper(data=availability) |
| |
|
| |
|
| | @availability_router.put("/{coachId}") |
| | async def update_availability( |
| | coachId: str, |
| | availability: UpdateAvailabilityRequest, |
| | _: AccountModel = Depends(PermissionDependency([AccountType.ADMIN])), |
| | ) -> CbhResponseWrapper[AvailabilityModel]: |
| | """ |
| | Update availability. |
| | """ |
| | availability = await update_availability_obj(availability, coachId) |
| | return CbhResponseWrapper(data=availability) |
| |
|