mirror of
https://github.com/JGeek00/adguard-home-manager.git
synced 2025-05-14 05:52:51 +00:00
Added get server status
This commit is contained in:
parent
97e4fea015
commit
4ab8ff760c
5 changed files with 81 additions and 23 deletions
|
@ -6,9 +6,19 @@ import 'dart:io';
|
|||
|
||||
import 'package:http/http.dart' as http;
|
||||
|
||||
import 'package:adguard_home_manager/models/server_status.dart';
|
||||
import 'package:adguard_home_manager/models/dns_statistics.dart';
|
||||
import 'package:adguard_home_manager/models/server.dart';
|
||||
|
||||
Future<http.Response> getRequest(String urlPath, Server server) {
|
||||
return http.get(
|
||||
Uri.parse("${server.connectionMethod}://${server.domain}${server.path ?? ""}${server.port != null ? ':${server.port}' : ""}/control$urlPath"),
|
||||
headers: {
|
||||
'Authorization': 'Basic ${server.authToken}'
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
Future login(Server server) async {
|
||||
try {
|
||||
final result = await http.post(
|
||||
|
@ -47,18 +57,37 @@ Future login(Server server) async {
|
|||
}
|
||||
}
|
||||
|
||||
Future getDnsStatistics(Server server) async {
|
||||
Future getServerStatus(Server server) async {
|
||||
try {
|
||||
final result = await http.get(
|
||||
Uri.parse("${server.connectionMethod}://${server.domain}${server.path ?? ""}${server.port != null ? ':${server.port}' : ""}/control/stats"),
|
||||
headers: {
|
||||
'Authorization': 'Basic ${server.authToken}'
|
||||
}
|
||||
);
|
||||
if (result.statusCode == 200) {
|
||||
final result = await Future.wait([
|
||||
getRequest('/stats', server),
|
||||
getRequest('/status', server),
|
||||
getRequest('/filtering/status', server),
|
||||
getRequest('/safesearch/status', server),
|
||||
getRequest('/safebrowsing/status', server),
|
||||
getRequest('/parental/status', server),
|
||||
]);
|
||||
|
||||
if (
|
||||
result[0].statusCode == 200 &&
|
||||
result[1].statusCode == 200 &&
|
||||
result[2].statusCode == 200 &&
|
||||
result[3].statusCode == 200 &&
|
||||
result[4].statusCode == 200 &&
|
||||
result[5].statusCode == 200
|
||||
) {
|
||||
final Map<String, dynamic> mappedData = {
|
||||
'stats': jsonDecode(result[0].body),
|
||||
'generalEnabled': jsonDecode(result[1].body),
|
||||
'filteringEnabled': jsonDecode(result[2].body),
|
||||
'safeSearchEnabled': jsonDecode(result[3].body),
|
||||
'safeBrowsingEnabled': jsonDecode(result[4].body),
|
||||
'parentalControlEnabled': jsonDecode(result[5].body),
|
||||
};
|
||||
|
||||
return {
|
||||
'result': 'success',
|
||||
'data': DnsStatistics.fromJson(jsonDecode(result.body))
|
||||
'data': ServerStatus.fromJson(mappedData)
|
||||
};
|
||||
}
|
||||
else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue