items.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # -*- coding: utf-8 -*-
  2. from datetime import datetime, time, timedelta
  3. from typing import Optional
  4. from uuid import UUID
  5. from fastapi import APIRouter, HTTPException, Path, Query, Body
  6. router = APIRouter()
  7. @router.get('/{item_id}')
  8. async def read_items(
  9. item_id: int = Path(..., title='The ID of the item to get'),
  10. q: Optional[str] = Query(None, alias='item-query'),
  11. ):
  12. results = {'item_id': item_id}
  13. if q:
  14. results.update({'q': q})
  15. return results
  16. @router.put('/{item_id}')
  17. async def update_item(
  18. item_id: UUID,
  19. start_datetime: Optional[datetime] = Body(None),
  20. end_datetime: Optional[datetime] = Body(None),
  21. repeat_at: Optional[time] = Body(None),
  22. process_after: Optional[timedelta] = Body(None),
  23. ):
  24. start_process = start_datetime + process_after
  25. duration = end_datetime - start_process
  26. return {
  27. "item_id": item_id,
  28. "start_datetime": start_datetime,
  29. "end_datetime": end_datetime,
  30. "repeat_at": repeat_at,
  31. "process_after": process_after,
  32. "start_process": start_process,
  33. "duration": duration,
  34. }