23 lines
694 B
Dart
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()}',
|
|
),
|
|
);
|
|
}
|