selfprivacy.org.app/lib/logic/api_maps/api_map.dart

50 lines
1.1 KiB
Dart

import 'package:dio/dio.dart';
import 'package:selfprivacy/config/get_it_config.dart';
import 'package:selfprivacy/logic/get_it/console.dart';
import 'package:selfprivacy/logic/models/message.dart';
abstract class ApiMap {
String rootAddress;
// Dio client = Dio();
Dio loggedClient = Dio()..interceptors.add(ConsoleInterceptor());
void close() {
loggedClient.close();
}
}
class ConsoleInterceptor extends InterceptorsWrapper {
void addMessage(Message message) {
getIt.get<ConsoleModel>().addMessage(message);
}
@override
Future onRequest(RequestOptions options) async {
addMessage(
Message(
text:
'request-uri: ${options.uri}\nheaders: ${options.headers}\ndata: ${options.data}',
),
);
return super.onRequest(options);
}
@override
Future onResponse(Response response) async {
addMessage(
Message(
text:
'response-uri: ${response.request.uri}\ncode: ${response.statusCode}\ndata: ${response.data}\n',
),
);
return super.onResponse(response);
}
@override
Future onError(DioError err) async {
return super.onError(err);
}
}