From be3df52b4fa45e460470d553771ca8920c8d2e08 Mon Sep 17 00:00:00 2001 From: "Kafonek, Matt" Date: Wed, 7 Apr 2021 18:15:26 +0000 Subject: [PATCH] Add Pydantic models for Hub objects and exceptions --- examples/service-fastapi/app/models.py | 49 ++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 examples/service-fastapi/app/models.py diff --git a/examples/service-fastapi/app/models.py b/examples/service-fastapi/app/models.py new file mode 100644 index 00000000..70d12ece --- /dev/null +++ b/examples/service-fastapi/app/models.py @@ -0,0 +1,49 @@ +from datetime import datetime +from typing import Any, List, Optional + +from pydantic import BaseModel + + +# https://jupyterhub.readthedocs.io/en/stable/_static/rest-api/index.html +class Group(BaseModel): + name: str + users: List[str] + + +class Server(BaseModel): + name: str + ready: bool + pending: Optional[str] + url: str + progress_url: str + started: datetime + last_activity: datetime + state: Optional[Any] + user_options: Optional[Any] + + +class User(BaseModel): + name: str + admin: bool + groups: List[Group] + server: Optional[str] + pending: Optional[str] + last_activity: datetime + servers: Optional[List[Server]] + + +# https://stackoverflow.com/questions/64501193/fastapi-how-to-use-httpexception-in-responses +class AuthorizationError(BaseModel): + detail: str + + +class HubResponse(BaseModel): + msg: str + request_url: str + token: str + response_code: int + hub_response: dict + + +class HubApiError(BaseModel): + detail: HubResponse