import 'dart:convert'; import 'package:shelf/shelf.dart'; import 'package:shelf_router/shelf_router.dart'; import 'auth_api.dart'; Handler buildApiHandler({AuthApi? authApi}) { final router = Router() ..get('/health', (Request request) { return Response.ok( jsonEncode({'status': 'ok'}), headers: {'content-type': 'application/json'}, ); }); if (authApi != null) { router ..post('/auth/register', authApi.register) ..post('/auth/login', authApi.loginUser) ..post( '/auth/logout', authenticationMiddleware(authApi.authenticateRequest.execute)( authApi.logoutUser, ), ); } return const Pipeline().addMiddleware(logRequests()).addHandler(router.call); }