diff --git a/lib/logic/api_maps/rest_maps/api_controller.dart b/lib/logic/api_maps/rest_maps/api_controller.dart new file mode 100644 index 00000000..440d25af --- /dev/null +++ b/lib/logic/api_maps/rest_maps/api_controller.dart @@ -0,0 +1,44 @@ +import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_creator.dart'; +import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_settings.dart'; +import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider_factory.dart'; +import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider_factory.dart'; + +class ApiController { + static VolumeProviderApiFactory? get currentVolumeProviderApiFactory => + _volumeProviderApiFactory; + static DnsProviderApiFactory? get currentDnsProviderApiFactory => + _dnsProviderApiFactory; + static ServerProviderApiFactory? get currentServerProviderApiFactory => + _serverProviderApiFactory; + + static void initVolumeProviderApiFactory( + final ServerProviderApiFactorySettings settings, + ) { + _volumeProviderApiFactory = + VolumeApiFactoryCreator.createVolumeProviderApiFactory(settings); + } + + static void initDnsProviderApiFactory( + final DnsProviderApiFactorySettings settings, + ) { + _dnsProviderApiFactory = + ApiFactoryCreator.createDnsProviderApiFactory(settings); + } + + static void initServerProviderApiFactory( + final ServerProviderApiFactorySettings settings, + ) { + _serverProviderApiFactory = + ApiFactoryCreator.createServerProviderApiFactory(settings); + } + + static void clearProviderApiFactories() { + _volumeProviderApiFactory = null; + _dnsProviderApiFactory = null; + _serverProviderApiFactory = null; + } + + static VolumeProviderApiFactory? _volumeProviderApiFactory; + static DnsProviderApiFactory? _dnsProviderApiFactory; + static ServerProviderApiFactory? _serverProviderApiFactory; +} diff --git a/lib/logic/api_maps/rest_maps/server_providers/server_provider.dart b/lib/logic/api_maps/rest_maps/server_providers/server_provider.dart index 0be28b85..f846a7a8 100644 --- a/lib/logic/api_maps/rest_maps/server_providers/server_provider.dart +++ b/lib/logic/api_maps/rest_maps/server_providers/server_provider.dart @@ -59,5 +59,5 @@ abstract class ServerProviderApi extends ApiMap { /// Whether we request for staging temprorary certificates. /// Hardcode to 'true' in the middle of testing to not /// get your domain banned but constant certificate renewal - String get stagingAcme => 'false'; + String get stagingAcme => 'true'; } diff --git a/lib/logic/cubit/dns_records/dns_records_cubit.dart b/lib/logic/cubit/dns_records/dns_records_cubit.dart index f3b91bff..3403dc68 100644 --- a/lib/logic/cubit/dns_records/dns_records_cubit.dart +++ b/lib/logic/cubit/dns_records/dns_records_cubit.dart @@ -1,8 +1,6 @@ import 'package:cubit_form/cubit_form.dart'; -import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_creator.dart'; -import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_settings.dart'; +import 'package:selfprivacy/logic/api_maps/rest_maps/api_controller.dart'; import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider.dart'; -import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider_factory.dart'; import 'package:selfprivacy/logic/cubit/app_config_dependent/authentication_dependend_cubit.dart'; import 'package:selfprivacy/logic/models/hive/server_domain.dart'; import 'package:selfprivacy/logic/models/json/dns_records.dart'; @@ -20,12 +18,6 @@ class DnsRecordsCubit const DnsRecordsState(dnsState: DnsRecordsStatus.refreshing), ); - DnsProviderApiFactory? dnsProviderApiFactory = - ApiFactoryCreator.createDnsProviderApiFactory( - DnsProviderApiFactorySettings(provider: DnsProvider.cloudflare), - ); // TODO: HARDCODE FOR NOW!!! - // TODO: Remove when provider selection is implemented. - final ServerApi api = ServerApi(); @override @@ -46,7 +38,8 @@ class DnsRecordsCubit final String? ipAddress = serverInstallationCubit.state.serverDetails?.ip4; if (domain != null && ipAddress != null) { - final List records = await dnsProviderApiFactory! + final List records = await ApiController + .currentDnsProviderApiFactory! .getDnsProvider() .getDnsRecords(domain: domain); final String? dkimPublicKey = @@ -126,7 +119,7 @@ class DnsRecordsCubit final ServerDomain? domain = serverInstallationCubit.state.serverDomain; final String? ipAddress = serverInstallationCubit.state.serverDetails?.ip4; final DnsProviderApi dnsProviderApi = - dnsProviderApiFactory!.getDnsProvider(); + ApiController.currentDnsProviderApiFactory!.getDnsProvider(); await dnsProviderApi.removeSimilarRecords(domain: domain!); await dnsProviderApi.createMultipleDnsRecords( domain: domain, diff --git a/lib/logic/cubit/forms/setup/initializing/dns_provider_form_cubit.dart b/lib/logic/cubit/forms/setup/initializing/dns_provider_form_cubit.dart index c2348a69..5ba72483 100644 --- a/lib/logic/cubit/forms/setup/initializing/dns_provider_form_cubit.dart +++ b/lib/logic/cubit/forms/setup/initializing/dns_provider_form_cubit.dart @@ -7,16 +7,16 @@ import 'package:selfprivacy/logic/cubit/forms/validations/validations.dart'; class DnsProviderFormCubit extends FormCubit { DnsProviderFormCubit(this.initializingCubit) { - final RegExp regExp = initializingCubit.getDnsProviderApiTokenValidation(); + //final RegExp regExp = initializingCubit.getDnsProviderApiTokenValidation(); apiKey = FieldCubit( initalValue: '', validations: [ RequiredStringValidation('validations.required'.tr()), - ValidationModel( + /*ValidationModel( regExp.hasMatch, 'validations.invalid_format'.tr(), - ), - LengthStringNotEqualValidation(40) + ),*/ + //LengthStringNotEqualValidation(40) ], ); diff --git a/lib/logic/cubit/forms/setup/initializing/domain_setup_cubit.dart b/lib/logic/cubit/forms/setup/initializing/domain_setup_cubit.dart index a1c458fb..62fc1050 100644 --- a/lib/logic/cubit/forms/setup/initializing/domain_setup_cubit.dart +++ b/lib/logic/cubit/forms/setup/initializing/domain_setup_cubit.dart @@ -1,4 +1,5 @@ import 'package:cubit_form/cubit_form.dart'; +import 'package:selfprivacy/logic/api_maps/rest_maps/api_controller.dart'; import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart'; import 'package:selfprivacy/logic/models/hive/server_domain.dart'; @@ -9,8 +10,7 @@ class DomainSetupCubit extends Cubit { Future load() async { emit(Loading(LoadingTypes.loadingDomain)); - final List list = await serverInstallationCubit - .repository.dnsProviderApiFactory! + final List list = await ApiController.currentDnsProviderApiFactory! .getDnsProvider() .domainList(); if (list.isEmpty) { @@ -31,8 +31,7 @@ class DomainSetupCubit extends Cubit { emit(Loading(LoadingTypes.saving)); - final String? zoneId = await serverInstallationCubit - .repository.dnsProviderApiFactory! + final String? zoneId = await ApiController.currentDnsProviderApiFactory! .getDnsProvider() .getZoneId(domainName); diff --git a/lib/logic/cubit/metrics/metrics_repository.dart b/lib/logic/cubit/metrics/metrics_repository.dart index 15da1b0c..71c298bf 100644 --- a/lib/logic/cubit/metrics/metrics_repository.dart +++ b/lib/logic/cubit/metrics/metrics_repository.dart @@ -1,11 +1,8 @@ import 'package:selfprivacy/config/get_it_config.dart'; -import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_creator.dart'; -import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_settings.dart'; -import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider_factory.dart'; +import 'package:selfprivacy/logic/api_maps/rest_maps/api_controller.dart'; import 'package:selfprivacy/logic/common_enum/common_enum.dart'; import 'package:selfprivacy/logic/cubit/metrics/metrics_cubit.dart'; -import 'package:selfprivacy/logic/models/hive/server_details.dart'; import 'package:selfprivacy/logic/models/metrics.dart'; class MetricsLoadException implements Exception { @@ -14,22 +11,10 @@ class MetricsLoadException implements Exception { } class MetricsRepository { - ServerProviderApiFactory? serverProviderApiFactory; - - void _buildServerProviderFactory() { - final ServerProvider? providerType = getIt().serverProvider; - final String? location = getIt().serverLocation; - serverProviderApiFactory = ApiFactoryCreator.createServerProviderApiFactory( - ServerProviderApiFactorySettings( - provider: providerType ?? ServerProvider.unknown, - location: location, - ), - ); - } - Future getMetrics(final Period period) async { - if (serverProviderApiFactory == null) { - _buildServerProviderFactory(); + final providerApiFactory = ApiController.currentServerProviderApiFactory; + if (providerApiFactory == null) { + throw MetricsLoadException('Server Provider data is null'); } final DateTime end = DateTime.now(); @@ -49,7 +34,7 @@ class MetricsRepository { final serverId = getIt().serverDetails!.id; final ServerMetrics? metrics = - await serverProviderApiFactory!.getServerProvider().getMetrics( + await providerApiFactory.getServerProvider().getMetrics( serverId, start, end, diff --git a/lib/logic/cubit/provider_volumes/provider_volume_cubit.dart b/lib/logic/cubit/provider_volumes/provider_volume_cubit.dart index fb087cf9..11e180d0 100644 --- a/lib/logic/cubit/provider_volumes/provider_volume_cubit.dart +++ b/lib/logic/cubit/provider_volumes/provider_volume_cubit.dart @@ -1,9 +1,7 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:selfprivacy/config/get_it_config.dart'; import 'package:selfprivacy/logic/api_maps/graphql_maps/server_api/server_api.dart'; -import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_creator.dart'; -import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_settings.dart'; -import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider_factory.dart'; +import 'package:selfprivacy/logic/api_maps/rest_maps/api_controller.dart'; import 'package:selfprivacy/logic/common_enum/common_enum.dart'; import 'package:selfprivacy/logic/cubit/app_config_dependent/authentication_dependend_cubit.dart'; import 'package:selfprivacy/logic/models/disk_size.dart'; @@ -17,30 +15,19 @@ class ApiProviderVolumeCubit extends ServerInstallationDependendCubit { ApiProviderVolumeCubit(final ServerInstallationCubit serverInstallationCubit) : super(serverInstallationCubit, const ApiProviderVolumeState.initial()); - - VolumeProviderApiFactory? providerApi; - final ServerApi serverApi = ServerApi(); @override Future load() async { if (serverInstallationCubit.state is ServerInstallationFinished) { - final serverDetails = getIt().serverDetails; - final serverLocation = getIt().serverLocation; - providerApi = serverDetails == null - ? null - : VolumeApiFactoryCreator.createVolumeProviderApiFactory( - ServerProviderApiFactorySettings( - location: serverLocation, - provider: getIt().serverDetails!.provider, - ), - ); _refetch(); } } Future getPricePerGb() async => - providerApi!.getVolumeProvider().getPricePerGb(); + ApiController.currentVolumeProviderApiFactory! + .getVolumeProvider() + .getPricePerGb(); Future refresh() async { emit(const ApiProviderVolumeState([], LoadingStatus.refreshing, false)); @@ -48,12 +35,14 @@ class ApiProviderVolumeCubit } Future _refetch() async { - if (providerApi == null) { + if (ApiController.currentVolumeProviderApiFactory == null) { return emit(const ApiProviderVolumeState([], LoadingStatus.error, false)); } - final List volumes = - await providerApi!.getVolumeProvider().getVolumes(); + final List volumes = await ApiController + .currentVolumeProviderApiFactory! + .getVolumeProvider() + .getVolumes(); if (volumes.isEmpty) { return emit(const ApiProviderVolumeState([], LoadingStatus.error, false)); @@ -64,14 +53,16 @@ class ApiProviderVolumeCubit Future attachVolume(final DiskVolume volume) async { final ServerHostingDetails server = getIt().serverDetails!; - await providerApi! + await ApiController.currentVolumeProviderApiFactory! .getVolumeProvider() .attachVolume(volume.providerVolume!, server.id); refresh(); } Future detachVolume(final DiskVolume volume) async { - await providerApi!.getVolumeProvider().detachVolume(volume.providerVolume!); + await ApiController.currentVolumeProviderApiFactory! + .getVolumeProvider() + .detachVolume(volume.providerVolume!); refresh(); } @@ -84,7 +75,9 @@ class ApiProviderVolumeCubit 'Starting resize', ); emit(state.copyWith(isResizing: true)); - final bool resized = await providerApi!.getVolumeProvider().resizeVolume( + final bool resized = await ApiController.currentVolumeProviderApiFactory! + .getVolumeProvider() + .resizeVolume( volume.providerVolume!, newSize, ); @@ -120,8 +113,10 @@ class ApiProviderVolumeCubit } Future createVolume() async { - final ServerVolume? volume = - await providerApi!.getVolumeProvider().createVolume(); + final ServerVolume? volume = await ApiController + .currentVolumeProviderApiFactory! + .getVolumeProvider() + .createVolume(); final diskVolume = DiskVolume(providerVolume: volume); await attachVolume(diskVolume); @@ -133,7 +128,9 @@ class ApiProviderVolumeCubit } Future deleteVolume(final DiskVolume volume) async { - await providerApi!.getVolumeProvider().deleteVolume(volume.providerVolume!); + await ApiController.currentVolumeProviderApiFactory! + .getVolumeProvider() + .deleteVolume(volume.providerVolume!); refresh(); } diff --git a/lib/logic/cubit/server_detailed_info/server_detailed_info_repository.dart b/lib/logic/cubit/server_detailed_info/server_detailed_info_repository.dart index 5e0f78ea..ca6848bc 100644 --- a/lib/logic/cubit/server_detailed_info/server_detailed_info_repository.dart +++ b/lib/logic/cubit/server_detailed_info/server_detailed_info_repository.dart @@ -1,38 +1,19 @@ import 'package:selfprivacy/config/get_it_config.dart'; import 'package:selfprivacy/logic/api_maps/graphql_maps/server_api/server_api.dart'; -import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_creator.dart'; -import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_settings.dart'; -import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider_factory.dart'; +import 'package:selfprivacy/logic/api_maps/rest_maps/api_controller.dart'; import 'package:selfprivacy/logic/models/auto_upgrade_settings.dart'; -import 'package:selfprivacy/logic/models/hive/server_details.dart'; import 'package:selfprivacy/logic/models/server_metadata.dart'; import 'package:selfprivacy/logic/models/timezone_settings.dart'; class ServerDetailsRepository { ServerApi server = ServerApi(); - ServerProviderApiFactory? serverProviderApiFactory; - - void _buildServerProviderFactory() { - final ServerProvider? providerType = getIt().serverProvider; - final String? location = getIt().serverLocation; - serverProviderApiFactory = ApiFactoryCreator.createServerProviderApiFactory( - ServerProviderApiFactorySettings( - provider: providerType ?? ServerProvider.unknown, - location: location, - ), - ); - } Future load() async { - if (serverProviderApiFactory == null) { - _buildServerProviderFactory(); - } - + final serverProviderApi = ApiController.currentServerProviderApiFactory; final settings = await server.getSystemSettings(); final serverId = getIt().serverDetails!.id; - final metadata = await serverProviderApiFactory! - .getServerProvider() - .getMetadata(serverId); + final metadata = + await serverProviderApi!.getServerProvider().getMetadata(serverId); return ServerDetailsRepositoryDto( autoUpgradeSettings: settings.autoUpgradeSettings, diff --git a/lib/logic/cubit/server_installation/server_installation_cubit.dart b/lib/logic/cubit/server_installation/server_installation_cubit.dart index d56c6e2e..fa18cda8 100644 --- a/lib/logic/cubit/server_installation/server_installation_cubit.dart +++ b/lib/logic/cubit/server_installation/server_installation_cubit.dart @@ -5,7 +5,7 @@ import 'package:easy_localization/easy_localization.dart'; import 'package:equatable/equatable.dart'; import 'package:selfprivacy/config/get_it_config.dart'; import 'package:selfprivacy/logic/api_maps/graphql_maps/server_api/server_api.dart'; -import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_creator.dart'; +import 'package:selfprivacy/logic/api_maps/rest_maps/api_controller.dart'; import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_settings.dart'; import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider_api_settings.dart'; import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider.dart'; @@ -59,8 +59,7 @@ class ServerInstallationCubit extends Cubit { void setServerProviderType(final ServerProvider providerType) async { await repository.saveServerProviderType(providerType); - repository.serverProviderApiFactory = - ApiFactoryCreator.createServerProviderApiFactory( + ApiController.initServerProviderApiFactory( ServerProviderApiFactorySettings( provider: providerType, ), @@ -68,18 +67,19 @@ class ServerInstallationCubit extends Cubit { } ProviderApiTokenValidation serverProviderApiTokenValidation() => - repository.serverProviderApiFactory! + ApiController.currentServerProviderApiFactory! .getServerProvider() .getApiTokenValidation(); - RegExp getDnsProviderApiTokenValidation() => repository.dnsProviderApiFactory! - .getDnsProvider() - .getApiTokenValidation(); + RegExp getDnsProviderApiTokenValidation() => + ApiController.currentDnsProviderApiFactory! + .getDnsProvider() + .getApiTokenValidation(); Future isServerProviderApiTokenValid( final String providerToken, ) async => - repository.serverProviderApiFactory! + ApiController.currentServerProviderApiFactory! .getServerProvider( settings: const ServerProviderApiSettings( isWithToken: false, @@ -89,19 +89,30 @@ class ServerInstallationCubit extends Cubit { Future isDnsProviderApiTokenValid( final String providerToken, - ) async => - repository.dnsProviderApiFactory! - .getDnsProvider( - settings: const DnsProviderApiSettings(isWithToken: false), - ) - .isApiTokenValid(providerToken); + ) async { + if (ApiController.currentDnsProviderApiFactory == null) { + // No other DNS provider is supported for now, + // so it's safe to hardcode Cloudflare + ApiController.initDnsProviderApiFactory( + DnsProviderApiFactorySettings( + provider: DnsProvider.cloudflare, + ), + ); + } + + return ApiController.currentDnsProviderApiFactory! + .getDnsProvider( + settings: const DnsProviderApiSettings(isWithToken: false), + ) + .isApiTokenValid(providerToken); + } Future> fetchAvailableLocations() async { - if (repository.serverProviderApiFactory == null) { + if (ApiController.currentServerProviderApiFactory == null) { return []; } - return repository.serverProviderApiFactory! + return ApiController.currentServerProviderApiFactory! .getServerProvider() .getAvailableLocations(); } @@ -109,11 +120,11 @@ class ServerInstallationCubit extends Cubit { Future> fetchAvailableTypesByLocation( final ServerProviderLocation location, ) async { - if (repository.serverProviderApiFactory == null) { + if (ApiController.currentServerProviderApiFactory == null) { return []; } - return repository.serverProviderApiFactory! + return ApiController.currentServerProviderApiFactory! .getServerProvider() .getServerTypesByLocation(location: location); } @@ -141,8 +152,16 @@ class ServerInstallationCubit extends Cubit { void setServerType(final ServerType serverType) async { await repository.saveServerType(serverType); - repository.serverProviderApiFactory = - ApiFactoryCreator.createServerProviderApiFactory( + ApiController.initServerProviderApiFactory( + ServerProviderApiFactorySettings( + provider: getIt().serverProvider!, + location: serverType.location.identifier, + ), + ); + + // All server providers support volumes for now, + // so it's safe to initialize. + ApiController.initVolumeProviderApiFactory( ServerProviderApiFactorySettings( provider: getIt().serverProvider!, location: serverType.location.identifier, @@ -162,6 +181,7 @@ class ServerInstallationCubit extends Cubit { return; } await repository.saveCloudFlareKey(cloudFlareKey); + emit( (state as ServerInstallationNotFinished) .copyWith(cloudFlareKey: cloudFlareKey), @@ -677,7 +697,7 @@ class ServerInstallationCubit extends Cubit { void clearAppConfig() { closeTimer(); - + ApiController.clearProviderApiFactories(); repository.clearAppConfig(); emit(const ServerInstallationEmpty()); } diff --git a/lib/logic/cubit/server_installation/server_installation_repository.dart b/lib/logic/cubit/server_installation/server_installation_repository.dart index 7e631388..59e4921c 100644 --- a/lib/logic/cubit/server_installation/server_installation_repository.dart +++ b/lib/logic/cubit/server_installation/server_installation_repository.dart @@ -9,14 +9,12 @@ import 'package:hive/hive.dart'; import 'package:pub_semver/pub_semver.dart'; import 'package:selfprivacy/config/get_it_config.dart'; import 'package:selfprivacy/config/hive_config.dart'; -import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_creator.dart'; +import 'package:selfprivacy/logic/api_maps/rest_maps/api_controller.dart'; import 'package:selfprivacy/logic/api_maps/rest_maps/api_factory_settings.dart'; import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider.dart'; import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider_api_settings.dart'; -import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider_factory.dart'; import 'package:selfprivacy/logic/api_maps/graphql_maps/server_api/server_api.dart'; import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider.dart'; -import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider_factory.dart'; import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart'; import 'package:selfprivacy/logic/models/hive/backblaze_credential.dart'; import 'package:selfprivacy/logic/models/hive/server_details.dart'; @@ -43,13 +41,6 @@ class ServerAuthorizationException implements Exception { class ServerInstallationRepository { Box box = Hive.box(BNames.serverInstallationBox); Box usersBox = Hive.box(BNames.usersBox); - ServerProviderApiFactory? serverProviderApiFactory; - DnsProviderApiFactory? dnsProviderApiFactory = - ApiFactoryCreator.createDnsProviderApiFactory( - DnsProviderApiFactorySettings( - provider: DnsProvider.cloudflare, - ), // TODO: HARDCODE FOR NOW!!! - ); Future load() async { final String? providerApiToken = getIt().serverProviderKey; @@ -67,8 +58,16 @@ class ServerInstallationRepository { if (serverProvider != null || (serverDetails != null && serverDetails.provider != ServerProvider.unknown)) { - serverProviderApiFactory = - ApiFactoryCreator.createServerProviderApiFactory( + ApiController.initServerProviderApiFactory( + ServerProviderApiFactorySettings( + provider: serverProvider ?? serverDetails!.provider, + location: location, + ), + ); + + // All current providers support volumes + // so it's safe to hardcode for now + ApiController.initVolumeProviderApiFactory( ServerProviderApiFactorySettings( provider: serverProvider ?? serverDetails!.provider, location: location, @@ -77,7 +76,7 @@ class ServerInstallationRepository { } if (serverDomain != null && serverDomain.provider != DnsProvider.unknown) { - dnsProviderApiFactory = ApiFactoryCreator.createDnsProviderApiFactory( + ApiController.initDnsProviderApiFactory( DnsProviderApiFactorySettings( provider: serverDomain.provider, ), @@ -168,14 +167,16 @@ class ServerInstallationRepository { ) async { ServerHostingDetails serverDetails; - final ServerProviderApi api = serverProviderApiFactory!.getServerProvider(); - serverDetails = await api.powerOn(); + serverDetails = await ApiController.currentServerProviderApiFactory! + .getServerProvider() + .powerOn(); return serverDetails; } Future getDomainId(final String token, final String domain) async { - final DnsProviderApi dnsProviderApi = dnsProviderApiFactory!.getDnsProvider( + final DnsProviderApi dnsProviderApi = + ApiController.currentDnsProviderApiFactory!.getDnsProvider( settings: DnsProviderApiSettings( isWithToken: false, customToken: token, @@ -244,7 +245,8 @@ class ServerInstallationRepository { required final Future Function(ServerHostingDetails serverDetails) onSuccess, }) async { - final ServerProviderApi api = serverProviderApiFactory!.getServerProvider(); + final ServerProviderApi api = + ApiController.currentServerProviderApiFactory!.getServerProvider(); try { final ServerHostingDetails? serverDetails = await api.createServer( dnsApiToken: cloudFlareKey, @@ -328,9 +330,9 @@ class ServerInstallationRepository { required final void Function() onCancel, }) async { final DnsProviderApi dnsProviderApi = - dnsProviderApiFactory!.getDnsProvider(); + ApiController.currentDnsProviderApiFactory!.getDnsProvider(); final ServerProviderApi serverApi = - serverProviderApiFactory!.getServerProvider(); + ApiController.currentServerProviderApiFactory!.getServerProvider(); await dnsProviderApi.removeSimilarRecords( ip4: serverDetails.ip4, @@ -370,7 +372,7 @@ class ServerInstallationRepository { Future createDkimRecord(final ServerDomain cloudFlareDomain) async { final DnsProviderApi dnsProviderApi = - dnsProviderApiFactory!.getDnsProvider(); + ApiController.currentDnsProviderApiFactory!.getDnsProvider(); final ServerApi api = ServerApi(); late DnsRecord record; @@ -389,15 +391,15 @@ class ServerInstallationRepository { return api.isHttpServerWorking(); } - Future restart() async { - final ServerProviderApi api = serverProviderApiFactory!.getServerProvider(); - return api.restart(); - } + Future restart() async => + ApiController.currentServerProviderApiFactory! + .getServerProvider() + .restart(); - Future powerOn() async { - final ServerProviderApi api = serverProviderApiFactory!.getServerProvider(); - return api.powerOn(); - } + Future powerOn() async => + ApiController.currentServerProviderApiFactory! + .getServerProvider() + .powerOn(); Future getRecoveryCapabilities( final ServerDomain serverDomain, @@ -632,10 +634,10 @@ class ServerInstallationRepository { } } - Future> getServersOnProviderAccount() async { - final ServerProviderApi api = serverProviderApiFactory!.getServerProvider(); - return api.getServers(); - } + Future> getServersOnProviderAccount() async => + ApiController.currentServerProviderApiFactory! + .getServerProvider() + .getServers(); Future saveServerDetails( final ServerHostingDetails serverDetails, @@ -724,13 +726,11 @@ class ServerInstallationRepository { } Future deleteServer(final ServerDomain serverDomain) async { - final ServerProviderApi api = serverProviderApiFactory!.getServerProvider(); - final DnsProviderApi dnsProviderApi = - dnsProviderApiFactory!.getDnsProvider(); - - await api.deleteServer( - domainName: serverDomain.domainName, - ); + await ApiController.currentServerProviderApiFactory! + .getServerProvider() + .deleteServer( + domainName: serverDomain.domainName, + ); await box.put(BNames.hasFinalChecked, false); await box.put(BNames.isServerStarted, false); @@ -739,7 +739,9 @@ class ServerInstallationRepository { await box.put(BNames.isLoading, false); await box.put(BNames.serverDetails, null); - await dnsProviderApi.removeSimilarRecords(domain: serverDomain); + await ApiController.currentDnsProviderApiFactory! + .getDnsProvider() + .removeSimilarRecords(domain: serverDomain); } Future deleteServerRelatedRecords() async { diff --git a/lib/ui/pages/setup/initializing/initializing.dart b/lib/ui/pages/setup/initializing/initializing.dart index 48d95a6d..b81680bc 100644 --- a/lib/ui/pages/setup/initializing/initializing.dart +++ b/lib/ui/pages/setup/initializing/initializing.dart @@ -206,9 +206,8 @@ class InitializingPage extends StatelessWidget { ), const Spacer(), BrandButton.rised( - onPressed: formCubitState.isSubmitting - ? null - : () => context.read().trySubmit(), + onPressed: () => + context.read().trySubmit(), text: 'basis.connect'.tr(), ), const SizedBox(height: 10),