class-robots-validator.php 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. /**
  3. * WPSEO plugin file.
  4. *
  5. * @package WPSEO\Indexables
  6. */
  7. /**
  8. * Class WPSEO_Robots_Validator.
  9. */
  10. class WPSEO_Robots_Validator implements WPSEO_Endpoint_Validator {
  11. /**
  12. * The robots keys to validate.
  13. *
  14. * @var array
  15. */
  16. private $robots_to_validate = [
  17. 'is_robots_nofollow',
  18. 'is_robots_noarchive',
  19. 'is_robots_noimageindex',
  20. 'is_robots_nosnippet',
  21. 'is_robots_noindex',
  22. ];
  23. /**
  24. * Validates the passed request data.
  25. *
  26. * @param array $request_data The request data to validate.
  27. *
  28. * @return void
  29. *
  30. * @throws WPSEO_Invalid_Argument_Exception Thrown if the robots values are not a boolean type.
  31. */
  32. public function validate( $request_data ) {
  33. foreach ( $this->robots_to_validate as $item ) {
  34. if ( ! WPSEO_Validator::key_exists( $request_data, $item ) ) {
  35. continue;
  36. }
  37. if ( ! is_null( $request_data[ $item ] ) && ! WPSEO_Validator::is_boolean( $request_data[ $item ] ) ) {
  38. throw WPSEO_Invalid_Argument_Exception::invalid_boolean_parameter( $request_data[ $item ], $item );
  39. }
  40. }
  41. }
  42. }