From eebbf9834989a53bf409556b928f40d4ea0cc01f Mon Sep 17 00:00:00 2001 From: NaiJi Date: Wed, 24 May 2023 23:47:43 -0300 Subject: [PATCH] chore: Move domain list getter to dns provider layer for desec --- .../dns_providers/desec/desec_api.dart | 24 ++++++++---- lib/logic/providers/dns_providers/desec.dart | 37 +++++++++++++++---- 2 files changed, 46 insertions(+), 15 deletions(-) diff --git a/lib/logic/api_maps/rest_maps/dns_providers/desec/desec_api.dart b/lib/logic/api_maps/rest_maps/dns_providers/desec/desec_api.dart index b2fc0e30..3e0368cd 100644 --- a/lib/logic/api_maps/rest_maps/dns_providers/desec/desec_api.dart +++ b/lib/logic/api_maps/rest_maps/dns_providers/desec/desec_api.dart @@ -181,25 +181,35 @@ class DesecApi extends DnsProviderApi { } @override - Future> domainList() async { - List domains = []; + Future> getDomains() async { + List domains = []; + late final Response? response; final Dio client = await getClient(); try { - final Response response = await client.get( + response = await client.get( '', ); await Future.delayed(const Duration(seconds: 1)); - domains = response.data - .map((final el) => el['name'] as String) - .toList(); + domains = response.data; } catch (e) { print(e); + return GenericResult( + success: false, + data: domains, + code: response?.statusCode, + message: response?.statusMessage, + ); } finally { close(client); } - return domains; + return GenericResult( + success: true, + data: domains, + code: response.statusCode, + message: response.statusMessage, + ); } @override diff --git a/lib/logic/providers/dns_providers/desec.dart b/lib/logic/providers/dns_providers/desec.dart index 922a743c..1dc7cfa2 100644 --- a/lib/logic/providers/dns_providers/desec.dart +++ b/lib/logic/providers/dns_providers/desec.dart @@ -217,14 +217,10 @@ class DesecDnsProvider extends DnsProvider { ], ); - if (!result.success) { - return GenericResult( - success: result.success, - data: null, - code: result.code, - message: result.message, - ); - } + return GenericResult( + success: true, + data: null, + ); } String? extractContent(final DnsRecord record) { @@ -235,4 +231,29 @@ class DesecDnsProvider extends DnsProvider { return content; } + + @override + Future>> domainList() async { + List domains = []; + final result = await _adapter.api().getDomains(); + if (result.data.isEmpty || !result.success) { + return GenericResult( + success: result.success, + data: domains, + code: result.code, + message: result.message, + ); + } + + domains = result.data + .map( + (final el) => el['name'] as String, + ) + .toList(); + + return GenericResult( + success: true, + data: domains, + ); + } }