Allow add/edit domain to upsert tenant DNS on Cloudflare or Arvan.

Update DNS writes @, www, business, customer, and api records on the chosen provider instead of Arvan only.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Alireza Hassani
2026-08-31 18:46:48 +03:30
co-authored by Cursor
parent d1f60b5313
commit f42e6fe2a4
8 changed files with 101 additions and 35 deletions
+17 -5
View File
@@ -719,8 +719,10 @@ export class DomainAdminService {
},
});
// Same Arvan helper as business-admin domain add/edit (`ensureTenantRecords`).
const dnsError = dto.updateDns ? await this.applyArvanDns(host) : null;
// Same DNS helper as business-admin domain add/edit (`ensureTenantRecords`).
const dnsError = dto.updateDns
? await this.applyTenantDns(host, dto.dnsProvider === 'cloudflare' ? 'cloudflare' : 'arvan')
: null;
return {
...updated,
@@ -936,12 +938,22 @@ export class DomainAdminService {
}
}
private async applyArvanDns(host: string): Promise<string | null> {
private async applyTenantDns(
host: string,
provider: ParkedDnsProvider,
): Promise<string | null> {
try {
await this.arvanDns.ensureTenantRecords(host);
if (provider === 'cloudflare') {
await this.cloudflareDns.ensureTenantRecords(host);
} else {
await this.arvanDns.ensureTenantRecords(host);
}
return null;
} catch (err) {
return this.httpErrorMessage(err, 'Arvan DNS update failed');
return this.httpErrorMessage(
err,
provider === 'cloudflare' ? 'Cloudflare DNS update failed' : 'Arvan DNS update failed',
);
}
}