first commit
This commit is contained in:
commit
4b98219bf7
144 changed files with 31561 additions and 0 deletions
36
backend/api/routes/sites.py
Normal file
36
backend/api/routes/sites.py
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
from fastapi import APIRouter
|
||||
from pydantic import BaseModel
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
class Site(BaseModel):
|
||||
id: str
|
||||
name: str
|
||||
location: str
|
||||
status: str
|
||||
rack_count: int
|
||||
total_power_kw: float
|
||||
pue: float
|
||||
|
||||
|
||||
# Static stub data — will be replaced by DB queries in Phase 2
|
||||
SITES: list[Site] = [
|
||||
Site(id="sg-01", name="Singapore DC01", location="Singapore", status="ok", rack_count=128, total_power_kw=847.0, pue=1.42),
|
||||
Site(id="sg-02", name="Singapore DC02", location="Singapore", status="warning", rack_count=64, total_power_kw=412.0, pue=1.51),
|
||||
Site(id="lon-01", name="London DC01", location="London", status="ok", rack_count=96, total_power_kw=631.0, pue=1.38),
|
||||
]
|
||||
|
||||
|
||||
@router.get("", response_model=list[Site])
|
||||
async def list_sites():
|
||||
return SITES
|
||||
|
||||
|
||||
@router.get("/{site_id}", response_model=Site)
|
||||
async def get_site(site_id: str):
|
||||
for site in SITES:
|
||||
if site.id == site_id:
|
||||
return site
|
||||
from fastapi import HTTPException
|
||||
raise HTTPException(status_code=404, detail="Site not found")
|
||||
Loading…
Add table
Add a link
Reference in a new issue