MCPcopy Create free account
hub / github.com/cifertech/DisplayKit / api_project_summary

Function api_project_summary

server/main.py:84–117  ·  view source on GitHub ↗
(project: dict[str, Any] = Body(...))

Source from the content-addressed store, hash-verified

82
83 @app.post("/api/project/summary")
84 def api_project_summary(project: dict[str, Any] = Body(...)) -> dict[str, Any]:
85 screens = project.get("screens")
86 if not isinstance(screens, list):
87 return {
88 "ok": False,
89 "error": "expected_top_level_array",
90 "detail": "body.screens must be a JSON array",
91 }
92
93 per_screen: list[dict[str, Any]] = []
94 total_elements = 0
95 for s in screens:
96 if not isinstance(s, dict):
97 continue
98 elements = s.get("elements")
99 n = len(elements) if isinstance(elements, list) else 0
100 total_elements += n
101 per_screen.append(
102 {
103 "id": s.get("id"),
104 "name": s.get("name"),
105 "element_count": n,
106 }
107 )
108
109 return {
110 "ok": True,
111 "screen_count": len(screens),
112 "element_count": total_elements,
113 "disp_width": project.get("dispWidth"),
114 "disp_height": project.get("dispHeight"),
115 "driver_mode": project.get("driverMode"),
116 "screens": per_screen,
117 }
118
119 app.include_router(build_icons_router(static_root))
120 app.include_router(build_tft_gif_router())

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected