maleo-foundation 0.3.44__py3-none-any.whl → 0.3.45__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
- from pydantic import BaseModel, ConfigDict, Field, field_serializer
1
+ from pydantic import BaseModel, ConfigDict, Field, model_validator
2
2
  from starlette.authentication import AuthCredentials, BaseUser
3
- from typing import Optional, Sequence
3
+ from typing import Optional, Self, Sequence
4
4
  from maleo_foundation.enums import BaseEnums
5
5
  from maleo_foundation.models.transfers.general.token import MaleoFoundationTokenGeneralTransfers
6
6
 
@@ -21,6 +21,10 @@ class Credentials(AuthCredentials):
21
21
  def token(self) -> Optional[Token]:
22
22
  return self._token
23
23
 
24
+ class CredentialsModel(BaseModel):
25
+ token: Optional[Token] = Field(None, description="Token")
26
+ scopes: Optional[Sequence[str]] = Field(None, description="Scopes")
27
+
24
28
  class User(BaseUser):
25
29
  def __init__(
26
30
  self,
@@ -44,23 +48,24 @@ class User(BaseUser):
44
48
  def identity(self) -> str:
45
49
  return self._email
46
50
 
51
+ class UserModel(BaseModel):
52
+ is_authenticated: bool = Field(True, description="Authenticated")
53
+ display_name: str = Field("", description="Username")
54
+ identity: str = Field("", description="Email")
55
+
47
56
  class Authentication(BaseModel):
48
57
  model_config = ConfigDict(arbitrary_types_allowed=True)
49
58
 
50
- credentials: Credentials = Field(..., description="Credentials's information")
51
- user: User = Field(..., description="User's information")
52
-
53
- @field_serializer('credentials')
54
- def serialize_credentials(self, credentials: Credentials, _info):
55
- return {
56
- "token": credentials.token.model_dump() if credentials.token is not None else None,
57
- "scopes": credentials.scopes if credentials.scopes is not None else None
58
- }
59
+ credentials: Credentials = Field(..., description="Credentials's information", exclude=True)
60
+ credentials_model: CredentialsModel = Field(default_factory=CredentialsModel, description="Credential's model", serialization_alias="credentials")
61
+ user: User = Field(..., description="User's information", exclude=True)
62
+ user_model: UserModel = Field(default_factory=UserModel, description="User's model", serialization_alias="user")
59
63
 
60
- @field_serializer('user')
61
- def serialize_user(self, user: User, _info):
62
- return {
63
- "is_authenticated": user.is_authenticated,
64
- "display_name": user.display_name,
65
- "identity": user.identity
66
- }
64
+ @model_validator(mode="after")
65
+ def define_models(self) -> Self:
66
+ self.credentials_model.token = self.credentials.token
67
+ self.credentials_model.scopes = self.credentials.scopes
68
+ self.user_model.is_authenticated = self.user.is_authenticated
69
+ self.user_model.display_name = self.user.display_name
70
+ self.user_model.identity = self.user.identity
71
+ return self
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: maleo_foundation
3
- Version: 0.3.44
3
+ Version: 0.3.45
4
4
  Summary: Foundation package for Maleo
5
5
  Author-email: Agra Bima Yuda <agra@nexmedis.com>
6
6
  License: MIT
@@ -1,5 +1,5 @@
1
1
  maleo_foundation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- maleo_foundation/authentication.py,sha256=2Fw6rrSnJj7i18UpWovJRKthZyZdq3sLKnkGVYP3wqM,2138
2
+ maleo_foundation/authentication.py,sha256=ZclIn7IZ5VkoCjrWkINifpM8utc69jcv9Dypaw8Jy1U,2658
3
3
  maleo_foundation/authorization.py,sha256=HGXCJ47AU1YFMDSmGhrMMmlHnAyghcFZVUiPa1FSvog,283
4
4
  maleo_foundation/constants.py,sha256=LjMIy_Fcr6HLuhIuXs5lCtkyScZXXHOtBMPYx5lwg00,1446
5
5
  maleo_foundation/enums.py,sha256=x6hVz0gvrKRF1ng8lMgVzwfiA_F6Y4vuOU4rBOgtTUg,4758
@@ -133,7 +133,7 @@ maleo_foundation/utils/loaders/credential/__init__.py,sha256=qopTKvcMVoTFwyRijeg
133
133
  maleo_foundation/utils/loaders/credential/google.py,sha256=ZglnLdW3lHmaKER4mwGe5N5ERus-bdsamfpwGmQYPIo,6344
134
134
  maleo_foundation/utils/loaders/key/__init__.py,sha256=hVygcC2ImHc_aVrSrOmyedR8tMUZokWUKCKOSh5ctbo,106
135
135
  maleo_foundation/utils/loaders/key/rsa.py,sha256=gDhyX6iTFtHiluuhFCozaZ3pOLKU2Y9TlrNMK_GVyGU,3796
136
- maleo_foundation-0.3.44.dist-info/METADATA,sha256=2_3jtAGsVlUYE-_D93ljfnRvx7fWqiY3wIQqZUEA11g,3740
137
- maleo_foundation-0.3.44.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
138
- maleo_foundation-0.3.44.dist-info/top_level.txt,sha256=_iBos3F_bhEOdjOnzeiEYSrCucasc810xXtLBXI8cQc,17
139
- maleo_foundation-0.3.44.dist-info/RECORD,,
136
+ maleo_foundation-0.3.45.dist-info/METADATA,sha256=Qljq493qxzugl31BQkTxd159N6xSCgM7n2CmSTW9bzg,3740
137
+ maleo_foundation-0.3.45.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
138
+ maleo_foundation-0.3.45.dist-info/top_level.txt,sha256=_iBos3F_bhEOdjOnzeiEYSrCucasc810xXtLBXI8cQc,17
139
+ maleo_foundation-0.3.45.dist-info/RECORD,,