19 lines
552 B
Dart

import 'package:backend_dart/domain/errors/app_error.dart';
import 'package:fpdart/fpdart.dart';
TaskEither<AppError, Map<String, dynamic>> Function(Map<String, dynamic>)
validateJsonKeys(List<String> requiredKeys) {
return (json) {
final missingKeys =
requiredKeys.where((key) => !json.containsKey(key)).toList();
if (missingKeys.isNotEmpty) {
return TaskEither.left(AppError.validationError(
message: 'Missing required keys: ${missingKeys.join(', ')}',
));
}
return TaskEither.right(json);
};
}