Skip to content

Commit 832afa3

Browse files
committed
fix: Types in recipe recipe_implementation
1 parent 5111b51 commit 832afa3

File tree

1 file changed

+46
-8
lines changed

1 file changed

+46
-8
lines changed

supertokens_python/recipe/multitenancy/recipe_implementation.py

Lines changed: 46 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040

4141
if TYPE_CHECKING:
4242
from supertokens_python.querier import Querier
43-
from supertokens_python.recipe.thirdparty.interfaces import ProviderConfig
43+
from supertokens_python.recipe.thirdparty.provider import ProviderConfig
4444
from .utils import MultitenancyConfig
4545

4646
from supertokens_python.querier import NormalisedURLPath
@@ -91,6 +91,8 @@ async def get_tenant(
9191
) -> GetTenantOkResult:
9292
from supertokens_python.recipe.thirdparty.provider import (
9393
ProviderConfig,
94+
UserInfoMap,
95+
UserFields,
9496
ProviderClientConfig,
9597
)
9698

@@ -102,6 +104,23 @@ async def get_tenant(
102104

103105
providers: List[ProviderConfig] = []
104106
for p in res["thirdParty"]["providers"]:
107+
user_info_map: Optional[UserInfoMap] = None
108+
if "userInfoMap" in p:
109+
map_from_payload = p["userInfoMap"].get("fromIdTokenPayload", {})
110+
map_from_api = p["userInfoMap"].get("fromUserInfoAPI", {})
111+
user_info_map = UserInfoMap(
112+
UserFields(
113+
map_from_payload.get("userId"),
114+
map_from_payload.get("email"),
115+
map_from_payload.get("emailVerified"),
116+
),
117+
UserFields(
118+
map_from_api.get("userId"),
119+
map_from_api.get("email"),
120+
map_from_api.get("emailVerified"),
121+
),
122+
)
123+
105124
providers.append(
106125
ProviderConfig(
107126
third_party_id=p["thirdPartyId"],
@@ -124,19 +143,19 @@ async def get_tenant(
124143
token_endpoint=p.get("tokenEndpoint"),
125144
token_endpoint_body_params=p.get("tokenEndpointBodyParams"),
126145
user_info_endpoint=p.get("userInfoEndpoint"),
127-
user_info_endpoint_query_params=p.get("userInfoEndpointQueryParams"),
146+
user_info_endpoint_query_params=p.get(
147+
"userInfoEndpointQueryParams"
148+
),
128149
user_info_endpoint_headers=p.get("userInfoEndpointHeaders"),
129150
jwks_uri=p.get("jwksUri"),
130151
oidc_discovery_endpoint=p.get("oidcDiscoveryEndpoint"),
131-
user_info_map=p.get("userInfoMap"),
152+
user_info_map=user_info_map,
132153
require_email=p.get("requireEmail"),
133-
validate_id_token_payload=p.get("validateIdTokenPayload"),
134-
generate_fake_email=p.get("generateFakeEmail"),
154+
validate_id_token_payload=None,
155+
generate_fake_email=None,
135156
)
136157
)
137158

138-
# /t1/recipe/multitenancy/tenant
139-
140159
return GetTenantOkResult(
141160
emailpassword=EmailPasswordConfig(res["emailPassword"]["enabled"]),
142161
passwordless=PasswordlessConfig(res["passwordless"]["enabled"]),
@@ -153,6 +172,8 @@ async def list_all_tenants(
153172
from supertokens_python.recipe.thirdparty.provider import (
154173
ProviderConfig,
155174
ProviderClientConfig,
175+
UserFields,
176+
UserInfoMap,
156177
)
157178

158179
response = await self.querier.send_get_request(
@@ -165,6 +186,23 @@ async def list_all_tenants(
165186
for tenant in response["tenants"]:
166187
providers: List[ProviderConfig] = []
167188
for p in tenant["thirdParty"]["providers"]:
189+
user_info_map: Optional[UserInfoMap] = None
190+
if "userInfoMap" in p:
191+
map_from_payload = p["userInfoMap"].get("fromIdTokenPayload", {})
192+
map_from_api = p["userInfoMap"].get("fromUserInfoAPI", {})
193+
user_info_map = UserInfoMap(
194+
UserFields(
195+
map_from_payload.get("userId"),
196+
map_from_payload.get("email"),
197+
map_from_payload.get("emailVerified"),
198+
),
199+
UserFields(
200+
map_from_api.get("userId"),
201+
map_from_api.get("email"),
202+
map_from_api.get("emailVerified"),
203+
),
204+
)
205+
168206
providers.append(
169207
ProviderConfig(
170208
third_party_id=p["thirdPartyId"],
@@ -193,7 +231,7 @@ async def list_all_tenants(
193231
user_info_endpoint_headers=p["userInfoEndpointHeaders"],
194232
jwks_uri=p["jwksUri"],
195233
oidc_discovery_endpoint=p["oidcDiscoveryEndpoint"],
196-
user_info_map=p["userInfoMap"],
234+
user_info_map=user_info_map,
197235
require_email=p["requireEmail"],
198236
validate_id_token_payload=p["validateIdTokenPayload"],
199237
generate_fake_email=p["generateFakeEmail"],

0 commit comments

Comments
 (0)