summaryrefslogtreecommitdiff
path: root/app/schemas.py
diff options
context:
space:
mode:
authorRasmus Luha <rasmus.luha@gmail.com>2022-02-06 13:41:11 +0200
committerRasmus Luha <rasmus.luha@gmail.com>2022-02-06 13:41:11 +0200
commit6a6afdbe72c626b01245c9372c9d10be79789bb0 (patch)
treecfdb5aea7538296bad0105c813fce4cd33c19ef5 /app/schemas.py
parent5e19a0569288de21365c61b0db78639880732dd0 (diff)
restrucurring the stucture of the folderstruture --> structure
Diffstat (limited to 'app/schemas.py')
-rw-r--r--app/schemas.py61
1 files changed, 61 insertions, 0 deletions
diff --git a/app/schemas.py b/app/schemas.py
new file mode 100644
index 0000000..439722c
--- /dev/null
+++ b/app/schemas.py
@@ -0,0 +1,61 @@
+from pydantic import BaseModel, EmailStr
+from pydantic.types import conint
+from datetime import datetime
+from typing import Optional
+
+class PostBase(BaseModel):
+ title: str
+ content: str
+ published: bool = True # Default True
+
+class PostCreate(PostBase):
+ pass
+
+# User Stuff
+
+class UserCreate(BaseModel):
+ email: EmailStr #Selleks vaja emaild-validator lib, mis tuli pip install fastapi[all]-iga koos.
+ password: str
+
+class UserOut(BaseModel):
+ id: int
+ email: EmailStr
+ created_at: datetime
+
+ class Config:
+ orm_mode = True
+
+
+class UserLogin(BaseModel):
+ email: EmailStr
+ password: str
+
+
+class Token(BaseModel):
+ access_token: str
+ token_type: str
+
+class TokenData(BaseModel):
+ id: Optional[str] = None
+
+
+## Response
+
+class Post(PostBase):
+ id: int
+ created_at: datetime
+ owner_id: int
+ owner: UserOut # Class alt poolt - see skeem, mille mis kehtib ka Get Useri puhul.
+
+ class Config: # Selleks, et pydantic oskaks lugeda sqlalchemy type modelit mida talle et antakse
+ orm_mode = True
+
+class PostOut(BaseModel):
+ Post: Post
+ votes: int
+
+
+class Vote(BaseModel):
+ post_id: int
+ dir: conint(le=1) #int that can be only 0 or 1 (and also negative, but that should be fine)
+