This repository has been archived on 2020-08-14. You can view files and clone it, but cannot push or open issues or pull requests.
statuspage/app/schemas.py
surtur 927bdd03ce
feat: added JWT-based authentication; introduced config file
* authorization [WIP]
* refactored several sections
* used dict(exclude_unset=True)
* global values are now sourced from a config file (statuspagerc)
2020-08-11 11:48:46 +02:00

77 lines
1.3 KiB
Python

import time
from typing import List, Optional
from pydantic import BaseModel, HttpUrl
class ServiceBase(BaseModel):
name: str
owner_id: int
is_private: bool = True
description: Optional[str] = None
service_type: int
url: HttpUrl
is_active: bool = True
class Service(BaseModel):
created_unix: float
updated_unix: float = None
class ServiceCreate(ServiceBase):
pass
class ServiceUpdate(ServiceBase):
name: Optional[str]
owner_id: Optional[int]
is_private: Optional[bool]
description: Optional[str]
service_type: Optional[int]
url: Optional[HttpUrl]
is_active: Optional[bool]
class Service(ServiceBase):
pass
class Config:
orm_mode = True
class UserBase(BaseModel):
name: str
full_name: Optional[str] = None
is_active: bool = True
class User(BaseModel):
created_unix: float
updated_unix: float = None
last_login_unix: float = None
class UserCreate(UserBase):
password: str
class UserUpdate(UserBase):
name: Optional[str]
full_name: Optional[str]
password: Optional[str]
is_active: Optional[bool]
class User(UserBase):
pass
class Config:
orm_mode = True
class APISimpleSuccessResponse(BaseModel):
success: bool = True
class APISimpleErrorResponse(BaseModel):
success: bool = False
errors: Optional[List[str]]
class Token(BaseModel):
access_token: str
token_type: str