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

58 lines
1.3 KiB
Python
Raw Normal View History

2021-10-29 16:43:26 +01:00
import json
from typing import Optional
from fastapi.params import Query
from lnurl.types import LnurlPayMetadata
from pydantic.main import BaseModel
2021-10-29 16:43:26 +01:00
class CreateDomain(BaseModel):
2021-11-26 05:58:20 +00:00
wallet: str = Query(...)
2021-10-29 16:43:26 +01:00
domain: str = Query(...)
cf_token: str = Query(...)
cf_zone_id: str = Query(...)
webhook: str = Query(None)
cost: int = Query(..., ge=0)
2021-11-26 05:58:20 +00:00
2021-10-29 16:43:26 +01:00
class Domains(BaseModel):
id: str
wallet: str
domain: str
cf_token: str
cf_zone_id: str
2021-11-25 16:24:11 +00:00
webhook: Optional[str]
2021-10-29 16:43:26 +01:00
cost: int
time: int
2021-11-26 05:58:20 +00:00
2021-10-29 16:43:26 +01:00
class CreateAddress(BaseModel):
domain: str = Query(...)
username: str = Query(...)
email: str = Query(None)
wallet_endpoint: str = Query(...)
wallet_key: str = Query(...)
sats: int = Query(..., ge=0)
duration: int = Query(..., ge=1)
2021-11-26 05:58:20 +00:00
2021-10-29 16:43:26 +01:00
class Addresses(BaseModel):
id: str
wallet: str
domain: str
2021-11-25 16:24:11 +00:00
email: Optional[str]
2021-10-29 16:43:26 +01:00
username: str
wallet_key: str
wallet_endpoint: str
sats: int
duration: int
paid: bool
time: int
async def lnurlpay_metadata(self, domain) -> LnurlPayMetadata:
2021-10-29 16:43:26 +01:00
text = f"Payment to {self.username}"
identifier = f"{self.username}@{domain}"
metadata = [["text/plain", text], ["text/identifier", identifier]]
2022-01-30 19:43:30 +00:00
2021-10-29 16:43:26 +01:00
return LnurlPayMetadata(json.dumps(metadata))