benjolo's picture
Adding backend/ folder to HF space (#1)
2da7ed3 verified
raw
history blame
No virus
1.55 kB
import uuid
from typing import List, Optional
from pydantic import BaseModel, Field, SecretStr, PrivateAttr
from pydantic.networks import EmailStr
from pydantic_mongo import ObjectIdField
'''Class for user model used to relate users to past calls'''
class User(BaseModel):
_id: uuid.UUID = PrivateAttr(default_factory=uuid.uuid4) # private attr not included in http calls
user_id: str
name: str
email: EmailStr = Field(unique=True, index=True)
password: SecretStr
call_ids: Optional[List[str]] = None
class Config:
populate_by_name = True
json_schema_extra = {
"example": {
"user_id": "65ede65b6d246e52aaba9d4f",
"name": "benjolo",
"email": "benjolounchained@gmail.com",
"password": "therealbenjolo",
"call_ids": ["65e205ced1be3a22854ff300", "65df8c3eba9c7c2ed1b20e85"]
}
}
'''Class for updating user records'''
class UpdateUser(BaseModel):
user_id: Optional[str] = None
name: Optional[str] = None
email: Optional[EmailStr] = None
''' To decode use -> SecretStr("abc").get_secret_value()'''
# password: Optional[SecretStr]
call_ids: Optional[List[str]] = None
class Config:
populate_by_name = True
json_schema_extra = {
"example": {
"email": "benjolounchained21@gmail.com",
"call_ids": ["65e205ced1be3a22854ff300", "65df8c3eba9c7c2ed1b20e85", "65eef930e9abd3b1e3506906"]
}
}