Initial web socket client support

This commit is contained in:
2025-02-10 09:27:50 -07:00
parent e7641f6aec
commit 623474e0c6
5 changed files with 154 additions and 41 deletions
+21 -1
View File
@@ -1,5 +1,6 @@
import 'package:dio/dio.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:frontend/providers/auth.dart';
import 'package:logging/logging.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
@@ -15,11 +16,30 @@ Dio dio(Ref ref) {
receiveTimeout: const Duration(seconds: 3),
));
dio.interceptors.add(LogInterceptor(responseBody: true));
final jwt = ref.watch(jwtNotifierProvider).valueOrNull;
dio.interceptors.addAll([JwtInterceptor(jwt: jwt), CustomLogInterceptor()]);
logger.fine('Created new Dio object');
return dio;
}
// Adds the jwt to
class JwtInterceptor extends Interceptor {
final String? jwt;
JwtInterceptor({required this.jwt});
@override
void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
if (jwt != null) {
options.headers['Authorization'] = 'Bearer $jwt';
}
handler.next(options);
}
}
// Create a custom LogInterceptor using the logger object
class CustomLogInterceptor extends Interceptor {
@override