Mock-API angepasst: /lageapi/v2/tilage mit Störung, .gitignore für *.json und __pycache__/ aktualisiert
This commit is contained in:
70
api_dynamic.py
Normal file
70
api_dynamic.py
Normal file
@ -0,0 +1,70 @@
|
||||
from fastapi import FastAPI
|
||||
from pydantic import BaseModel, Field
|
||||
from typing import List, Optional, Any
|
||||
|
||||
app = FastAPI()
|
||||
|
||||
# Pydantic-Modelle für die Struktur
|
||||
class AffectedFunction(BaseModel):
|
||||
function: str
|
||||
critical: int
|
||||
impactDesc: str
|
||||
outage: str # "none"|"partial"|"full"
|
||||
hasMaintenance: bool
|
||||
|
||||
class AppStatusEntry(BaseModel):
|
||||
outage: str = "none"
|
||||
hasMaintenance: bool = False
|
||||
hasSubComponentMaintenance: bool = False
|
||||
affectedFunctions: List[AffectedFunction] = Field(default_factory=list)
|
||||
|
||||
class AppStatus(BaseModel):
|
||||
erezept: Optional[AppStatusEntry] = None
|
||||
epa: Optional[AppStatusEntry] = None
|
||||
kim: Optional[AppStatusEntry] = None
|
||||
wanda: Optional[AppStatusEntry] = None
|
||||
ogd: Optional[AppStatusEntry] = None
|
||||
vsdm: Optional[AppStatusEntry] = None
|
||||
tianschluss: Optional[AppStatusEntry] = None
|
||||
|
||||
class StatusModel(BaseModel):
|
||||
appStatus: AppStatus
|
||||
cause: List[Any] = Field(default_factory=list)
|
||||
|
||||
# Initialer Status mit einer Störung bei erezept
|
||||
status_data = StatusModel(
|
||||
appStatus=AppStatus(
|
||||
erezept=AppStatusEntry(
|
||||
outage="partial",
|
||||
hasMaintenance=False,
|
||||
hasSubComponentMaintenance=False,
|
||||
affectedFunctions=[
|
||||
AffectedFunction(
|
||||
function="Signatur",
|
||||
critical=1,
|
||||
impactDesc="Signatur ist zeitweise nicht möglich",
|
||||
outage="partial",
|
||||
hasMaintenance=False
|
||||
)
|
||||
]
|
||||
),
|
||||
epa=AppStatusEntry(),
|
||||
kim=AppStatusEntry(),
|
||||
wanda=AppStatusEntry(),
|
||||
ogd=AppStatusEntry(),
|
||||
vsdm=AppStatusEntry(),
|
||||
tianschluss=AppStatusEntry()
|
||||
),
|
||||
cause=[]
|
||||
)
|
||||
|
||||
@app.get("/lageapi/v2/tilage", response_model=StatusModel)
|
||||
def get_tilage():
|
||||
return status_data
|
||||
|
||||
@app.post("/lageapi/v2/tilage", response_model=StatusModel)
|
||||
def set_tilage(new_status: StatusModel):
|
||||
global status_data
|
||||
status_data = new_status
|
||||
return status_data
|
||||
|
||||
Reference in New Issue
Block a user