Mock-API angepasst: /lageapi/v2/tilage mit Störung, .gitignore für *.json und __pycache__/ aktualisiert

This commit is contained in:
2025-07-29 10:22:04 +02:00
parent 93c693f481
commit fcb6cd7995
4 changed files with 142 additions and 28 deletions

70
api_dynamic.py Normal file
View 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