2022-11-16 00:24:40 +00:00
|
|
|
part of 'server_api.dart';
|
2022-08-26 19:28:01 +00:00
|
|
|
|
2023-06-19 18:15:24 +00:00
|
|
|
mixin ServerActionsApi on GraphQLApiMap {
|
2022-08-26 19:28:01 +00:00
|
|
|
Future<bool> _commonBoolRequest(final Function graphQLMethod) async {
|
|
|
|
QueryResult response;
|
|
|
|
bool result = false;
|
|
|
|
|
|
|
|
try {
|
|
|
|
response = await graphQLMethod();
|
|
|
|
if (response.hasException) {
|
|
|
|
print(response.exception.toString());
|
|
|
|
result = false;
|
|
|
|
} else {
|
|
|
|
result = true;
|
|
|
|
}
|
|
|
|
} catch (e) {
|
|
|
|
print(e);
|
|
|
|
}
|
|
|
|
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2023-08-02 21:08:23 +00:00
|
|
|
Future<GenericResult<DateTime?>> reboot() async {
|
|
|
|
DateTime? time;
|
2022-08-26 19:28:01 +00:00
|
|
|
try {
|
|
|
|
final GraphQLClient client = await getClient();
|
2023-08-06 21:24:41 +00:00
|
|
|
final response = await client.mutate$RebootSystem();
|
2023-08-02 21:08:23 +00:00
|
|
|
if (response.hasException) {
|
|
|
|
print(response.exception.toString());
|
|
|
|
}
|
2024-01-15 09:11:09 +00:00
|
|
|
if (response.parsedData!.system.rebootSystem.success) {
|
2024-02-20 16:33:24 +00:00
|
|
|
return GenericResult(
|
|
|
|
data: time,
|
|
|
|
success: true,
|
|
|
|
message: response.parsedData!.system.rebootSystem.message,
|
|
|
|
);
|
2023-08-02 21:08:23 +00:00
|
|
|
}
|
2022-08-26 19:28:01 +00:00
|
|
|
} catch (e) {
|
2023-08-02 21:08:23 +00:00
|
|
|
print(e);
|
|
|
|
return GenericResult(data: time, success: false);
|
2022-08-26 19:28:01 +00:00
|
|
|
}
|
2023-08-02 21:08:23 +00:00
|
|
|
|
|
|
|
return GenericResult(data: time, success: true);
|
2022-08-26 19:28:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
Future<bool> pullConfigurationUpdate() async {
|
|
|
|
try {
|
|
|
|
final GraphQLClient client = await getClient();
|
|
|
|
return await _commonBoolRequest(
|
2022-09-18 23:42:21 +00:00
|
|
|
() async => client.mutate$PullRepositoryChanges(),
|
2022-08-26 19:28:01 +00:00
|
|
|
);
|
|
|
|
} catch (e) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-02-20 16:33:24 +00:00
|
|
|
Future<GenericResult<ServerJob?>> upgrade() async {
|
2022-08-26 19:28:01 +00:00
|
|
|
try {
|
|
|
|
final GraphQLClient client = await getClient();
|
2024-02-20 16:33:24 +00:00
|
|
|
final result = await client.mutate$RunSystemUpgrade();
|
|
|
|
if (result.hasException) {
|
|
|
|
final fallbackResult = await client.mutate$RunSystemUpgradeFallback();
|
|
|
|
if (fallbackResult.parsedData!.system.runSystemUpgrade.success) {
|
|
|
|
return GenericResult(
|
|
|
|
success: true,
|
|
|
|
data: null,
|
|
|
|
message: fallbackResult.parsedData!.system.runSystemUpgrade.message,
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
return GenericResult(
|
|
|
|
success: false,
|
|
|
|
message: fallbackResult.parsedData!.system.runSystemUpgrade.message,
|
|
|
|
data: null,
|
|
|
|
);
|
|
|
|
}
|
|
|
|
} else if (result.parsedData!.system.runSystemUpgrade.success &&
|
|
|
|
result.parsedData!.system.runSystemUpgrade.job != null) {
|
|
|
|
return GenericResult(
|
|
|
|
success: true,
|
|
|
|
data: ServerJob.fromGraphQL(
|
|
|
|
result.parsedData!.system.runSystemUpgrade.job!,
|
|
|
|
),
|
|
|
|
message: result.parsedData!.system.runSystemUpgrade.message,
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
return GenericResult(
|
|
|
|
success: false,
|
|
|
|
message: result.parsedData!.system.runSystemUpgrade.message,
|
|
|
|
data: null,
|
|
|
|
);
|
|
|
|
}
|
2022-08-26 19:28:01 +00:00
|
|
|
} catch (e) {
|
2024-02-20 16:33:24 +00:00
|
|
|
return GenericResult(
|
|
|
|
success: false,
|
|
|
|
message: e.toString(),
|
|
|
|
data: null,
|
|
|
|
);
|
2022-08-26 19:28:01 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-02-20 16:33:24 +00:00
|
|
|
Future<GenericResult<ServerJob?>> apply() async {
|
2022-08-26 19:28:01 +00:00
|
|
|
try {
|
|
|
|
final GraphQLClient client = await getClient();
|
2024-02-20 16:33:24 +00:00
|
|
|
final result = await client.mutate$RunSystemRebuild();
|
|
|
|
if (result.hasException) {
|
|
|
|
final fallbackResult = await client.mutate$RunSystemRebuildFallback();
|
|
|
|
if (fallbackResult.parsedData!.system.runSystemRebuild.success) {
|
|
|
|
return GenericResult(
|
|
|
|
success: true,
|
|
|
|
data: null,
|
|
|
|
message: fallbackResult.parsedData!.system.runSystemRebuild.message,
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
return GenericResult(
|
|
|
|
success: false,
|
|
|
|
message: fallbackResult.parsedData!.system.runSystemRebuild.message,
|
|
|
|
data: null,
|
|
|
|
);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if (result.parsedData!.system.runSystemRebuild.success &&
|
|
|
|
result.parsedData!.system.runSystemRebuild.job != null) {
|
|
|
|
return GenericResult(
|
|
|
|
success: true,
|
|
|
|
data: ServerJob.fromGraphQL(
|
|
|
|
result.parsedData!.system.runSystemRebuild.job!,
|
|
|
|
),
|
|
|
|
message: result.parsedData!.system.runSystemRebuild.message,
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
return GenericResult(
|
|
|
|
success: false,
|
|
|
|
message: result.parsedData!.system.runSystemRebuild.message,
|
|
|
|
data: null,
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
2022-08-26 19:28:01 +00:00
|
|
|
} catch (e) {
|
|
|
|
print(e);
|
2024-02-20 16:33:24 +00:00
|
|
|
return GenericResult(
|
|
|
|
success: false,
|
|
|
|
message: e.toString(),
|
|
|
|
data: null,
|
|
|
|
);
|
2022-08-26 19:28:01 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|