From 5e19a0569288de21365c61b0db78639880732dd0 Mon Sep 17 00:00:00 2001 From: Rasmus Luha Date: Sun, 6 Feb 2022 13:10:32 +0200 Subject: inital commit --- Projekt/app/schemas.py | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 Projekt/app/schemas.py (limited to 'Projekt/app/schemas.py') diff --git a/Projekt/app/schemas.py b/Projekt/app/schemas.py new file mode 100644 index 0000000..439722c --- /dev/null +++ b/Projekt/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) + -- cgit v1.2.3