From 20cca91e004461e88135742e73f19aa377e123a4 Mon Sep 17 00:00:00 2001 From: Kherel Date: Thu, 25 Mar 2021 21:09:56 +0100 Subject: [PATCH] before change api_client --- lib/config/get_it_config.dart | 6 +- lib/logic/api_maps/api_map.dart | 4 +- lib/logic/api_maps/backblaze.dart | 2 +- lib/logic/api_maps/cloudflare.dart | 2 +- lib/logic/api_maps/hetzner.dart | 2 +- lib/logic/api_maps/server.dart | 2 +- .../cubit/app_config/app_config_cubit.dart | 2 +- .../app_config/app_config_repository.dart | 45 ++++++------- lib/logic/get_it/api_config.dart | 63 +++++++++++++++++++ lib/main.dart | 3 +- lib/ui/pages/services/services.dart | 19 +++++- 11 files changed, 116 insertions(+), 34 deletions(-) create mode 100644 lib/logic/get_it/api_config.dart diff --git a/lib/config/get_it_config.dart b/lib/config/get_it_config.dart index 6a05afc47d..8d7faa7ba5 100644 --- a/lib/config/get_it_config.dart +++ b/lib/config/get_it_config.dart @@ -1,4 +1,5 @@ import 'package:get_it/get_it.dart'; +import 'package:selfprivacy/logic/get_it/api_config.dart'; import 'package:selfprivacy/logic/get_it/console.dart'; import 'package:selfprivacy/logic/get_it/navigation.dart'; import 'package:selfprivacy/logic/get_it/timer.dart'; @@ -9,9 +10,12 @@ export 'package:selfprivacy/logic/get_it/timer.dart'; final getIt = GetIt.instance; -void getItSetup() { +Future getItSetup() async { getIt.registerSingleton(NavigationService()); getIt.registerSingleton(ConsoleModel()); getIt.registerSingleton(TimerModel()); + getIt.registerSingleton(ApiConfigModel()..init()); + + await getIt.allReady(); } diff --git a/lib/logic/api_maps/api_map.dart b/lib/logic/api_maps/api_map.dart index 505ec1780b..e67da5c1e8 100644 --- a/lib/logic/api_maps/api_map.dart +++ b/lib/logic/api_maps/api_map.dart @@ -7,8 +7,8 @@ import 'package:selfprivacy/config/get_it_config.dart'; import 'package:selfprivacy/logic/get_it/console.dart'; import 'package:selfprivacy/logic/models/message.dart'; -abstract class ApiMap { - ApiMap() { +abstract class ApiMapOld { + ApiMapOld() { var client = Dio()..interceptors.add(ConsoleInterceptor()); (client.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (HttpClient client) { diff --git a/lib/logic/api_maps/backblaze.dart b/lib/logic/api_maps/backblaze.dart index 5bf848633a..de04225e31 100644 --- a/lib/logic/api_maps/backblaze.dart +++ b/lib/logic/api_maps/backblaze.dart @@ -2,7 +2,7 @@ import 'dart:io'; import 'package:dio/dio.dart'; import 'package:selfprivacy/logic/api_maps/api_map.dart'; -class BackblazeApi extends ApiMap { +class BackblazeApi extends ApiMapOld { BackblazeApi([String? token]) { if (token != null) { loggedClient.options = BaseOptions( diff --git a/lib/logic/api_maps/cloudflare.dart b/lib/logic/api_maps/cloudflare.dart index c72c7bad09..1f09a0f3cf 100644 --- a/lib/logic/api_maps/cloudflare.dart +++ b/lib/logic/api_maps/cloudflare.dart @@ -4,7 +4,7 @@ import 'package:selfprivacy/logic/api_maps/api_map.dart'; import 'package:selfprivacy/logic/models/cloudflare_domain.dart'; import 'package:selfprivacy/logic/models/dns_records.dart'; -class CloudflareApi extends ApiMap { +class CloudflareApi extends ApiMapOld { CloudflareApi([String? token]) { if (token != null) { loggedClient.options = diff --git a/lib/logic/api_maps/hetzner.dart b/lib/logic/api_maps/hetzner.dart index 8459d31530..dabec6b712 100644 --- a/lib/logic/api_maps/hetzner.dart +++ b/lib/logic/api_maps/hetzner.dart @@ -7,7 +7,7 @@ import 'package:selfprivacy/logic/models/server_details.dart'; import 'package:selfprivacy/logic/models/user.dart'; import 'package:selfprivacy/utils/password_generator2.dart'; -class HetznerApi extends ApiMap { +class HetznerApi extends ApiMapOld { HetznerApi([String? token]) { if (token != null) { loggedClient.options = BaseOptions( diff --git a/lib/logic/api_maps/server.dart b/lib/logic/api_maps/server.dart index d1e4053521..6bf5afa417 100644 --- a/lib/logic/api_maps/server.dart +++ b/lib/logic/api_maps/server.dart @@ -4,7 +4,7 @@ import 'package:dio/dio.dart'; import 'api_map.dart'; -class ServerApi extends ApiMap { +class ServerApi extends ApiMapOld { ServerApi(String? domainName) { loggedClient.options = BaseOptions( baseUrl: 'https://api.$domainName', diff --git a/lib/logic/cubit/app_config/app_config_cubit.dart b/lib/logic/cubit/app_config/app_config_cubit.dart index 115002766a..8fc1ef7fed 100644 --- a/lib/logic/cubit/app_config/app_config_cubit.dart +++ b/lib/logic/cubit/app_config/app_config_cubit.dart @@ -219,7 +219,7 @@ class AppConfigCubit extends Cubit { } void setCloudflareKey(String cloudFlareKey) { - repository.saveCloudFlare(cloudFlareKey); + repository.saveCloudFlareKey(cloudFlareKey); emit(state.copyWith(cloudFlareKey: cloudFlareKey)); } diff --git a/lib/logic/cubit/app_config/app_config_repository.dart b/lib/logic/cubit/app_config/app_config_repository.dart index 5fcba08d3e..3980e62401 100644 --- a/lib/logic/cubit/app_config/app_config_repository.dart +++ b/lib/logic/cubit/app_config/app_config_repository.dart @@ -4,6 +4,7 @@ import 'package:selfprivacy/config/hive_config.dart'; import 'package:selfprivacy/logic/api_maps/cloudflare.dart'; import 'package:selfprivacy/logic/api_maps/hetzner.dart'; import 'package:selfprivacy/logic/api_maps/server.dart'; +import 'package:selfprivacy/logic/get_it/api_config.dart'; import 'package:selfprivacy/logic/models/backblaze_credential.dart'; import 'package:selfprivacy/logic/models/cloudflare_domain.dart'; import 'package:selfprivacy/logic/models/server_details.dart'; @@ -22,12 +23,12 @@ class AppConfigRepository { AppConfigState load() { return AppConfigState( - hetznerKey: box.get(BNames.hetznerKey), - cloudFlareKey: box.get(BNames.cloudFlareKey), - cloudFlareDomain: box.get(BNames.cloudFlareDomain), - backblazeCredential: box.get(BNames.backblazeKey), + hetznerKey: getIt().hetznerKey, + cloudFlareKey: getIt().cloudFlareKey, + cloudFlareDomain: getIt().cloudFlareDomain, + backblazeCredential: getIt().backblazeCredential, + hetznerServer: getIt().hetznerServer, rootUser: box.get(BNames.rootUser), - hetznerServer: box.get(BNames.hetznerServer), isServerStarted: box.get(BNames.isServerStarted, defaultValue: false), isServerReseted: box.get(BNames.isServerReseted, defaultValue: false), hasFinalChecked: box.get(BNames.hasFinalChecked, defaultValue: false), @@ -185,33 +186,33 @@ class AppConfigRepository { } Future saveServerDetails(HetznerServerDetails serverDetails) async { - await box.put(BNames.hetznerServer, serverDetails); + await getIt().storeServerDetails(serverDetails); + } + + Future saveHetznerKey(String key) async { + await getIt().storeHetznerKey(key); + } + + Future saveBackblazeKey(BackblazeCredential backblazeCredential) async { + await getIt().storeBackblazeCredential(backblazeCredential); + } + + Future saveCloudFlareKey(String key) async { + await getIt().storeCloudFlareKey(key); + } + + Future saveDomain(CloudFlareDomain cloudFlareDomain) async { + await getIt().storeCloudFlareDomain(cloudFlareDomain); } Future saveIsServerStarted(bool value) async { await box.put(BNames.isServerStarted, value); } - Future saveHetznerKey(String key) async { - await box.put(BNames.hetznerKey, key); - } - Future saveIsServerReseted(bool value) async { await box.put(BNames.isServerReseted, value); } - Future saveBackblazeKey(BackblazeCredential backblazeCredential) async { - await box.put(BNames.backblazeKey, backblazeCredential); - } - - Future saveCloudFlare(String key) async { - await box.put(BNames.cloudFlareKey, key); - } - - void saveDomain(CloudFlareDomain cloudFlareDomain) async { - await box.put(BNames.cloudFlareDomain, cloudFlareDomain); - } - void saveRootUser(User rootUser) async { await box.put(BNames.rootUser, rootUser); } diff --git a/lib/logic/get_it/api_config.dart b/lib/logic/get_it/api_config.dart new file mode 100644 index 0000000000..6c5636d132 --- /dev/null +++ b/lib/logic/get_it/api_config.dart @@ -0,0 +1,63 @@ +import 'package:hive/hive.dart'; +import 'package:selfprivacy/config/hive_config.dart'; +import 'package:selfprivacy/logic/models/backblaze_credential.dart'; +import 'package:selfprivacy/logic/models/cloudflare_domain.dart'; +import 'package:selfprivacy/logic/models/server_details.dart'; + +class ApiConfigModel { + Box _box = Hive.box(BNames.appConfig); + + HetznerServerDetails? get hetznerServer => _hetznerServer; + String? get hetznerKey => _hetznerKey; + String? get cloudFlareKey => _cloudFlareKey; + BackblazeCredential? get backblazeCredential => _backblazeCredential; + CloudFlareDomain? get cloudFlareDomain => _cloudFlareDomain; + + String? _hetznerKey; + String? _cloudFlareKey; + HetznerServerDetails? _hetznerServer; + BackblazeCredential? _backblazeCredential; + CloudFlareDomain? _cloudFlareDomain; + + Future storeHetznerKey(String value) async { + await _box.put(BNames.hetznerKey, value); + _hetznerKey = value; + } + + Future storeCloudFlareKey(String value) async { + await _box.put(BNames.cloudFlareKey, value); + _cloudFlareKey = value; + } + + Future storeBackblazeCredential(BackblazeCredential value) async { + await _box.put(BNames.backblazeKey, value); + + _backblazeCredential = value; + } + + Future storeCloudFlareDomain(CloudFlareDomain value) async { + await _box.put(BNames.cloudFlareDomain, value); + _cloudFlareDomain = value; + } + + Future storeServerDetails(HetznerServerDetails value) async { + await _box.put(BNames.hetznerServer, value); + _hetznerServer = value; + } + + clear() { + _hetznerKey = null; + _cloudFlareKey = null; + _backblazeCredential = null; + _cloudFlareDomain = null; + _hetznerServer = null; + } + + void init() { + _hetznerKey = _box.get(BNames.hetznerKey); + _cloudFlareKey = _box.get(BNames.cloudFlareKey); + _backblazeCredential = _box.get(BNames.backblazeKey); + _cloudFlareDomain = _box.get(BNames.cloudFlareDomain); + _hetznerServer = _box.get(BNames.hetznerServer); + } +} diff --git a/lib/main.dart b/lib/main.dart index 4d678e31e1..231a7dca28 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -15,12 +15,11 @@ import 'config/get_it_config.dart'; import 'config/localization.dart'; import 'logic/cubit/app_settings/app_settings_cubit.dart'; - void main() async { await HiveConfig.init(); Bloc.observer = SimpleBlocObserver(); Wakelock.enable(); - getItSetup(); + await getItSetup(); WidgetsFlutterBinding.ensureInitialized(); await EasyLocalization.ensureInitialized(); diff --git a/lib/ui/pages/services/services.dart b/lib/ui/pages/services/services.dart index 0a023aec7c..dd48ae6d62 100644 --- a/lib/ui/pages/services/services.dart +++ b/lib/ui/pages/services/services.dart @@ -378,6 +378,21 @@ class _ServiceDetails extends StatelessWidget { ); } - void _launchURL(url) async => - await canLaunch(url) ? await launch(url) : throw 'Could not launch $url'; + void _launchURL(url) async { + var _possible = await canLaunch(url); + + if (_possible) { + try { + await launch( + url, + forceSafariVC: true, + enableJavaScript: true, + ); + } catch (e) { + print(e); + } + } else { + throw 'Could not launch $url'; + } + } }