From a94f42368df59a2ad98abe68aa5301b273bc2e7e Mon Sep 17 00:00:00 2001 From: Vlad Stan Date: Thu, 3 Oct 2024 13:57:08 +0300 Subject: [PATCH] feat: add JSON custom serializer --- lnbits/core/models.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lnbits/core/models.py b/lnbits/core/models.py index 80129392a..1241dd48d 100644 --- a/lnbits/core/models.py +++ b/lnbits/core/models.py @@ -12,6 +12,7 @@ from ecdsa import SECP256k1, SigningKey from fastapi import Query from passlib.context import CryptContext from pydantic import BaseModel, Field, validator +import json from lnbits.db import FilterModel from lnbits.helpers import url_for @@ -26,6 +27,14 @@ from lnbits.wallets.base import ( PaymentSuccessStatus, ) +def json_custom_serialization(_, o): + if isinstance(o, datetime): + return o.isoformat() + raise TypeError(f"Object is not JSON serializable: {o}") + + +json.JSONEncoder.default = json_custom_serialization + class BaseWallet(BaseModel): id: str @@ -279,9 +288,9 @@ class Payment(BaseModel): amount: int fee: int memo: Optional[str] - time: int + time: datetime bolt11: str - expiry: Optional[float] + expiry: Optional[datetime] extra: Optional[dict] webhook: Optional[str] webhook_status: Optional[int] = None