Added logs screen and list

This commit is contained in:
Juan Gilsanz Polo 2022-09-30 23:33:57 +02:00
parent e657b2e626
commit 1235d6c75e
10 changed files with 666 additions and 2 deletions

View file

@ -5,6 +5,7 @@ import 'dart:convert';
import 'dart:io';
import 'package:http/http.dart' as http;
import 'package:adguard_home_manager/models/logs.dart';
import 'package:adguard_home_manager/models/app_log.dart';
import 'package:adguard_home_manager/models/server_status.dart';
import 'package:adguard_home_manager/models/clients.dart';
@ -355,4 +356,73 @@ Future requestAllowedBlockedClientsHosts(Server server, Map<String, List<String>
} catch (e) {
return {'result': 'error'};
}
}
Future getLogs({
required Server server,
required int count,
int? offset
}) async {
final result = await getRequest(
urlPath: '/querylog?limit=$count${offset != null ? '&offset=$offset' : ''}',
server: server
);
if (result.statusCode == 200) {
return {
'result': 'success',
'data': LogsData.fromJson(jsonDecode(result.body))
};
}
else {
return {
'result': 'error',
'log': AppLog(
type: 'logs',
dateTime: DateTime.now(),
message: 'error_code_not_expected',
statusCode: result.statusCode,
resBody: result.body
)
};
}
try {
} on SocketException {
return {
'result': 'no_connection',
'log': AppLog(
type: 'logs',
dateTime: DateTime.now(),
message: 'SocketException'
)
};
} on TimeoutException {
return {
'result': 'no_connection',
'log': AppLog(
type: 'logs',
dateTime: DateTime.now(),
message: 'TimeoutException'
)
};
} on HandshakeException {
return {
'result': 'ssl_error',
'message': 'HandshakeException',
'log': AppLog(
type: 'logs',
dateTime: DateTime.now(),
message: 'TimeoutException'
)
};
} catch (e) {
return {
'result': 'error',
'log': AppLog(
type: 'logs',
dateTime: DateTime.now(),
message: e.toString()
)
};
}
}