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 ||
      !['read', 'write', 'append', 'list'].contains(action)) {
    return const ValidationResult.invalid(
      'action must be read, write, append, or list',
    );
  }
  if (action != 'list' && (input['path'] == null)) {
    return ValidationResult.invalid('path is required for $action');
  }
  if ((action == 'write' || action == 'append') && input['content'] == null) {
    return ValidationResult.invalid('content is required for $action');
  }
  return const ValidationResult.valid();
}