// import 'dart:convert'; // import 'dart:io'; // // import 'package:mnemo_cards_backend/api/authorize/helpers.dart'; // import 'package:mnemo_cards_backend/packs/pack_manager.dart'; // import 'package:mnemo_cards_backend/user/user_manager.dart'; // import 'package:shelf/shelf.dart'; // import 'package:shelf_router/shelf_router.dart'; // // import '../../tests/test_manager.dart'; // // part 'app_api.g.dart'; // // class AppApi { // final PackManager _packManager; // final UserManager _userManager; // final TestManager _testManager; // // AppApi( // this._packManager, // this._userManager, // this._testManager, // ); // // Response ok(Object? object, {Map headers = const {}}) => // Response.ok(object == null ? null : jsonEncode(object), headers: headers); // // @Route.get('/packs/') // Future listPacks(Request request) async { // return ok(await _packManager.listPacksActions( // request.url.queryParameters, // request.user, // )); // } // // @Route.get('/packs/') // Future fetchPack(Request request, String packId) async { // final authToken = request.headers[HttpHeaders.authorizationHeader]; // if (authToken == null) { // return Response.unauthorized('Not authenticated'); // } // return ok(await _packManager.fetchPack( // packId, // request.user, // )); // } // // @Route.get('/cards/') // Future fetchPackCards(Request request, String packId) async { // return Response.ok( // await _packManager.fetchPackImagesArchive(packId), // ); // } // // @Route.get('/tests/') // Future fetchTest(Request request, String testId) async { // final authToken = request.headers[HttpHeaders.authorizationHeader]; // if (authToken == null) { // return Response.unauthorized('Not authenticated'); // } // final user = await _userManager.getUserByToken(authToken); // if (user != null) { // final test = await _testManager.fetchTest(int.parse(testId)); // if (test != null) { // return ok(test); // } else { // return Response.notFound('Test not found'); // } // } else { // return Response.unauthorized('Not authenticated'); // } // } // // @Route.get('/tests') // Future fetchTests(Request request) async { // final authToken = request.headers[HttpHeaders.authorizationHeader]; // if (authToken == null) { // return Response.unauthorized('Not authenticated'); // } // final user = await _userManager.getUserByToken(authToken); // if (user != null) { // return ok(await _testManager.availableTests(user)); // } else { // return Response.unauthorized('Not authenticated'); // } // } // // // Create router using the generate function defined in 'userservice.g.dart'. // Router get router => _$AppApiRouter(this); // }