feat(workbench): add runtime GIS and sample integrations
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
from __future__ import annotations
|
||||
|
||||
|
||||
class DomainError(Exception):
|
||||
"""A domain rejection with a stable API error payload."""
|
||||
|
||||
def __init__(self, code: str, message: str, *, refs: list | None = None,
|
||||
recovery: str = "none", status: int = 422):
|
||||
super().__init__(message)
|
||||
self.code, self.message, self.status = code, message, status
|
||||
self.refs, self.recovery = refs or [], recovery
|
||||
|
||||
def payload(self) -> dict:
|
||||
return {"code": self.code, "message": self.message,
|
||||
"retryable": self.recovery == "retry_same_request",
|
||||
"related_refs": self.refs, "recovery_action": self.recovery,
|
||||
"retry_after_seconds": None}
|
||||
|
||||
|
||||
def require(condition: bool, code: str, message: str, **kwargs) -> None:
|
||||
if not condition:
|
||||
raise DomainError(code, message, **kwargs)
|
||||
Reference in New Issue
Block a user