Implement initialization migration to binds error handling

pull/116/head
NaiJi ✨ 2022-09-18 17:29:00 +03:00
parent cb660eb2bb
commit 159f861965
2 changed files with 34 additions and 7 deletions

View File

@ -1,5 +1,15 @@
part of 'server.dart';
class MigrateToBindsMutationReturn extends GenericMutationResult {
MigrateToBindsMutationReturn({
required final super.success,
required final super.code,
final super.message,
this.jobUid,
});
final String? jobUid;
}
mixin VolumeApi on ApiMap {
Future<List<ServerDiskVolume>> getServerDiskVolumes() async {
QueryResult response;
@ -57,10 +67,11 @@ mixin VolumeApi on ApiMap {
}
}
Future<String?> migrateToBinds(
Future<MigrateToBindsMutationReturn> migrateToBinds(
final Map<String, String> serviceToDisk,
) async {
String? jobUid;
MigrateToBindsMutationReturn? mutation;
try {
final GraphQLClient client = await getClient();
final input = Input$MigrateToBindsInput(
@ -77,12 +88,22 @@ mixin VolumeApi on ApiMap {
await client.mutate$MigrateToBinds(
migrateMutation,
);
jobUid = result.parsedData!.migrateToBinds.job!.uid;
mutation = mutation = MigrateToBindsMutationReturn(
success: result.parsedData!.migrateToBinds.success,
code: result.parsedData!.migrateToBinds.code,
message: result.parsedData!.migrateToBinds.message,
jobUid: result.parsedData!.migrateToBinds.job?.uid,
);
} catch (e) {
print(e);
mutation = MigrateToBindsMutationReturn(
success: false,
code: 0,
message: e.toString(),
jobUid: null,
);
}
return jobUid;
return mutation;
}
}

View File

@ -1,5 +1,6 @@
import 'dart:async';
import 'package:selfprivacy/config/get_it_config.dart';
import 'package:selfprivacy/logic/api_maps/graphql_maps/server_api/server.dart';
import 'package:selfprivacy/logic/cubit/app_config_dependent/authentication_dependend_cubit.dart';
import 'package:selfprivacy/logic/models/json/server_job.dart';
@ -44,10 +45,15 @@ class ServerJobsCubit
}
Future<void> migrateToBinds(final Map<String, String> serviceToDisk) async {
final String? jobUid = await api.migrateToBinds(serviceToDisk);
final result = await api.migrateToBinds(serviceToDisk);
if (!result.success || result.jobUid == null) {
getIt<NavigationService>().showSnackBar(result.message!);
return;
}
emit(
ServerJobsState(
migrationJobUid: jobUid,
migrationJobUid: result.jobUid,
),
);
}