2021-10-29 16:43:26 +01:00
|
|
|
import json
|
|
|
|
from typing import Optional
|
|
|
|
|
|
|
|
from fastapi.params import Query
|
|
|
|
from lnurl.types import LnurlPayMetadata
|
2021-12-01 21:55:04 +00:00
|
|
|
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
|
|
|
|
|
2021-12-01 21:55:04 +00:00
|
|
|
async def lnurlpay_metadata(self, domain) -> LnurlPayMetadata:
|
2021-10-29 16:43:26 +01:00
|
|
|
text = f"Payment to {self.username}"
|
2021-12-01 21:55:04 +00:00
|
|
|
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))
|