Added auth token to server modal and dns statistics request

This commit is contained in:
Juan Gilsanz Polo 2022-09-27 02:38:59 +02:00
parent 360b6865be
commit 97e4fea015
9 changed files with 171 additions and 15 deletions

View file

@ -6,6 +6,7 @@ import 'dart:io';
import 'package:http/http.dart' as http;
import 'package:adguard_home_manager/models/dns_statistics.dart';
import 'package:adguard_home_manager/models/server.dart';
Future login(Server server) async {
@ -44,4 +45,32 @@ Future login(Server server) async {
} catch (e) {
return {'result': 'error'};
}
}
Future getDnsStatistics(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) {
return {
'result': 'success',
'data': DnsStatistics.fromJson(jsonDecode(result.body))
};
}
else {
return {'result': 'error'};
}
} on SocketException {
return {'result': 'no_connection'};
} on TimeoutException {
return {'result': 'no_connection'};
} on HandshakeException {
return {'result': 'ssl_error'};
} catch (e) {
return {'result': 'error'};
}
}