2023-11-09 13:21:56 +00:00
|
|
|
part of 'cloudflare_dns_info.dart';
|
|
|
|
|
|
|
|
CloudflareDnsRecord _fromDnsRecord(
|
|
|
|
final DnsRecord dnsRecord,
|
|
|
|
final String rootDomain,
|
2023-11-19 19:34:58 +00:00
|
|
|
) {
|
2024-01-15 10:45:36 +00:00
|
|
|
final String type = dnsRecord.type;
|
2023-11-19 19:34:58 +00:00
|
|
|
String name = dnsRecord.name ?? '';
|
2023-11-22 08:09:19 +00:00
|
|
|
if (name != rootDomain && name != '@') {
|
2023-11-19 19:34:58 +00:00
|
|
|
name = '$name.$rootDomain';
|
|
|
|
}
|
2024-01-15 10:45:36 +00:00
|
|
|
if (type == 'MX' && name == '@') {
|
|
|
|
name = rootDomain;
|
|
|
|
}
|
2023-11-19 19:34:58 +00:00
|
|
|
return CloudflareDnsRecord(
|
|
|
|
content: dnsRecord.content,
|
|
|
|
name: name,
|
2024-01-15 10:45:36 +00:00
|
|
|
type: type,
|
2023-11-19 19:34:58 +00:00
|
|
|
zoneName: rootDomain,
|
|
|
|
id: null,
|
|
|
|
ttl: dnsRecord.ttl,
|
|
|
|
);
|
|
|
|
}
|
2023-11-09 13:21:56 +00:00
|
|
|
|
2024-01-05 03:15:27 +00:00
|
|
|
DnsRecord _toDnsRecord(
|
|
|
|
final CloudflareDnsRecord cloudflareRecord,
|
|
|
|
final String domainName,
|
|
|
|
) {
|
|
|
|
String? name = cloudflareRecord.name;
|
|
|
|
if (name != null && name.endsWith('.$domainName')) {
|
|
|
|
// e.g. 'api.example.com -> [api] [example] [com] -> [api]'
|
|
|
|
name = name.split('.')[0];
|
|
|
|
}
|
|
|
|
|
|
|
|
return DnsRecord(
|
|
|
|
content: cloudflareRecord.content,
|
|
|
|
type: cloudflareRecord.type,
|
|
|
|
ttl: cloudflareRecord.ttl,
|
|
|
|
name: name,
|
|
|
|
);
|
|
|
|
}
|
2023-11-09 13:21:56 +00:00
|
|
|
|
|
|
|
ServerDomain _toServerDomain(final CloudflareZone cloudflareZone) =>
|
|
|
|
ServerDomain(
|
|
|
|
domainName: cloudflareZone.name,
|
|
|
|
provider: DnsProviderType.cloudflare,
|
|
|
|
);
|