Module supertokens_python.types
Expand source code
# Copyright (c) 2021, VRAI Labs and/or its affiliates. All rights reserved.
#
# This software is licensed under the Apache License, Version 2.0 (the
# "License") as published by the Apache Software Foundation.
#
# You may not use this file except in compliance with the License. You may
# obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from abc import ABC, abstractmethod
from typing import Any, Awaitable, Dict, List, TypeVar, Union
_T = TypeVar("_T")
class ThirdPartyInfo:
def __init__(self, third_party_user_id: str, third_party_id: str):
self.user_id = third_party_user_id
self.id = third_party_id
class User:
def __init__(
self,
recipe_id: str,
user_id: str,
time_joined: int,
email: Union[str, None],
phone_number: Union[str, None],
third_party_info: Union[ThirdPartyInfo, None],
):
self.recipe_id = recipe_id
self.user_id = user_id
self.email = email
self.time_joined = time_joined
self.third_party_info = third_party_info
self.phone_number = phone_number
def to_json(self) -> Dict[str, Any]:
return {
"recipeId": self.recipe_id,
"user": {
"id": self.user_id,
"email": self.email,
"timeJoined": self.time_joined,
"thirdParty": None
if self.third_party_info is None
else self.third_party_info.__dict__,
"phoneNumber": self.phone_number,
},
}
class UsersResponse:
def __init__(self, users: List[User], next_pagination_token: Union[str, None]):
self.users: List[User] = users
self.next_pagination_token: Union[str, None] = next_pagination_token
class APIResponse(ABC):
@abstractmethod
def to_json(self) -> Dict[str, Any]:
pass
class GeneralErrorResponse(APIResponse):
def __init__(self, message: str):
self.status = "GENERAL_ERROR"
self.message = message
def to_json(self) -> Dict[str, Any]:
return {"status": self.status, "message": self.message}
MaybeAwaitable = Union[Awaitable[_T], _T]
Classes
class APIResponse
-
Helper class that provides a standard way to create an ABC using inheritance.
Expand source code
class APIResponse(ABC): @abstractmethod def to_json(self) -> Dict[str, Any]: pass
Ancestors
- abc.ABC
Subclasses
- AnalyticsResponse
- DashboardUsersGetResponse
- FeatureNotEnabledError
- SearchTagsOK
- SignOutOK
- UserCountGetAPIResponse
- UserDeleteAPIResponse
- UserEmailVerifyGetAPIResponse
- UserEmailVerifyPutAPIResponse
- UserEmailVerifyTokenPostAPIEmailAlreadyVerifiedErrorResponse
- UserEmailVerifyTokenPostAPIOkResponse
- UserGetAPINoUserFoundError
- UserGetAPIOkResponse
- UserGetAPIRecipeNotInitialisedError
- UserMetadataGetAPIOkResponse
- UserMetadataPutAPIResponse
- UserPasswordPutAPIInvalidPasswordErrorResponse
- UserPasswordPutAPIResponse
- UserPutAPIEmailAlreadyExistsErrorResponse
- UserPutAPIInvalidEmailErrorResponse
- UserPutAPIInvalidPhoneErrorResponse
- UserPutAPIOkResponse
- UserPutPhoneAlreadyExistsAPIResponse
- UserSessionsGetAPIResponse
- UserSessionsPostAPIResponse
- EmailExistsGetOkResult
- GeneratePasswordResetTokenPostOkResult
- PasswordResetPostInvalidTokenResponse
- PasswordResetPostOkResult
- SignInPostOkResult
- SignInPostWrongCredentialsError
- SignUpPostEmailAlreadyExistsError
- SignUpPostOkResult
- EmailVerifyPostInvalidTokenError
- EmailVerifyPostOkResult
- GenerateEmailVerifyTokenPostEmailAlreadyVerifiedError
- GenerateEmailVerifyTokenPostOkResult
- IsEmailVerifiedGetOkResult
- JWKSGetResponse
- OpenIdDiscoveryConfigurationGetResponse
- ConsumeCodePostExpiredUserInputCodeError
- ConsumeCodePostIncorrectUserInputCodeError
- ConsumeCodePostOkResult
- ConsumeCodePostRestartFlowError
- CreateCodePostOkResult
- EmailExistsGetOkResult
- PhoneNumberExistsGetOkResult
- ResendCodePostOkResult
- ResendCodePostRestartFlowError
- SignOutOkayResponse
- AuthorisationUrlGetOkResult
- SignInUpPostNoEmailGivenByProviderResponse
- SignInUpPostOkResult
- EmailPasswordSignInPostOkResult
- EmailPasswordSignUpPostOkResult
- ThirdPartySignInUpPostOkResult
- ConsumeCodePostOkResult
- ThirdPartySignInUpPostOkResult
- GeneralErrorResponse
Methods
def to_json(self) ‑> Dict[str, Any]
-
Expand source code
@abstractmethod def to_json(self) -> Dict[str, Any]: pass
class GeneralErrorResponse (message: str)
-
Helper class that provides a standard way to create an ABC using inheritance.
Expand source code
class GeneralErrorResponse(APIResponse): def __init__(self, message: str): self.status = "GENERAL_ERROR" self.message = message def to_json(self) -> Dict[str, Any]: return {"status": self.status, "message": self.message}
Ancestors
- APIResponse
- abc.ABC
Methods
def to_json(self) ‑> Dict[str, Any]
-
Expand source code
def to_json(self) -> Dict[str, Any]: return {"status": self.status, "message": self.message}
class ThirdPartyInfo (third_party_user_id: str, third_party_id: str)
-
Expand source code
class ThirdPartyInfo: def __init__(self, third_party_user_id: str, third_party_id: str): self.user_id = third_party_user_id self.id = third_party_id
class User (recipe_id: str, user_id: str, time_joined: int, email: Optional[None], phone_number: Optional[None], third_party_info: Optional[ThirdPartyInfo])
-
Expand source code
class User: def __init__( self, recipe_id: str, user_id: str, time_joined: int, email: Union[str, None], phone_number: Union[str, None], third_party_info: Union[ThirdPartyInfo, None], ): self.recipe_id = recipe_id self.user_id = user_id self.email = email self.time_joined = time_joined self.third_party_info = third_party_info self.phone_number = phone_number def to_json(self) -> Dict[str, Any]: return { "recipeId": self.recipe_id, "user": { "id": self.user_id, "email": self.email, "timeJoined": self.time_joined, "thirdParty": None if self.third_party_info is None else self.third_party_info.__dict__, "phoneNumber": self.phone_number, }, }
Methods
def to_json(self) ‑> Dict[str, Any]
-
Expand source code
def to_json(self) -> Dict[str, Any]: return { "recipeId": self.recipe_id, "user": { "id": self.user_id, "email": self.email, "timeJoined": self.time_joined, "thirdParty": None if self.third_party_info is None else self.third_party_info.__dict__, "phoneNumber": self.phone_number, }, }
class UsersResponse (users: List[User], next_pagination_token: Optional[None])
-
Expand source code
class UsersResponse: def __init__(self, users: List[User], next_pagination_token: Union[str, None]): self.users: List[User] = users self.next_pagination_token: Union[str, None] = next_pagination_token