From 74b8f1113e0971565149cce92048564cd04b80d9 Mon Sep 17 00:00:00 2001 From: William Mantly Date: Wed, 25 Feb 2026 13:49:46 -0500 Subject: [PATCH] Prokbun API fix --- nodejs/models/dns_provider.js | 12 ++++++++---- nodejs/models/dns_provider/porkbun.js | 16 +++++++++++----- nodejs/services/host_scheduler.js | 2 +- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/nodejs/models/dns_provider.js b/nodejs/models/dns_provider.js index 1a6e1ae..105bdf8 100644 --- a/nodejs/models/dns_provider.js +++ b/nodejs/models/dns_provider.js @@ -182,17 +182,21 @@ if(require.main === module){(async function(){try{ // console.log(await DnsProvider.findall()); - let provider = await DnsProvider.get('e8443e03ac503c7b'); + let provider = await DnsProvider.get('84c6613b9464fbe1'); - console.log(await provider.listDomains()) + // console.log(await provider.listDomains()) let domain = await Domain.get('holycore.quest') // pork // let domain = await Domain.get('rm-rf.stream') // DO // let domain = await Domain.get('test.wtf') // CF - // console.log(await domain.createRecord({type: 'TXT', name: 'apitewefweefwsewft222', data:'hiiiiiii'})) + console.log(await domain.createRecord({ + type: 'TXT', + name: 'apitewefweefwsewft222', + data: 'sdddddddad' + })); - let txtRecords = await domain.getRecords({type: 'TXT'}); + let txtRecords = await domain.getRecords(); console.log(txtRecords.map(i=>`${i.name}: ${i.data}`)) // console.log(await domain.deleteRecords({type: 'TXT'})) diff --git a/nodejs/models/dns_provider/porkbun.js b/nodejs/models/dns_provider/porkbun.js index 64347d8..0fe86c6 100644 --- a/nodejs/models/dns_provider/porkbun.js +++ b/nodejs/models/dns_provider/porkbun.js @@ -93,13 +93,19 @@ class PorkBun extends DnsApi{ }); } - async createRecord(domain, options, force){ - if(force){ - await this.deleteRecords(domain, options) - } - + async createRecord(domain, options, force = true){ try{ + // Throw errors for missing keys, do this first. options = this.__parseOptions(options, ['type', 'name', 'data']); + + // Delete the current records + if(force){ + let forceOptions = new Map(Object.entries(options)); + forceOptions.delete('data'); + forceOptions.delete('content'); + await this.deleteRecords(domain, Object.fromEntries(forceOptions)); + } + let res = await this.post(`/dns/create/${domain}`, options); return res.data.result; diff --git a/nodejs/services/host_scheduler.js b/nodejs/services/host_scheduler.js index 4272972..50e6768 100644 --- a/nodejs/services/host_scheduler.js +++ b/nodejs/services/host_scheduler.js @@ -20,7 +20,7 @@ const {Host} = require('../models/host'); // Initial wildcard cert check 30 seconds after app starts // Delay allows the system to fully initialize before checking certs -setTimeout(Host.checkWildcardForRenew.bind(Host), 30000); +// setTimeout(Host.checkWildcardForRenew.bind(Host), 30000); // Check wildcard certs once every 24 hours // Ensures certificates are renewed well before expiration