mirror of https://github.com/lukechilds/lnbits.git
Kristjan
4 years ago
3 changed files with 70 additions and 28 deletions
@ -0,0 +1,44 @@ |
|||||
|
from lnbits.extensions.subdomains.models import Domains |
||||
|
import httpx, json |
||||
|
|
||||
|
|
||||
|
async def cloudflare_create_subdomain(domain: Domains, subdomain: str, record_type: str, ip: str): |
||||
|
# Call to cloudflare sort of a dry-run - if success delete the domain and wait for payment |
||||
|
### SEND REQUEST TO CLOUDFLARE |
||||
|
url = "https://api.cloudflare.com/client/v4/zones/" + domain.cf_zone_id + "/dns_records" |
||||
|
header = {"Authorization": "Bearer " + domain.cf_token, "Content-Type": "application/json"} |
||||
|
aRecord = subdomain + "." + domain.domain |
||||
|
cf_response = "" |
||||
|
async with httpx.AsyncClient() as client: |
||||
|
try: |
||||
|
r = await client.post( |
||||
|
url, |
||||
|
headers=header, |
||||
|
json={ |
||||
|
"type": record_type, |
||||
|
"name": aRecord, |
||||
|
"content": ip, |
||||
|
"ttl": 0, |
||||
|
"proxed": False, |
||||
|
}, |
||||
|
timeout=40, |
||||
|
) |
||||
|
cf_response = json.loads(r.text) |
||||
|
except AssertionError: |
||||
|
cf_response = "Error occured" |
||||
|
return cf_response |
||||
|
|
||||
|
|
||||
|
async def cloudflare_deletesubdomain(domain: Domains, domain_id: str): |
||||
|
url = "https://api.cloudflare.com/client/v4/zones/" + domain.cf_zone_id + "/dns_records" |
||||
|
header = {"Authorization": "Bearer " + domain.cf_token, "Content-Type": "application/json"} |
||||
|
async with httpx.AsyncClient() as client: |
||||
|
try: |
||||
|
r = await client.delete( |
||||
|
url + "/" + domain_id, |
||||
|
headers=header, |
||||
|
timeout=40, |
||||
|
) |
||||
|
cf_response = r.text |
||||
|
except AssertionError: |
||||
|
cf_response = "Error occured" |
Loading…
Reference in new issue