mirror of
https://git.selfprivacy.org/kherel/selfprivacy.org.app.git
synced 2024-09-30 07:17:50 +00:00
refactor: Create empty DnsProvider interfaces
This commit is contained in:
parent
0d55361a9b
commit
30385c2470
|
@ -7,7 +7,7 @@ class ApiController {
|
||||||
_dnsProviderApiFactory;
|
_dnsProviderApiFactory;
|
||||||
|
|
||||||
static void initDnsProviderApiFactory(
|
static void initDnsProviderApiFactory(
|
||||||
final DnsProviderFactorySettings settings,
|
final DnsProviderSettings settings,
|
||||||
) {
|
) {
|
||||||
_dnsProviderApiFactory =
|
_dnsProviderApiFactory =
|
||||||
ApiFactoryCreator.createDnsProviderApiFactory(settings);
|
ApiFactoryCreator.createDnsProviderApiFactory(settings);
|
||||||
|
|
|
@ -28,7 +28,7 @@ class ApiFactoryCreator {
|
||||||
}
|
}
|
||||||
|
|
||||||
static DnsProviderApiFactory createDnsProviderApiFactory(
|
static DnsProviderApiFactory createDnsProviderApiFactory(
|
||||||
final DnsProviderFactorySettings settings,
|
final DnsProviderSettings settings,
|
||||||
) {
|
) {
|
||||||
switch (settings.provider) {
|
switch (settings.provider) {
|
||||||
case DnsProviderType.cloudflare:
|
case DnsProviderType.cloudflare:
|
||||||
|
|
|
@ -4,5 +4,5 @@ class StagingOptions {
|
||||||
/// Whether we request for staging temprorary certificates.
|
/// Whether we request for staging temprorary certificates.
|
||||||
/// Hardcode to 'true' in the middle of testing to not
|
/// Hardcode to 'true' in the middle of testing to not
|
||||||
/// get your domain banned by constant certificate renewal
|
/// get your domain banned by constant certificate renewal
|
||||||
static bool get stagingAcme => false;
|
static bool get stagingAcme => true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,7 +69,7 @@ class ServerInstallationCubit extends Cubit<ServerInstallationState> {
|
||||||
void setDnsProviderType(final DnsProviderType providerType) async {
|
void setDnsProviderType(final DnsProviderType providerType) async {
|
||||||
await repository.saveDnsProviderType(providerType);
|
await repository.saveDnsProviderType(providerType);
|
||||||
ApiController.initDnsProviderApiFactory(
|
ApiController.initDnsProviderApiFactory(
|
||||||
DnsProviderFactorySettings(
|
DnsProviderSettings(
|
||||||
provider: providerType,
|
provider: providerType,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -73,7 +73,7 @@ class ServerInstallationRepository {
|
||||||
(serverDomain != null &&
|
(serverDomain != null &&
|
||||||
serverDomain.provider != ServerProviderType.unknown)) {
|
serverDomain.provider != ServerProviderType.unknown)) {
|
||||||
ApiController.initDnsProviderApiFactory(
|
ApiController.initDnsProviderApiFactory(
|
||||||
DnsProviderFactorySettings(
|
DnsProviderSettings(
|
||||||
provider: dnsProvider ?? serverDomain!.provider,
|
provider: dnsProvider ?? serverDomain!.provider,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
3
lib/logic/providers/dns_providers/cloudflare.dart
Normal file
3
lib/logic/providers/dns_providers/cloudflare.dart
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
import 'package:selfprivacy/logic/providers/dns_providers/dns_provider.dart';
|
||||||
|
|
||||||
|
class CloudflareDnsProvider extends DnsProvider {}
|
3
lib/logic/providers/dns_providers/digital_ocean.dart
Normal file
3
lib/logic/providers/dns_providers/digital_ocean.dart
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
import 'package:selfprivacy/logic/providers/dns_providers/dns_provider.dart';
|
||||||
|
|
||||||
|
class DigitalOceanDnsProvider extends DnsProvider {}
|
1
lib/logic/providers/dns_providers/dns_provider.dart
Normal file
1
lib/logic/providers/dns_providers/dns_provider.dart
Normal file
|
@ -0,0 +1 @@
|
||||||
|
abstract class DnsProvider {}
|
25
lib/logic/providers/dns_providers/dns_provider_factory.dart
Normal file
25
lib/logic/providers/dns_providers/dns_provider_factory.dart
Normal 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');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,8 +11,8 @@ class ServerProviderSettings {
|
||||||
final String? location;
|
final String? location;
|
||||||
}
|
}
|
||||||
|
|
||||||
class DnsProviderFactorySettings {
|
class DnsProviderSettings {
|
||||||
DnsProviderFactorySettings({
|
DnsProviderSettings({
|
||||||
required this.provider,
|
required this.provider,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -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/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';
|
import 'package:selfprivacy/logic/providers/server_providers/server_provider_factory.dart';
|
||||||
|
|
||||||
class ProvidersController {
|
class ProvidersController {
|
||||||
static ServerProvider? get currentServerProvider => _serverProvider;
|
static ServerProvider? get currentServerProvider => _serverProvider;
|
||||||
|
static DnsProvider? get currentDnsProvider => _dnsProvider;
|
||||||
|
|
||||||
static void initServerProvider(
|
static void initServerProvider(
|
||||||
final ServerProviderSettings settings,
|
final ServerProviderSettings settings,
|
||||||
) {
|
) {
|
||||||
_serverProvider =
|
_serverProvider = ServerProviderFactory.createServerProviderInterface(
|
||||||
ServerProviderFactory.createServerProviderInterface(settings);
|
settings,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void initDnsProvider(
|
||||||
|
final DnsProviderSettings settings,
|
||||||
|
) {
|
||||||
|
_dnsProvider = DnsProviderFactory.createDnsProviderInterface(
|
||||||
|
settings,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void clearProviders() {
|
static void clearProviders() {
|
||||||
_serverProvider = null;
|
_serverProvider = null;
|
||||||
|
_dnsProvider = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ServerProvider? _serverProvider;
|
static ServerProvider? _serverProvider;
|
||||||
|
static DnsProvider? _dnsProvider;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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_metadata.dart';
|
||||||
import 'package:selfprivacy/logic/models/server_provider_location.dart';
|
import 'package:selfprivacy/logic/models/server_provider_location.dart';
|
||||||
import 'package:selfprivacy/logic/models/server_type.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/extensions/string_extensions.dart';
|
||||||
import 'package:selfprivacy/utils/network_utils.dart';
|
import 'package:selfprivacy/utils/network_utils.dart';
|
||||||
import 'package:selfprivacy/utils/password_generator.dart';
|
import 'package:selfprivacy/utils/password_generator.dart';
|
||||||
|
|
|
@ -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_metadata.dart';
|
||||||
import 'package:selfprivacy/logic/models/server_provider_location.dart';
|
import 'package:selfprivacy/logic/models/server_provider_location.dart';
|
||||||
import 'package:selfprivacy/logic/models/server_type.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/extensions/string_extensions.dart';
|
||||||
import 'package:selfprivacy/utils/network_utils.dart';
|
import 'package:selfprivacy/utils/network_utils.dart';
|
||||||
import 'package:selfprivacy/utils/password_generator.dart';
|
import 'package:selfprivacy/utils/password_generator.dart';
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import 'package:selfprivacy/logic/providers/provider_settings.dart';
|
import 'package:selfprivacy/logic/providers/provider_settings.dart';
|
||||||
import 'package:selfprivacy/logic/models/hive/server_details.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/digital_ocean.dart';
|
||||||
import 'package:selfprivacy/logic/providers/server_providers/hetzner.dart';
|
import 'package:selfprivacy/logic/providers/server_providers/hetzner.dart';
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue