Skip to content

Commit

Permalink
chores: Lint and format
Browse files Browse the repository at this point in the history
  • Loading branch information
KShivendu committed Aug 4, 2023
1 parent 762719b commit 05fd684
Show file tree
Hide file tree
Showing 18 changed files with 73 additions and 60 deletions.
2 changes: 1 addition & 1 deletion supertokens_python/exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

def raise_general_exception(
msg: Union[str, Exception], previous: Union[None, Exception] = None
):
) -> NoReturn:
if isinstance(msg, SuperTokensError):
raise msg
if isinstance(msg, Exception):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,9 @@ async def reset_password(
field for field in form_fields if field.id == FORM_FIELD_PASSWORD_ID
][0]

password_validation_error = await password_form_field.validate(new_password)
password_validation_error = await password_form_field.validate(
new_password, tenant_id
)

if password_validation_error is not None:
return UserPasswordPutAPIInvalidPasswordErrorResponse(
Expand Down
46 changes: 31 additions & 15 deletions supertokens_python/recipe/dashboard/api/userdetails/user_put.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,11 @@


async def update_email_for_recipe_id(
recipe_id: str, user_id: str, email: str, user_context: Dict[str, Any]
recipe_id: str,
user_id: str,
email: str,
tenant_id: str,
user_context: Dict[str, Any],
) -> Union[
UserPutAPIOkResponse,
UserPutAPIInvalidEmailErrorResponse,
Expand All @@ -76,7 +80,7 @@ async def update_email_for_recipe_id(
if form_field.id == FORM_FIELD_EMAIL_ID
]

validation_error = await email_form_fields[0].validate(email)
validation_error = await email_form_fields[0].validate(email, tenant_id)

if validation_error is not None:
return UserPutAPIInvalidEmailErrorResponse(validation_error)
Expand All @@ -102,7 +106,7 @@ async def update_email_for_recipe_id(
if form_field.id == FORM_FIELD_EMAIL_ID
]

validation_error = await email_form_fields[0].validate(email)
validation_error = await email_form_fields[0].validate(email, tenant_id)

if validation_error is not None:
return UserPutAPIInvalidEmailErrorResponse(validation_error)
Expand All @@ -127,12 +131,14 @@ async def update_email_for_recipe_id(
passwordless_config = PasswordlessRecipe.get_instance().config.contact_config

if isinstance(passwordless_config.contact_method, ContactPhoneOnlyConfig):
validation_error = await default_validate_email(email)
validation_error = await default_validate_email(email, tenant_id)

elif isinstance(
passwordless_config, (ContactEmailOnlyConfig, ContactEmailOrPhoneConfig)
):
validation_error = await passwordless_config.validate_email_address(email)
validation_error = await passwordless_config.validate_email_address(
email, tenant_id
)

if validation_error is not None:
return UserPutAPIInvalidEmailErrorResponse(validation_error)
Expand All @@ -157,11 +163,13 @@ async def update_email_for_recipe_id(
)

if isinstance(passwordless_config, ContactPhoneOnlyConfig):
validation_error = await default_validate_email(email)
validation_error = await default_validate_email(email, tenant_id)
elif isinstance(
passwordless_config, (ContactEmailOnlyConfig, ContactEmailOrPhoneConfig)
):
validation_error = await passwordless_config.validate_email_address(email)
validation_error = await passwordless_config.validate_email_address(
email, tenant_id
)

if validation_error is not None:
return UserPutAPIInvalidEmailErrorResponse(validation_error)
Expand All @@ -183,7 +191,11 @@ async def update_email_for_recipe_id(


async def update_phone_for_recipe_id(
recipe_id: str, user_id: str, phone: str, user_context: Dict[str, Any]
recipe_id: str,
user_id: str,
phone: str,
tenant_id: str,
user_context: Dict[str, Any],
) -> Union[
UserPutAPIOkResponse,
UserPutAPIInvalidPhoneErrorResponse,
Expand All @@ -197,11 +209,13 @@ async def update_phone_for_recipe_id(
passwordless_config = PasswordlessRecipe.get_instance().config.contact_config

if isinstance(passwordless_config, ContactEmailOnlyConfig):
validation_error = await default_validate_phone_number(phone)
validation_error = await default_validate_phone_number(phone, tenant_id)
elif isinstance(
passwordless_config, (ContactPhoneOnlyConfig, ContactEmailOrPhoneConfig)
):
validation_error = await passwordless_config.validate_phone_number(phone)
validation_error = await passwordless_config.validate_phone_number(
phone, tenant_id
)

if validation_error is not None:
return UserPutAPIInvalidPhoneErrorResponse(validation_error)
Expand All @@ -226,12 +240,14 @@ async def update_phone_for_recipe_id(
)

if isinstance(passwordless_config, ContactEmailOnlyConfig):
validation_error = await default_validate_phone_number(phone)
validation_error = await default_validate_phone_number(phone, tenant_id)

elif isinstance(
passwordless_config, (ContactPhoneOnlyConfig, ContactEmailOrPhoneConfig)
):
validation_error = await passwordless_config.validate_phone_number(phone)
validation_error = await passwordless_config.validate_phone_number(
phone, tenant_id
)

if validation_error is not None:
return UserPutAPIInvalidPhoneErrorResponse(validation_error)
Expand All @@ -254,7 +270,7 @@ async def update_phone_for_recipe_id(

async def handle_user_put(
_api_interface: APIInterface,
_tenant_id: str,
tenant_id: str,
api_options: APIOptions,
user_context: Dict[str, Any],
) -> Union[
Expand Down Expand Up @@ -337,15 +353,15 @@ async def handle_user_put(

if email != "":
email_update_response = await update_email_for_recipe_id(
user_response.recipe, user_id, email, user_context
user_response.recipe, user_id, email, tenant_id, user_context
)

if not isinstance(email_update_response, UserPutAPIOkResponse):
return email_update_response

if phone != "":
phone_update_response = await update_phone_for_recipe_id(
user_response.recipe, user_id, phone, user_context
user_response.recipe, user_id, phone, tenant_id, user_context
)

if not isinstance(phone_update_response, UserPutAPIOkResponse):
Expand Down
6 changes: 3 additions & 3 deletions supertokens_python/recipe/emailpassword/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,11 @@
)


async def default_validator(_: str) -> Union[str, None]:
async def default_validator(_: str, __: str) -> Union[str, None]:
return None


async def default_password_validator(value: str) -> Union[str, None]:
async def default_password_validator(_: str, value: str) -> Union[str, None]:
# length >= 8 && < 100
# must have a number and a character
# as per
Expand All @@ -62,7 +62,7 @@ async def default_password_validator(value: str) -> Union[str, None]:
return None


async def default_email_validator(value: Any) -> Union[str, None]:
async def default_email_validator(_: str, value: Any) -> Union[str, None]:
# We check if the email syntax is correct
# As per https://github.com/supertokens/supertokens-auth-react/issues/5#issuecomment-709512438
# Regex from https://stackoverflow.com/a/46181/3867175
Expand Down
8 changes: 2 additions & 6 deletions supertokens_python/recipe/emailverification/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@
# under the License.
from __future__ import annotations

from typing import TYPE_CHECKING, Callable, Union, Optional, Any, Awaitable, Dict
from typing import TYPE_CHECKING, Callable, Union, Optional

from . import exceptions as ex
from . import utils
from .emaildelivery import services as emaildelivery_services
from . import recipe
from .interfaces import TypeGetEmailForUserIdFunction
from .recipe import EmailVerificationRecipe
from .types import EmailTemplateVars, User
from .types import EmailTemplateVars
from ...ingredients.emaildelivery.types import EmailDeliveryConfig

InputOverrideConfig = utils.OverrideConfig
Expand All @@ -42,15 +42,11 @@ def init(
mode: MODE_TYPE,
email_delivery: Union[EmailDeliveryConfig[EmailTemplateVars], None] = None,
get_email_for_user_id: Optional[TypeGetEmailForUserIdFunction] = None,
create_and_send_custom_email: Union[
Callable[[User, str, Dict[str, Any]], Awaitable[None]], None
] = None,
override: Union[OverrideConfig, None] = None,
) -> Callable[[AppInfo], RecipeModule]:
return EmailVerificationRecipe.init(
mode,
email_delivery,
get_email_for_user_id,
create_and_send_custom_email,
override,
)
7 changes: 3 additions & 4 deletions supertokens_python/recipe/emailverification/recipe.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
from __future__ import annotations

from os import environ
from typing import TYPE_CHECKING, Any, Awaitable, Callable, Dict, List, Optional, Union
from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union

from supertokens_python.exceptions import SuperTokensError, raise_general_exception
from supertokens_python.ingredients.emaildelivery import EmailDeliveryIngredient
Expand All @@ -24,7 +24,6 @@
from supertokens_python.recipe.emailverification.types import (
EmailTemplateVars,
EmailVerificationIngredients,
User,
VerificationEmailTemplateVars,
VerificationEmailTemplateVarsUser,
)
Expand Down Expand Up @@ -206,7 +205,7 @@ def init(
get_email_for_user_id: Optional[TypeGetEmailForUserIdFunction] = None,
override: Union[OverrideConfig, None] = None,
):
def func(app_info: AppInfo):
def func(app_info: AppInfo) -> EmailVerificationRecipe:
if EmailVerificationRecipe.__instance is None:
ingredients = EmailVerificationIngredients(email_delivery=None)
EmailVerificationRecipe.__instance = EmailVerificationRecipe(
Expand All @@ -231,7 +230,7 @@ def callback():
PostSTInitCallbacks.add_post_init_callback(callback)

return EmailVerificationRecipe.__instance
raise_general_exception(
return raise_general_exception(
"Emailverification recipe has already been initialised. Please check your code for bugs."
)

Expand Down
7 changes: 3 additions & 4 deletions supertokens_python/recipe/emailverification/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

from __future__ import annotations

from typing import TYPE_CHECKING, Any, Dict, Optional
from typing import TYPE_CHECKING, Optional

from supertokens_python.ingredients.emaildelivery.types import (
EmailDeliveryConfig,
Expand All @@ -23,16 +23,15 @@
from supertokens_python.recipe.emailverification.emaildelivery.services.backward_compatibility import (
BackwardCompatibilityService,
)
from supertokens_python.utils import deprecated_warn
from typing_extensions import Literal

if TYPE_CHECKING:
from typing import Awaitable, Callable, Union
from typing import Callable, Union

from supertokens_python.supertokens import AppInfo

from .interfaces import APIInterface, RecipeInterface, TypeGetEmailForUserIdFunction
from .types import EmailTemplateVars, User, VerificationEmailTemplateVars
from .types import EmailTemplateVars, VerificationEmailTemplateVars


class OverrideConfig:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

import json
from os import environ
from typing import Any, Awaitable, Callable, Dict, Union
from typing import Any, Dict

from httpx import AsyncClient, HTTPStatusError, Response
from supertokens_python.ingredients.smsdelivery.services.supertokens import (
Expand Down
2 changes: 1 addition & 1 deletion supertokens_python/recipe/passwordless/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
)


async def default_validate_phone_number(value: str, tenant_id: str):
async def default_validate_phone_number(value: str, _tenant_id: str):
try:
parsed_phone_number: Any = parse(value, None)
if not is_valid_number(parsed_phone_number):
Expand Down
2 changes: 1 addition & 1 deletion supertokens_python/recipe/thirdparty/providers/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ def _normalize_input(self):
if self.input_config.generate_fake_email is None:

async def default_generate_fake_email(
third_party_user_id: str, _: Dict[str, Any]
_tenant_id: str, third_party_user_id: str, _: Dict[str, Any]
) -> str:
return f"{third_party_user_id}@{self.input_config.third_party_id}.fakeemail.com"

Expand Down
5 changes: 0 additions & 5 deletions supertokens_python/recipe/thirdpartyemailpassword/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@

InputOverrideConfig = utils.InputOverrideConfig
exceptions = ex
InputResetPasswordUsingTokenFeature = emailpassword.InputResetPasswordUsingTokenFeature
InputSignUpFeature = emailpassword.InputSignUpFeature
ProviderInput = provider.ProviderInput
ProviderConfig = provider.ProviderConfig
Expand All @@ -43,16 +42,12 @@

def init(
sign_up_feature: Union[InputSignUpFeature, None] = None,
reset_password_using_token_feature: Union[
InputResetPasswordUsingTokenFeature, None
] = None,
override: Union[InputOverrideConfig, None] = None,
providers: Union[List[ProviderInput], None] = None,
email_delivery: Union[EmailDeliveryConfig[EmailTemplateVars], None] = None,
) -> Callable[[AppInfo], RecipeModule]:
return ThirdPartyEmailPasswordRecipe.init(
sign_up_feature,
reset_password_using_token_feature,
override,
providers,
email_delivery,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,12 +173,18 @@ async def update_email_or_password(
email: Union[None, str] = None,
password: Union[None, str] = None,
apply_password_policy: Union[bool, None] = None,
tenant_id_for_password_policy: Optional[str] = None,
user_context: Union[None, Dict[str, Any]] = None,
):
if user_context is None:
user_context = {}
return await ThirdPartyEmailPasswordRecipe.get_instance().recipe_implementation.update_email_or_password(
user_id, email, password, apply_password_policy, user_context
user_id,
email,
password,
apply_password_policy,
tenant_id_for_password_policy or DEFAULT_TENANT_ID,
user_context,
)


Expand Down
5 changes: 0 additions & 5 deletions supertokens_python/recipe/thirdpartyemailpassword/recipe.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
from supertokens_python.recipe_module import APIHandled, RecipeModule

from ..emailpassword.utils import (
InputResetPasswordUsingTokenFeature,
InputSignUpFeature,
)
from .api.emailpassword_api_impementation import (
Expand Down Expand Up @@ -254,9 +253,6 @@ def get_all_cors_headers(self) -> List[str]:
@staticmethod
def init(
sign_up_feature: Union[InputSignUpFeature, None] = None,
reset_password_using_token_feature: Union[
InputResetPasswordUsingTokenFeature, None
] = None,
override: Union[InputOverrideConfig, None] = None,
providers: Union[List[ProviderInput], None] = None,
email_delivery: Union[EmailDeliveryConfig[EmailTemplateVars], None] = None,
Expand All @@ -270,7 +266,6 @@ def func(app_info: AppInfo):
app_info,
ingredients,
sign_up_feature,
reset_password_using_token_feature,
override,
providers,
email_delivery=email_delivery,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,7 @@ async def update_email_or_password(
email: Union[None, str],
password: Union[None, str],
apply_password_policy: Union[bool, None],
tenant_id_for_password_policy: str,
user_context: Dict[str, Any],
) -> Union[
UpdateEmailOrPasswordOkResult,
Expand All @@ -357,5 +358,10 @@ async def update_email_or_password(
"Cannot update email or password of a user who signed up using third party login."
)
return await self.ep_update_email_or_password(
user_id, email, password, apply_password_policy, user_context
user_id,
email,
password,
apply_password_policy,
tenant_id_for_password_policy,
user_context,
)
Loading

0 comments on commit 05fd684

Please sign in to comment.