import 'package:backend/authenticator.dart';
import 'package:backend/database.dart';
import 'package:dart_frog/dart_frog.dart';
import 'package:dart_frog_auth/dart_frog_auth.dart';

Handler middleware(Handler handler) {
  return handler.use(
    bearerAuthentication<User>(
      authenticator: (context, token) async {
        final authenticator = context.read<Authenticator>();
        return authenticator.verifyToken(token);
      },
      // says to apply the middleware to all routes
      applies: (_) async => true,
    ),
  );
}