refactor: Create empty DnsProvider interfaces

pull/213/head
NaiJi ✨ 2023-05-02 23:42:18 -03:00
parent 0d55361a9b
commit 30385c2470
15 changed files with 59 additions and 13 deletions

View File

@ -7,7 +7,7 @@ class ApiController {
_dnsProviderApiFactory;
static void initDnsProviderApiFactory(
final DnsProviderFactorySettings settings,
final DnsProviderSettings settings,
) {
_dnsProviderApiFactory =
ApiFactoryCreator.createDnsProviderApiFactory(settings);

View File

@ -28,7 +28,7 @@ class ApiFactoryCreator {
}
static DnsProviderApiFactory createDnsProviderApiFactory(
final DnsProviderFactorySettings settings,
final DnsProviderSettings settings,
) {
switch (settings.provider) {
case DnsProviderType.cloudflare:

View File

@ -4,5 +4,5 @@ class StagingOptions {
/// Whether we request for staging temprorary certificates.
/// Hardcode to 'true' in the middle of testing to not
/// get your domain banned by constant certificate renewal
static bool get stagingAcme => false;
static bool get stagingAcme => true;
}

View File

@ -69,7 +69,7 @@ class ServerInstallationCubit extends Cubit<ServerInstallationState> {
void setDnsProviderType(final DnsProviderType providerType) async {
await repository.saveDnsProviderType(providerType);
ApiController.initDnsProviderApiFactory(
DnsProviderFactorySettings(
DnsProviderSettings(
provider: providerType,
),
);

View File

@ -73,7 +73,7 @@ class ServerInstallationRepository {
(serverDomain != null &&
serverDomain.provider != ServerProviderType.unknown)) {
ApiController.initDnsProviderApiFactory(
DnsProviderFactorySettings(
DnsProviderSettings(
provider: dnsProvider ?? serverDomain!.provider,
),
);

View File

@ -0,0 +1,3 @@
import 'package:selfprivacy/logic/providers/dns_providers/dns_provider.dart';
class CloudflareDnsProvider extends DnsProvider {}

View File

@ -0,0 +1,3 @@
import 'package:selfprivacy/logic/providers/dns_providers/dns_provider.dart';
class DigitalOceanDnsProvider extends DnsProvider {}

View File

@ -0,0 +1 @@
abstract class DnsProvider {}

View File

@ -0,0 +1,25 @@
import 'package:selfprivacy/logic/models/hive/server_domain.dart';
import 'package:selfprivacy/logic/providers/dns_providers/cloudflare.dart';
import 'package:selfprivacy/logic/providers/dns_providers/digital_ocean.dart';
import 'package:selfprivacy/logic/providers/dns_providers/dns_provider.dart';
import 'package:selfprivacy/logic/providers/provider_settings.dart';
class UnknownProviderException implements Exception {
UnknownProviderException(this.message);
final String message;
}
class DnsProviderFactory {
static DnsProvider createDnsProviderInterface(
final DnsProviderSettings settings,
) {
switch (settings.provider) {
case DnsProviderType.cloudflare:
return CloudflareDnsProvider();
case DnsProviderType.digitalOcean:
return DigitalOceanDnsProvider();
case DnsProviderType.unknown:
throw UnknownProviderException('Unknown server provider');
}
}
}

View File

@ -11,8 +11,8 @@ class ServerProviderSettings {
final String? location;
}
class DnsProviderFactorySettings {
DnsProviderFactorySettings({
class DnsProviderSettings {
DnsProviderSettings({
required this.provider,
});

View File

@ -1,20 +1,34 @@
import 'package:selfprivacy/logic/providers/dns_providers/dns_provider.dart';
import 'package:selfprivacy/logic/providers/dns_providers/dns_provider_factory.dart';
import 'package:selfprivacy/logic/providers/provider_settings.dart';
import 'package:selfprivacy/logic/providers/server_provider.dart';
import 'package:selfprivacy/logic/providers/server_providers/server_provider.dart';
import 'package:selfprivacy/logic/providers/server_providers/server_provider_factory.dart';
class ProvidersController {
static ServerProvider? get currentServerProvider => _serverProvider;
static DnsProvider? get currentDnsProvider => _dnsProvider;
static void initServerProvider(
final ServerProviderSettings settings,
) {
_serverProvider =
ServerProviderFactory.createServerProviderInterface(settings);
_serverProvider = ServerProviderFactory.createServerProviderInterface(
settings,
);
}
static void initDnsProvider(
final DnsProviderSettings settings,
) {
_dnsProvider = DnsProviderFactory.createDnsProviderInterface(
settings,
);
}
static void clearProviders() {
_serverProvider = null;
_dnsProvider = null;
}
static ServerProvider? _serverProvider;
static DnsProvider? _dnsProvider;
}

View File

@ -12,7 +12,7 @@ import 'package:selfprivacy/logic/models/server_basic_info.dart';
import 'package:selfprivacy/logic/models/server_metadata.dart';
import 'package:selfprivacy/logic/models/server_provider_location.dart';
import 'package:selfprivacy/logic/models/server_type.dart';
import 'package:selfprivacy/logic/providers/server_provider.dart';
import 'package:selfprivacy/logic/providers/server_providers/server_provider.dart';
import 'package:selfprivacy/utils/extensions/string_extensions.dart';
import 'package:selfprivacy/utils/network_utils.dart';
import 'package:selfprivacy/utils/password_generator.dart';

View File

@ -13,7 +13,7 @@ import 'package:selfprivacy/logic/models/server_basic_info.dart';
import 'package:selfprivacy/logic/models/server_metadata.dart';
import 'package:selfprivacy/logic/models/server_provider_location.dart';
import 'package:selfprivacy/logic/models/server_type.dart';
import 'package:selfprivacy/logic/providers/server_provider.dart';
import 'package:selfprivacy/logic/providers/server_providers/server_provider.dart';
import 'package:selfprivacy/utils/extensions/string_extensions.dart';
import 'package:selfprivacy/utils/network_utils.dart';
import 'package:selfprivacy/utils/password_generator.dart';

View File

@ -1,6 +1,6 @@
import 'package:selfprivacy/logic/providers/provider_settings.dart';
import 'package:selfprivacy/logic/models/hive/server_details.dart';
import 'package:selfprivacy/logic/providers/server_provider.dart';
import 'package:selfprivacy/logic/providers/server_providers/server_provider.dart';
import 'package:selfprivacy/logic/providers/server_providers/digital_ocean.dart';
import 'package:selfprivacy/logic/providers/server_providers/hetzner.dart';