34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
from dataclasses import dataclass, field
|
|
from typing import List, Optional
|
|
|
|
from .base import BaseModel
|
|
|
|
|
|
@dataclass
|
|
class AccessToken(BaseModel):
|
|
"""
|
|
A class representing for access token.
|
|
Refer: https://developers.google.com/youtube/v3/guides/auth/server-side-web-apps#exchange-authorization-code
|
|
"""
|
|
|
|
access_token: Optional[str] = field(default=None)
|
|
expires_in: Optional[int] = field(default=None)
|
|
refresh_token: Optional[str] = field(default=None, repr=False)
|
|
scope: Optional[List[str]] = field(default=None, repr=False)
|
|
token_type: Optional[str] = field(default=None)
|
|
expires_at: Optional[float] = field(default=None, repr=False)
|
|
|
|
|
|
@dataclass
|
|
class UserProfile(BaseModel):
|
|
"""
|
|
A class representing for user profile.
|
|
Refer: https://any-api.com/googleapis_com/oauth2/docs/userinfo/oauth2_userinfo_v2_me_get
|
|
"""
|
|
|
|
id: Optional[str] = field(default=None)
|
|
name: Optional[str] = field(default=None)
|
|
given_name: Optional[str] = field(default=None, repr=False)
|
|
family_name: Optional[str] = field(default=None, repr=False)
|
|
picture: Optional[str] = field(default=None, repr=False)
|
|
locale: Optional[str] = field(default=None, repr=False)
|