You are here

function _apigee_api_catalog_form_node_form_validate in Apigee API Catalog 8.2

Form validator for the "apidoc" node bundle.

Parameters

array $form: The form.

\Drupal\Core\Form\FormStateInterface $form_state: The form state.

1 string reference to '_apigee_api_catalog_form_node_form_validate'
apigee_api_catalog_form_node_form_alter in ./apigee_api_catalog.module
Implements hook_form_FORM_ID_alter().

File

./apigee_api_catalog.module, line 192
Copyright 2019 Google Inc.

Code

function _apigee_api_catalog_form_node_form_validate(&$form, FormStateInterface $form_state) {
  $values = $form_state
    ->getValues();
  if (empty($values['field_apidoc_spec_file_source'])) {
    return;
  }

  // Make sure the field_apidoc_spec (file) or field_apidoc_file_link (link)
  // is not empty, according to what was selected as the file source.
  $source = $values['field_apidoc_spec_file_source'][0]['value'] ?: NULL;
  if ($source == SpecFetcherInterface::SPEC_AS_FILE && empty($values['field_apidoc_spec'][0]['fids'][0])) {
    $form_state
      ->setErrorByName('field_apidoc_spec', t('Provide an OpenAPI specification file.'));
  }
  elseif ($source == SpecFetcherInterface::SPEC_AS_URL && empty($values['field_apidoc_file_link'][0]['uri'])) {
    $form_state
      ->setErrorByName('field_apidoc_file_link', t('Provide the URL to an OpenAPI specification file.'));
  }
}