Some checks failed
K8S Fission Deployment / Deployment fission functions (push) Failing after 22s
37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
from pydantic import BaseModel, Field, EmailStr, root_validator
|
|
from typing import Optional
|
|
|
|
# Validate dau vao email
|
|
|
|
class UserEmailRequest(BaseModel):
|
|
email: EmailStr = Field(..., description="Email address")
|
|
provider: Optional[str] = Field(None, description="Email service provider")
|
|
is_primary: Optional[bool] = Field(None, description= "is primary email ")
|
|
|
|
@root_validator(pre=True)
|
|
def auto_detect_provider(cls, values):
|
|
email = values.get("email")
|
|
provider = values.get("provider")
|
|
|
|
if not provider and email:
|
|
domain_part = email.split('@')[-1]
|
|
values["provider"] = domain_part.split('.')[0]
|
|
|
|
return values
|
|
|
|
|
|
class UserEmailUpdateRequest(BaseModel):
|
|
email: Optional[EmailStr] = Field(None, description="Email address")
|
|
provider: Optional[str] = Field(None, description="Email service provider")
|
|
is_primary: Optional[bool] = Field(None, description= "is primary email ")
|
|
|
|
@root_validator(pre=True)
|
|
def auto_detect_provider(cls, values):
|
|
email = values.get("email")
|
|
provider = values.get("provider")
|
|
|
|
if not provider and email:
|
|
domain_part = email.split('@')[-1]
|
|
values["provider"] = domain_part.split('.')[0]
|
|
|
|
return values |