validateInput method

  1. @override
ValidationResult validateInput(
  1. Map<String, dynamic> input
)
override

Validate input before execution and permission checks.

Implementation

@override
ValidationResult validateInput(Map<String, dynamic> input) {
  final action = input['action'] as String?;
  if (action == null || !['get', 'set', 'list', 'reset'].contains(action)) {
    return const ValidationResult.invalid(
      'action must be get, set, list, or reset',
    );
  }
  if ((action == 'get' || action == 'set' || action == 'reset') &&
      input['key'] == null) {
    return ValidationResult.invalid('key is required for $action');
  }
  if (action == 'set' && input['value'] == null) {
    return const ValidationResult.invalid('value is required for set');
  }
  return const ValidationResult.valid();
}