Move more dns provider related code into the shared DomainsModel.js to avoid duplication

This commit is contained in:
Johannes Zellner
2025-05-03 09:46:53 +02:00
parent 8446773037
commit 52ad526b87
4 changed files with 63 additions and 78 deletions
+59
View File
@@ -2,6 +2,35 @@
import { fetcher } from 'pankow';
import { API_ORIGIN } from '../constants.js';
const providers = [
{ name: 'AWS Route53', value: 'route53' },
{ name: 'Bunny', value: 'bunny' },
{ name: 'Cloudflare', value: 'cloudflare' },
{ name: 'deSEC', value: 'desec' },
{ name: 'DigitalOcean', value: 'digitalocean' },
{ name: 'DNSimple', value: 'dnsimple' },
{ name: 'Gandi LiveDNS', value: 'gandi' },
{ name: 'GoDaddy', value: 'godaddy' },
{ name: 'Google Cloud DNS', value: 'gcdns' },
{ name: 'Hetzner', value: 'hetzner' },
{ name: 'INWX', value: 'inwx' },
{ name: 'Linode', value: 'linode' },
{ name: 'Name.com', value: 'namecom' },
{ name: 'Namecheap', value: 'namecheap' },
{ name: 'Netcup', value: 'netcup' },
{ name: 'OVH', value: 'ovh' },
{ name: 'Porkbun', value: 'porkbun' },
{ name: 'Vultr', value: 'vultr' },
{ name: 'Wildcard', value: 'wildcard' },
{ name: 'Manual (not recommended)', value: 'manual' },
{ name: 'No-op (only for development)', value: 'noop' }
];
function prettyProviderName(provider) {
const tmp = providers.find(p => provider === p.value);
return tmp ? tmp.name : provider;
};
function filterForProvider(provider, config) {
let props = [];
switch (provider) {
@@ -66,6 +95,33 @@ function filterForProvider(provider, config) {
return ret;
}
// creates an object with all potential properties for the UI forms to work with
function createEmptyConfig() {
return {
accessKeyId: '',
accessKey: '',
accessToken: '',
apiKey: '',
apikey: '',
appSecret: '',
apiPassword: '',
apiSecret: '',
consumerKey: '',
credentials: { client_email: '', private_key: '' },
customerNumber: '',
defaultProxyStatus: false,
email: '',
endpoint: '',
password: '',
projectId: '',
secretAccessKey: '',
secretapikey: '',
token: '',
tokenType: '',
username: '',
};
}
function create() {
const accessToken = localStorage.token;
@@ -190,4 +246,7 @@ function create() {
export default {
create,
createEmptyConfig,
prettyProviderName,
providers,
};