diff --git a/lib/logic/api_maps/graphql_maps/server_api/server_actions_api.dart b/lib/logic/api_maps/graphql_maps/server_api/server_actions_api.dart index f6fd5201..131a6a6d 100644 --- a/lib/logic/api_maps/graphql_maps/server_api/server_actions_api.dart +++ b/lib/logic/api_maps/graphql_maps/server_api/server_actions_api.dart @@ -20,15 +20,23 @@ mixin ServerActionsApi on GraphQLApiMap { return result; } - Future reboot() async { + Future> reboot() async { + DateTime? time; try { final GraphQLClient client = await getClient(); - return await _commonBoolRequest( - () async => client.mutate$RebootSystem(), - ); + final response = await client.mutate$RunSystemRebuild(); + if (response.hasException) { + print(response.exception.toString()); + } + if (response.parsedData!.runSystemRebuild.success) { + time = DateTime.now(); + } } catch (e) { - return false; + print(e); + return GenericResult(data: time, success: false); } + + return GenericResult(data: time, success: true); } Future pullConfigurationUpdate() async { diff --git a/lib/logic/cubit/client_jobs/client_jobs_cubit.dart b/lib/logic/cubit/client_jobs/client_jobs_cubit.dart index 8b6a66b4..59a33673 100644 --- a/lib/logic/cubit/client_jobs/client_jobs_cubit.dart +++ b/lib/logic/cubit/client_jobs/client_jobs_cubit.dart @@ -54,8 +54,8 @@ class JobsCubit extends Cubit { Future rebootServer() async { emit(JobsStateLoading()); - final bool isSuccessful = await api.reboot(); - if (isSuccessful) { + final rebootResult = await api.reboot(); + if (rebootResult.success && rebootResult.data != null) { getIt().showSnackBar('jobs.reboot_success'.tr()); } else { getIt().showSnackBar('jobs.reboot_failed'.tr()); diff --git a/lib/logic/cubit/server_installation/server_installation_repository.dart b/lib/logic/cubit/server_installation/server_installation_repository.dart index dd3388c6..4799a7d8 100644 --- a/lib/logic/cubit/server_installation/server_installation_repository.dart +++ b/lib/logic/cubit/server_installation/server_installation_repository.dart @@ -254,12 +254,12 @@ class ServerInstallationRepository { Future restart() async { final server = getIt().serverDetails!; - final result = await ProvidersController.currentServerProvider!.restart( - server.id, - ); + final result = await ServerApi().reboot(); if (result.success && result.data != null) { server.copyWith(startTime: result.data); + } else { + getIt().showSnackBar('jobs.reboot_failed'.tr()); } return server;