31 lines
859 B
Python
31 lines
859 B
Python
from pydantic import BaseModel, EmailStr, field_serializer
|
|
from typing import Optional
|
|
import datetime
|
|
|
|
class Token(BaseModel):
|
|
access_token: str
|
|
refresh_token: str
|
|
token_type: str
|
|
expires_at: datetime.datetime
|
|
refresh_expires_at: datetime.datetime
|
|
|
|
@field_serializer("expires_at", when_used="json")
|
|
def _serialize_expires_at(self, dt: datetime.datetime):
|
|
return int(dt.timestamp() * 1000) if dt else None
|
|
|
|
@field_serializer("refresh_expires_at", when_used="json")
|
|
def _serialize_refresh_expires_at(self, dt: datetime.datetime):
|
|
return int(dt.timestamp() * 1000) if dt else None
|
|
|
|
class TokenData(BaseModel):
|
|
userId: Optional[str] = None
|
|
|
|
class RefreshTokenRequest(BaseModel):
|
|
refresh_token: str
|
|
|
|
class TokenRequest(BaseModel):
|
|
email: EmailStr
|
|
password: str
|
|
invite: Optional[str] = None
|
|
|