fix(M02): 도면 양식 저장이 빈 {} 로 덮이던 흠 — getDoc 을 await · 서버는 뼈대 없는 문서를 400 으로 거절
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0148XFUpPfpiuTjxF1EK9c95
This commit is contained in:
@@ -65,9 +65,17 @@ def read(kind: str, name: str) -> dict[str, Any]:
|
||||
return {"종류": kind, "이름": name, "판": version_of(raw), "문서": json.loads(raw)}
|
||||
|
||||
|
||||
def _check_skeleton(kind: str, doc: Any) -> None:
|
||||
"""빈 문서·뼈대 없는 문서는 거절 — 표는 열 목록 · 도면은 entities 목록."""
|
||||
key = "열" if kind == "table" else "entities"
|
||||
if not isinstance(doc, dict) or not isinstance(doc.get(key), list):
|
||||
raise StoreError(400, f"양식 문서에 「{key}」 목록이 없음 — 저장하지 않음")
|
||||
|
||||
|
||||
def write(kind: str, name: str, version: str, doc: Any) -> dict[str, Any]:
|
||||
"""`version` 이 빈 글이면 새로 만듦(이미 있으면 409) · 아니면 그 판일 때만 덮어씀."""
|
||||
path = _path(kind, name)
|
||||
_check_skeleton(kind, doc)
|
||||
with _LOCK:
|
||||
have = version_of(path.read_bytes()) if path.is_file() else ""
|
||||
if have != (version or ""):
|
||||
|
||||
Reference in New Issue
Block a user