feat(M02): 조합 키 하나 읽기 /api/m02/combos/key/{키} — 어느 층이든 · 그 층 읽기 권한(PLAN 27-2c 서버)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BU9gbNE3aWFUvE61pS2WGt
This commit is contained in:
2026-09-30 13:20:19 +09:00
co-authored by Claude Opus 5.5
parent ae51bed23c
commit 6c0210ebc5
3 changed files with 28 additions and 0 deletions
@@ -67,6 +67,16 @@ def get_all(session: Session = Depends(verify_session)) -> list[dict]:
return out
@router.get("/combos/key/{key}")
def get_by_key(key: str, session: Session = Depends(verify_session)) -> dict:
"""키 하나(어느 층이든 · 그 층 읽기 권한) — `{layer, owner, 판, combo, 줄, …}`."""
got = combos.where(key)
if got is None:
raise HTTPException(status_code=404, detail=f"없는 조합 「{key}」")
layer, owner = got
return {"layer": layer, "owner": owner, **_call(_root(session, layer, owner), combos.one, key)}
@router.get("/layers/{layer}/combos")
def get_combos(layer: Layer, owner: str | None = None, session: Session = Depends(verify_session)):
return _call(_root(session, layer, owner), combos.listing)