19 lines
673 B
Python
19 lines
673 B
Python
from uuid import UUID
|
|
|
|
|
|
class SampleFailure(Exception):
|
|
def __init__(self, code: str, message: str, status: int = 422, *,
|
|
effect: str = "none", request_id: UUID | str | None = None):
|
|
super().__init__(message)
|
|
self.code, self.message, self.status = code, message, status
|
|
self.effect, self.request_id = effect, str(request_id) if request_id else None
|
|
|
|
def payload(self):
|
|
return {"code": self.code, "message": self.message,
|
|
"request_id": self.request_id, "effect": self.effect}
|
|
|
|
|
|
def ensure(condition, code, message, status=422):
|
|
if not condition:
|
|
raise SampleFailure(code, message, status)
|