Coverage for polar/login_code/schemas.py: 100%

13 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-07 12:42 +0000

1from pydantic import field_validator 

2 

3from polar.kit.email import EmailStrDNS 

4from polar.kit.http import get_safe_return_url 

5from polar.kit.schemas import Schema 

6from polar.user.schemas import UserSignupAttribution 

7 

8 

9class LoginCodeRequest(Schema): 

10 email: EmailStrDNS 

11 return_to: str | None = None 

12 attribution: UserSignupAttribution | None = None 

13 

14 @field_validator("return_to") 

15 @classmethod 

16 def validate_return_to(cls, v: str | None) -> str: 

17 return get_safe_return_url(v) 

18 

19 

20class LoginCodeAuthenticate(Schema): 

21 code: str