23 lines
694 B
Dart

import 'package:backend_dart/domain/errors/app_error.dart';
import 'package:backend_dart/domain/interface/error.dart';
import 'package:fpdart/fpdart.dart';
TaskEither<IError, Map<String, dynamic>> validateJsonKeys(
Map<String, dynamic> json, List<String> requiredKeys) {
return TaskEither.tryCatch(
() async {
final missingKeys =
requiredKeys.where((key) => !json.containsKey(key)).toList();
if (missingKeys.isNotEmpty) {
throw Exception('Missing required keys: ${missingKeys.join(', ')}');
}
return json;
},
(error, _) => AppError.validationError(
message: 'Failed to validate JSON keys: ${error.toString()}',
),
);
}