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) {
    return const ValidationResult.invalid('action is required');
  }
  if (_coordActions.contains(action) && input['coordinates'] == null) {
    return ValidationResult.invalid(
      'coordinates [x, y] required for $action',
    );
  }
  if (action == 'type' && input['text'] == null) {
    return const ValidationResult.invalid('text is required for type');
  }
  if (action == 'key' && input['key'] == null) {
    return const ValidationResult.invalid('key is required for key action');
  }
  if (action == 'scroll' && input['scroll_direction'] == null) {
    return const ValidationResult.invalid(
      'scroll_direction required for scroll',
    );
  }
  return const ValidationResult.valid();
}