From a5bb654a767a4c9b86fe8d0d2fb9351aac015868 Mon Sep 17 00:00:00 2001 From: Inex Code Date: Fri, 16 Jun 2023 04:28:45 +0300 Subject: [PATCH] refactor(backups): Rename BackbaleCredential to BackupsCredential Also adding provider field --- lib/config/hive_config.dart | 4 +- lib/logic/api_maps/rest_maps/backblaze.dart | 8 +- .../initializing/backblaze_form_cubit.dart | 2 +- .../server_installation_cubit.dart | 7 +- .../server_installation_repository.dart | 8 +- .../server_installation_state.dart | 8 +- lib/logic/get_it/api_config.dart | 8 +- lib/logic/models/hive/README.md | 1 + .../models/hive/backblaze_credential.dart | 27 ------ .../models/hive/backblaze_credential.g.dart | 44 --------- lib/logic/models/hive/backups_credential.dart | 51 ++++++++++ .../models/hive/backups_credential.g.dart | 93 +++++++++++++++++++ 12 files changed, 168 insertions(+), 93 deletions(-) delete mode 100644 lib/logic/models/hive/backblaze_credential.dart delete mode 100644 lib/logic/models/hive/backblaze_credential.g.dart create mode 100644 lib/logic/models/hive/backups_credential.dart create mode 100644 lib/logic/models/hive/backups_credential.g.dart diff --git a/lib/config/hive_config.dart b/lib/config/hive_config.dart index 44b03f26..8ee1ca55 100644 --- a/lib/config/hive_config.dart +++ b/lib/config/hive_config.dart @@ -4,7 +4,7 @@ import 'dart:typed_data'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:hive_flutter/hive_flutter.dart'; import 'package:selfprivacy/logic/models/hive/backblaze_bucket.dart'; -import 'package:selfprivacy/logic/models/hive/backblaze_credential.dart'; +import 'package:selfprivacy/logic/models/hive/backups_credential.dart'; import 'package:selfprivacy/logic/models/hive/server_details.dart'; import 'package:selfprivacy/logic/models/hive/server_domain.dart'; import 'package:selfprivacy/logic/models/hive/user.dart'; @@ -111,7 +111,7 @@ class BNames { /// A [ServerHostingDetails] field of [serverInstallationBox] box. static String serverDetails = 'hetznerServer'; - /// A [BackblazeCredential] field of [serverInstallationBox] box. + /// A [BackupsCredential] field of [serverInstallationBox] box. static String backblazeCredential = 'backblazeKey'; /// A [BackblazeBucket] field of [serverInstallationBox] box. diff --git a/lib/logic/api_maps/rest_maps/backblaze.dart b/lib/logic/api_maps/rest_maps/backblaze.dart index 59292775..497a7625 100644 --- a/lib/logic/api_maps/rest_maps/backblaze.dart +++ b/lib/logic/api_maps/rest_maps/backblaze.dart @@ -4,7 +4,7 @@ import 'package:dio/dio.dart'; import 'package:selfprivacy/config/get_it_config.dart'; import 'package:selfprivacy/logic/api_maps/api_generic_result.dart'; import 'package:selfprivacy/logic/api_maps/rest_maps/api_map.dart'; -import 'package:selfprivacy/logic/models/hive/backblaze_credential.dart'; +import 'package:selfprivacy/logic/models/hive/backups_credential.dart'; export 'package:selfprivacy/logic/api_maps/api_generic_result.dart'; @@ -36,7 +36,7 @@ class BackblazeApi extends ApiMap { responseType: ResponseType.json, ); if (isWithToken) { - final BackblazeCredential? backblazeCredential = + final BackupsCredential? backblazeCredential = getIt().backblazeCredential; final String token = backblazeCredential!.applicationKey; options.headers = {'Authorization': 'Basic $token'}; @@ -56,7 +56,7 @@ class BackblazeApi extends ApiMap { Future getAuthorizationToken() async { final Dio client = await getClient(); - final BackblazeCredential? backblazeCredential = + final BackupsCredential? backblazeCredential = getIt().backblazeCredential; if (backblazeCredential == null) { throw Exception('Backblaze credential is null'); @@ -121,7 +121,7 @@ class BackblazeApi extends ApiMap { // Create bucket Future createBucket(final String bucketName) async { final BackblazeApiAuth auth = await getAuthorizationToken(); - final BackblazeCredential? backblazeCredential = + final BackupsCredential? backblazeCredential = getIt().backblazeCredential; final Dio client = await getClient(); client.options.baseUrl = auth.apiUrl; diff --git a/lib/logic/cubit/forms/setup/initializing/backblaze_form_cubit.dart b/lib/logic/cubit/forms/setup/initializing/backblaze_form_cubit.dart index 21d17a84..2578aded 100644 --- a/lib/logic/cubit/forms/setup/initializing/backblaze_form_cubit.dart +++ b/lib/logic/cubit/forms/setup/initializing/backblaze_form_cubit.dart @@ -3,7 +3,7 @@ import 'package:cubit_form/cubit_form.dart'; import 'package:selfprivacy/config/get_it_config.dart'; import 'package:selfprivacy/logic/api_maps/rest_maps/backblaze.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/backups_credential.dart'; import 'package:easy_localization/easy_localization.dart'; class BackblazeFormCubit extends FormCubit { diff --git a/lib/logic/cubit/server_installation/server_installation_cubit.dart b/lib/logic/cubit/server_installation/server_installation_cubit.dart index 47952c9a..04b4fde6 100644 --- a/lib/logic/cubit/server_installation/server_installation_cubit.dart +++ b/lib/logic/cubit/server_installation/server_installation_cubit.dart @@ -11,7 +11,7 @@ import 'package:selfprivacy/logic/api_maps/rest_maps/dns_providers/dns_provider_ 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_api_settings.dart'; import 'package:selfprivacy/logic/api_maps/staging_options.dart'; -import 'package:selfprivacy/logic/models/hive/backblaze_credential.dart'; +import 'package:selfprivacy/logic/models/hive/backups_credential.dart'; import 'package:selfprivacy/logic/models/hive/server_details.dart'; import 'package:selfprivacy/logic/models/hive/server_domain.dart'; import 'package:selfprivacy/logic/models/hive/user.dart'; @@ -228,9 +228,10 @@ class ServerInstallationCubit extends Cubit { } void setBackblazeKey(final String keyId, final String applicationKey) async { - final BackblazeCredential backblazeCredential = BackblazeCredential( + final BackupsCredential backblazeCredential = BackupsCredential( keyId: keyId, applicationKey: applicationKey, + provider: BackupsProvider.backblaze, ); await repository.saveBackblazeKey(backblazeCredential); if (state is ServerInstallationRecovery) { @@ -735,7 +736,7 @@ class ServerInstallationCubit extends Cubit { } void finishRecoveryProcess( - final BackblazeCredential backblazeCredential, + final BackupsCredential backblazeCredential, ) async { await repository.saveIsServerStarted(true); await repository.saveIsServerResetedFirstTime(true); diff --git a/lib/logic/cubit/server_installation/server_installation_repository.dart b/lib/logic/cubit/server_installation/server_installation_repository.dart index c138a340..d81d4d8a 100644 --- a/lib/logic/cubit/server_installation/server_installation_repository.dart +++ b/lib/logic/cubit/server_installation/server_installation_repository.dart @@ -16,7 +16,7 @@ import 'package:selfprivacy/logic/api_maps/graphql_maps/server_api/server_api.da import 'package:selfprivacy/logic/api_maps/rest_maps/server_providers/server_provider.dart'; import 'package:selfprivacy/logic/api_maps/staging_options.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/backups_credential.dart'; import 'package:selfprivacy/logic/models/hive/server_details.dart'; import 'package:selfprivacy/logic/models/hive/server_domain.dart'; import 'package:selfprivacy/logic/models/hive/user.dart'; @@ -49,7 +49,7 @@ class ServerInstallationRepository { final ServerDomain? serverDomain = getIt().serverDomain; final ServerProvider? serverProvider = getIt().serverProvider; - final BackblazeCredential? backblazeCredential = + final BackupsCredential? backblazeCredential = getIt().backblazeCredential; final ServerHostingDetails? serverDetails = getIt().serverDetails; @@ -228,7 +228,7 @@ class ServerInstallationRepository { final User rootUser, final String domainName, final String dnsApiToken, - final BackblazeCredential backblazeCredential, { + final BackupsCredential backblazeCredential, { required final void Function() onCancel, required final Future Function(ServerHostingDetails serverDetails) onSuccess, @@ -706,7 +706,7 @@ class ServerInstallationRepository { } Future saveBackblazeKey( - final BackblazeCredential backblazeCredential, + final BackupsCredential backblazeCredential, ) async { await getIt().storeBackblazeCredential(backblazeCredential); } diff --git a/lib/logic/cubit/server_installation/server_installation_state.dart b/lib/logic/cubit/server_installation/server_installation_state.dart index 5ceaafdd..3289a780 100644 --- a/lib/logic/cubit/server_installation/server_installation_state.dart +++ b/lib/logic/cubit/server_installation/server_installation_state.dart @@ -30,7 +30,7 @@ abstract class ServerInstallationState extends Equatable { final String? providerApiToken; final String? dnsApiToken; final String? serverTypeIdentificator; - final BackblazeCredential? backblazeCredential; + final BackupsCredential? backblazeCredential; final ServerDomain? serverDomain; final User? rootUser; final ServerHostingDetails? serverDetails; @@ -161,7 +161,7 @@ class ServerInstallationNotFinished extends ServerInstallationState { final String? providerApiToken, final String? serverTypeIdentificator, final String? dnsApiToken, - final BackblazeCredential? backblazeCredential, + final BackupsCredential? backblazeCredential, final ServerDomain? serverDomain, final User? rootUser, final ServerHostingDetails? serverDetails, @@ -226,7 +226,7 @@ class ServerInstallationFinished extends ServerInstallationState { required String super.providerApiToken, required String super.serverTypeIdentificator, required String super.dnsApiToken, - required BackblazeCredential super.backblazeCredential, + required BackupsCredential super.backblazeCredential, required ServerDomain super.serverDomain, required User super.rootUser, required ServerHostingDetails super.serverDetails, @@ -309,7 +309,7 @@ class ServerInstallationRecovery extends ServerInstallationState { final String? providerApiToken, final String? serverTypeIdentificator, final String? dnsApiToken, - final BackblazeCredential? backblazeCredential, + final BackupsCredential? backblazeCredential, final ServerDomain? serverDomain, final User? rootUser, final ServerHostingDetails? serverDetails, diff --git a/lib/logic/get_it/api_config.dart b/lib/logic/get_it/api_config.dart index ba49b9b3..58f7492d 100644 --- a/lib/logic/get_it/api_config.dart +++ b/lib/logic/get_it/api_config.dart @@ -1,7 +1,7 @@ import 'package:hive/hive.dart'; import 'package:selfprivacy/config/hive_config.dart'; import 'package:selfprivacy/logic/models/hive/backblaze_bucket.dart'; -import 'package:selfprivacy/logic/models/hive/backblaze_credential.dart'; +import 'package:selfprivacy/logic/models/hive/backups_credential.dart'; import 'package:selfprivacy/logic/models/hive/server_details.dart'; import 'package:selfprivacy/logic/models/hive/server_domain.dart'; @@ -16,7 +16,7 @@ class ApiConfigModel { ServerProvider? get serverProvider => _serverProvider; DnsProvider? get dnsProvider => _dnsProvider; - BackblazeCredential? get backblazeCredential => _backblazeCredential; + BackupsCredential? get backblazeCredential => _backblazeCredential; ServerDomain? get serverDomain => _serverDomain; BackblazeBucket? get backblazeBucket => _backblazeBucket; @@ -27,7 +27,7 @@ class ApiConfigModel { ServerProvider? _serverProvider; DnsProvider? _dnsProvider; ServerHostingDetails? _serverDetails; - BackblazeCredential? _backblazeCredential; + BackupsCredential? _backblazeCredential; ServerDomain? _serverDomain; BackblazeBucket? _backblazeBucket; @@ -61,7 +61,7 @@ class ApiConfigModel { _serverLocation = serverLocation; } - Future storeBackblazeCredential(final BackblazeCredential value) async { + Future storeBackblazeCredential(final BackupsCredential value) async { await _box.put(BNames.backblazeCredential, value); _backblazeCredential = value; } diff --git a/lib/logic/models/hive/README.md b/lib/logic/models/hive/README.md index f8f9e14d..d50da34c 100644 --- a/lib/logic/models/hive/README.md +++ b/lib/logic/models/hive/README.md @@ -12,3 +12,4 @@ 100. DnsProvider 101. ServerProvider 102. UserType +103. BackupsProvider diff --git a/lib/logic/models/hive/backblaze_credential.dart b/lib/logic/models/hive/backblaze_credential.dart deleted file mode 100644 index d7bf2d06..00000000 --- a/lib/logic/models/hive/backblaze_credential.dart +++ /dev/null @@ -1,27 +0,0 @@ -import 'dart:convert'; - -import 'package:hive/hive.dart'; - -part 'backblaze_credential.g.dart'; - -@HiveType(typeId: 4) -class BackblazeCredential { - BackblazeCredential({required this.keyId, required this.applicationKey}); - - @HiveField(0) - final String keyId; - - @HiveField(1) - final String applicationKey; - - String get encodedApiKey => encodedBackblazeKey(keyId, applicationKey); - - @override - String toString() => '$keyId: $encodedApiKey'; -} - -String encodedBackblazeKey(final String? keyId, final String? applicationKey) { - final String apiKey = '$keyId:$applicationKey'; - final String encodedApiKey = base64.encode(utf8.encode(apiKey)); - return encodedApiKey; -} diff --git a/lib/logic/models/hive/backblaze_credential.g.dart b/lib/logic/models/hive/backblaze_credential.g.dart deleted file mode 100644 index c6ad373e..00000000 --- a/lib/logic/models/hive/backblaze_credential.g.dart +++ /dev/null @@ -1,44 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'backblaze_credential.dart'; - -// ************************************************************************** -// TypeAdapterGenerator -// ************************************************************************** - -class BackblazeCredentialAdapter extends TypeAdapter { - @override - final int typeId = 4; - - @override - BackblazeCredential read(BinaryReader reader) { - final numOfFields = reader.readByte(); - final fields = { - for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(), - }; - return BackblazeCredential( - keyId: fields[0] as String, - applicationKey: fields[1] as String, - ); - } - - @override - void write(BinaryWriter writer, BackblazeCredential obj) { - writer - ..writeByte(2) - ..writeByte(0) - ..write(obj.keyId) - ..writeByte(1) - ..write(obj.applicationKey); - } - - @override - int get hashCode => typeId.hashCode; - - @override - bool operator ==(Object other) => - identical(this, other) || - other is BackblazeCredentialAdapter && - runtimeType == other.runtimeType && - typeId == other.typeId; -} diff --git a/lib/logic/models/hive/backups_credential.dart b/lib/logic/models/hive/backups_credential.dart new file mode 100644 index 00000000..c64345c4 --- /dev/null +++ b/lib/logic/models/hive/backups_credential.dart @@ -0,0 +1,51 @@ +import 'dart:convert'; + +import 'package:hive/hive.dart'; +import 'package:selfprivacy/logic/api_maps/graphql_maps/schema/schema.graphql.dart'; + +part 'backups_credential.g.dart'; + +@HiveType(typeId: 4) +class BackupsCredential { + BackupsCredential({required this.keyId, required this.applicationKey, required this.provider}); + + @HiveField(0) + final String keyId; + + @HiveField(1) + final String applicationKey; + + @HiveField(2, defaultValue: BackupsProvider.backblaze) + final BackupsProvider provider; + + String get encodedApiKey => encodedBackblazeKey(keyId, applicationKey); + + @override + String toString() => '$keyId: $encodedApiKey'; +} + +String encodedBackblazeKey(final String? keyId, final String? applicationKey) { + final String apiKey = '$keyId:$applicationKey'; + final String encodedApiKey = base64.encode(utf8.encode(apiKey)); + return encodedApiKey; +} + +@HiveType(typeId: 103) +enum BackupsProvider { + @HiveField(0) + none, + @HiveField(1) + memory, + @HiveField(2) + file, + @HiveField(3) + backblaze; + + factory BackupsProvider.fromGraphQL(final Enum$BackupProvider provider) => switch (provider) { + Enum$BackupProvider.NONE => none, + Enum$BackupProvider.MEMORY => memory, + Enum$BackupProvider.FILE => file, + Enum$BackupProvider.BACKBLAZE => backblaze, + Enum$BackupProvider.$unknown => none + }; +} diff --git a/lib/logic/models/hive/backups_credential.g.dart b/lib/logic/models/hive/backups_credential.g.dart new file mode 100644 index 00000000..9eae9093 --- /dev/null +++ b/lib/logic/models/hive/backups_credential.g.dart @@ -0,0 +1,93 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'backups_credential.dart'; + +// ************************************************************************** +// TypeAdapterGenerator +// ************************************************************************** + +class BackblazeCredentialAdapter extends TypeAdapter { + @override + final int typeId = 4; + + @override + BackblazeCredential read(BinaryReader reader) { + final numOfFields = reader.readByte(); + final fields = { + for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(), + }; + return BackblazeCredential( + keyId: fields[0] as String, + applicationKey: fields[1] as String, + ); + } + + @override + void write(BinaryWriter writer, BackblazeCredential obj) { + writer + ..writeByte(2) + ..writeByte(0) + ..write(obj.keyId) + ..writeByte(1) + ..write(obj.applicationKey); + } + + @override + int get hashCode => typeId.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is BackblazeCredentialAdapter && + runtimeType == other.runtimeType && + typeId == other.typeId; +} + +class BackupsProviderAdapter extends TypeAdapter { + @override + final int typeId = 103; + + @override + BackupsProvider read(BinaryReader reader) { + switch (reader.readByte()) { + case 0: + return BackupsProvider.none; + case 1: + return BackupsProvider.memory; + case 2: + return BackupsProvider.file; + case 3: + return BackupsProvider.backblaze; + default: + return BackupsProvider.none; + } + } + + @override + void write(BinaryWriter writer, BackupsProvider obj) { + switch (obj) { + case BackupsProvider.none: + writer.writeByte(0); + break; + case BackupsProvider.memory: + writer.writeByte(1); + break; + case BackupsProvider.file: + writer.writeByte(2); + break; + case BackupsProvider.backblaze: + writer.writeByte(3); + break; + } + } + + @override + int get hashCode => typeId.hashCode; + + @override + bool operator ==(Object other) => + identical(this, other) || + other is BackupsProviderAdapter && + runtimeType == other.runtimeType && + typeId == other.typeId; +}