fix: create row on event

This commit is contained in:
Vlad Stan
2026-07-01 16:57:22 +03:00
parent a3dafe6644
commit e6662e041e
3 changed files with 19 additions and 3 deletions
+15 -3
View File
@@ -108,7 +108,7 @@ def extension_api_method(
) -> Callable[[ExtensionAPI, _RequestModel], Awaitable[_ResponseModel]]:
@wraps(function)
async def wrapper(self: ExtensionAPI, request: _RequestModel) -> _ResponseModel:
if require_auth and not self.user_id:
if require_auth and not self.has_authenticated_context():
raise PermissionError(
f"Extension API method '{method_id}' requires authentication."
)
@@ -128,20 +128,32 @@ class ExtensionAPI:
permissions: Iterable[Any],
*,
user_id: str | None = None,
wallet_id: str | None = None,
context: str = "user",
) -> None:
self.extension_id = extension_id
self.permissions, self.permission_policies = self._permission_data(permissions)
self.user_id = user_id
self.wallet_id = wallet_id
self.context = context
self._uuid = secrets.token_urlsafe(12).replace("-", "_")
def __repr__(self) -> str:
return (
"ExtensionAPI("
f"extension_id={self.extension_id!r}, "
f"context={self.context!r}, "
f"_uuid={self._uuid!r}"
")"
)
def require_permission(self, permission: str | None) -> None:
if permission and permission not in self.permissions:
raise PermissionError(
f"Extension '{self.extension_id}' is missing permission '{permission}'."
)
def has_authenticated_context(self) -> bool:
return bool(self.user_id) or self.context == "event"
@extension_api_method(
method_id="storage.get",
namespace="storage",
+3
View File
@@ -23,6 +23,7 @@ async def invoke_wasm_extension_export(
payload: Mapping[str, Any] | None = None,
*,
user: Any | None = None,
context: str = "user",
) -> dict[str, Any]:
extension = _get_registered_extension(app, ext_id)
permissions = await _extension_permissions(extension)
@@ -30,7 +31,9 @@ async def invoke_wasm_extension_export(
extension.id,
permissions,
user_id=_user_id(user),
context=context,
)
print("### api", api)
return await asyncio.to_thread(
_invoke_wasm_extension_export_sync,
+1
View File
@@ -138,6 +138,7 @@ async def dispatch_wasm_invoice_paid(app: FastAPI, payment: Any) -> None:
extension.id,
export_name,
_wasm_invoice_paid_payload(payment),
context="event",
)
except Exception as exc:
logger.warning(