diff --git a/.env b/.env index 912adeb..8ca53a4 100644 --- a/.env +++ b/.env @@ -9,12 +9,14 @@ REFRESH_TOKEN_EXPIRES_IN=60 JWT_ALGORITHM=RS256 CLIENT_ORIGIN=http://localhost:3000 +PASSWORD_MIN_LEN=8 -EMAIL_HOST=smtp.mailtrap.io +EMAIL_HOST=live.smtp.mailtrap.io EMAIL_PORT=587 EMAIL_USERNAME=41fa1d7c714ab0 EMAIL_PASSWORD=608f76636315f5 EMAIL_FROM=admin@admin.com +EMAIL_STARTTLS=True JWT_PRIVATE_KEY=LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlCT2dJQkFBSkJBSSs3QnZUS0FWdHVQYzEzbEFkVk94TlVmcWxzMm1SVmlQWlJyVFpjd3l4RVhVRGpNaFZuCi9KVHRsd3h2a281T0pBQ1k3dVE0T09wODdiM3NOU3ZNd2xNQ0F3RUFBUUpBYm5LaENOQ0dOSFZGaHJPQ0RCU0IKdmZ2ckRWUzVpZXAwd2h2SGlBUEdjeWV6bjd0U2RweUZ0NEU0QTNXT3VQOXhqenNjTFZyb1pzRmVMUWlqT1JhUwp3UUloQU84MWl2b21iVGhjRkltTFZPbU16Vk52TGxWTW02WE5iS3B4bGh4TlpUTmhBaUVBbWRISlpGM3haWFE0Cm15QnNCeEhLQ3JqOTF6bVFxU0E4bHUvT1ZNTDNSak1DSVFEbDJxOUdtN0lMbS85b0EyaCtXdnZabGxZUlJPR3oKT21lV2lEclR5MUxaUVFJZ2ZGYUlaUWxMU0tkWjJvdXF4MHdwOWVEejBEWklLVzVWaSt6czdMZHRDdUVDSUVGYwo3d21VZ3pPblpzbnU1clBsTDJjZldLTGhFbWwrUVFzOCtkMFBGdXlnCi0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0t JWT_PUBLIC_KEY=LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUZ3d0RRWUpLb1pJaHZjTkFRRUJCUUFEU3dBd1NBSkJBSSs3QnZUS0FWdHVQYzEzbEFkVk94TlVmcWxzMm1SVgppUFpSclRaY3d5eEVYVURqTWhWbi9KVHRsd3h2a281T0pBQ1k3dVE0T09wODdiM3NOU3ZNd2xNQ0F3RUFBUT09Ci0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLQ== \ No newline at end of file diff --git a/.gitignore b/.gitignore index 0ef896b..60039f6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ __pycache__ venv/ -# .env \ No newline at end of file +# .env +.history +.vscode \ No newline at end of file diff --git a/app/config.py b/app/config.py index 72a4be6..7733ae2 100644 --- a/app/config.py +++ b/app/config.py @@ -13,11 +13,14 @@ class Settings(BaseSettings): CLIENT_ORIGIN: str + PASSWORD_MIN_LEN: int + EMAIL_HOST: str EMAIL_PORT: int EMAIL_USERNAME: str EMAIL_PASSWORD: str EMAIL_FROM: EmailStr + EMAIL_STARTTLS: bool class Config: env_file = './.env' diff --git a/app/email.py b/app/email.py index 939c58f..205896a 100644 --- a/app/email.py +++ b/app/email.py @@ -31,7 +31,7 @@ async def sendMail(self, subject, template): MAIL_FROM=settings.EMAIL_FROM, MAIL_PORT=settings.EMAIL_PORT, MAIL_SERVER=settings.EMAIL_HOST, - MAIL_STARTTLS=False, + MAIL_STARTTLS=settings.EMAIL_STARTTLS, MAIL_SSL_TLS=False, USE_CREDENTIALS=True, VALIDATE_CERTS=True diff --git a/app/schemas.py b/app/schemas.py index 29fe198..767050e 100644 --- a/app/schemas.py +++ b/app/schemas.py @@ -2,29 +2,30 @@ from typing import List from pydantic import BaseModel, EmailStr, constr from bson.objectid import ObjectId +from .config import settings class UserBaseSchema(BaseModel): name: str email: str photo: str - role: str | None = None - created_at: datetime | None = None - updated_at: datetime | None = None + role: str = None + created_at: datetime = None + updated_at: datetime = None class Config: orm_mode = True class CreateUserSchema(UserBaseSchema): - password: constr(min_length=8) + password: constr(min_length=settings.PASSWORD_MIN_LEN) passwordConfirm: str verified: bool = False class LoginUserSchema(BaseModel): email: EmailStr - password: constr(min_length=8) + password: constr(min_length=settings.PASSWORD_MIN_LEN) class UserResponseSchema(UserBaseSchema): @@ -46,8 +47,8 @@ class PostBaseSchema(BaseModel): content: str category: str image: str - created_at: datetime | None = None - updated_at: datetime | None = None + created_at: datetime = None + updated_at: datetime = None class Config: orm_mode = True @@ -57,7 +58,7 @@ class Config: class CreatePostSchema(PostBaseSchema): - user: ObjectId | None = None + user: ObjectId = None pass @@ -69,11 +70,11 @@ class PostResponse(PostBaseSchema): class UpdatePostSchema(BaseModel): - title: str | None = None - content: str | None = None - category: str | None = None - image: str | None = None - user: str | None = None + title: str = None + content: str = None + category: str = None + image: str = None + user: str = None class Config: orm_mode = True