import 'dart:convert'; import 'dart:core'; import 'package:backend_dart/domain/errors/app_error.dart'; import 'package:backend_dart/domain/interface/error.dart'; import 'package:fpdart/fpdart.dart'; import 'package:shelf/shelf.dart'; TaskEither> requestToJson(Request request) { return TaskEither.tryCatch( () async { final body = await request.readAsString(); return jsonDecode(body); }, (error, stack) => AppError.inputError( message: 'Failed to decode JSON: ${error.toString()}', ), ); } TaskEither decodeJson( Map json, T Function(Map) fromJson) { return TaskEither.tryCatch( () async { return fromJson(json); }, (error, stack) => AppError.inputError( message: 'Failed to decode JSON: ${error.toString()}', ), ); }