lnbits-legend/lnbits/extensions/paywall/models.py

42 lines
902 B
Python
Raw Normal View History

2021-10-26 22:52:11 +01:00
import json
from sqlite3 import Row
from typing import Optional
from fastapi import Query
from pydantic import BaseModel
class CreatePaywall(BaseModel):
url: str = Query(...)
memo: str = Query(...)
description: str = Query(None)
amount: int = Query(..., ge=0)
remembers: bool = Query(...)
2021-11-12 04:14:55 +00:00
class CreatePaywallInvoice(BaseModel):
amount: int = Query(..., ge=1)
2021-10-26 22:52:11 +01:00
2021-11-12 04:14:55 +00:00
class CheckPaywallInvoice(BaseModel):
payment_hash: str = Query(...)
2021-10-26 22:52:11 +01:00
2021-11-12 04:14:55 +00:00
class Paywall(BaseModel):
2021-10-26 22:52:11 +01:00
id: str
wallet: str
url: str
memo: str
description: Optional[str]
2021-10-26 22:52:11 +01:00
amount: int
time: int
remembers: bool
extras: Optional[dict]
@classmethod
def from_row(cls, row: Row) -> "Paywall":
data = dict(row)
data["remembers"] = bool(data["remembers"])
data["extras"] = json.loads(data["extras"]) if data["extras"] else None
return cls(**data)