template_preprocess_restcall_doc

Versions
mediamosa-21
template_preprocess_restcall_doc(&$variables)

Process variables for restcall-doc.tpl.php.

See also

restcall-doc.tpl.php

Code

sites/all/modules/mediamosa/maintenance/browse/mediamosa_maintenance_browse_restcalls.inc, line 232

<?php
function template_preprocess_restcall_doc(&$variables) {
  $rest_call = $variables['rest_call'];
  $var_setup = $variables['var_setup'];

  $variables['rest_call']->request_authorization = t('This call can be called without any authentication.');

  if ($rest_call->access >= mediamosa_rest_call::ACCESS_AUTHENTICATED && empty($rest_call->{mediamosa_rest_call::BEHAVE_AS_EXTERNAL})) {
    $variables['rest_call']->request_authorization = t('This call needs EGA authentication.');
  }

  $header = array(
    array('data' => t('Parameter')),
    array('data' => t('Type')),
    array('data' => t('Description')),
    array('data' => t('Required')),
    array('data' => t('Default value')),
    array('data' => t('Max. length')),
  );

  // Sort on param.
  ksort($var_setup[mediamosa_rest_call::VARS]);
  $form = $rows = array();

  if (!isset($var_setup[mediamosa_rest_call::VARS])) {
    $var_setup[mediamosa_rest_call::VARS] = array();
  }
  // First required.
  foreach ($var_setup[mediamosa_rest_call::VARS] as $param => $item) {
    if (isset($item[mediamosa_rest_call::VAR_IS_REQUIRED]) && $item[mediamosa_rest_call::VAR_IS_REQUIRED] == mediamosa_rest_call::VAR_IS_REQUIRED_YES) {
      $is_array = isset($item[mediamosa_rest_call::VAR_IS_ARRAY]) && $item[mediamosa_rest_call::VAR_IS_ARRAY] == mediamosa_rest_call::VAR_IS_ARRAY_YES ? '[]' : '';

      // Get allowed values.
      $allowed_values = !empty($item[mediamosa_rest_call::VAR_ALLOWED_VALUES]) ? $item[mediamosa_rest_call::VAR_ALLOWED_VALUES] : array();

      $rows[] = array(
        $param . $is_array,
        mediamosa_type::typeAlias2Type($item[mediamosa_rest_call::VAR_TYPE]),
        (isset($item[mediamosa_rest_call::VAR_DESCRIPTION]) ? $item[mediamosa_rest_call::VAR_DESCRIPTION] : '') . (!empty($allowed_values) ? '<br /><small>Value must be either "' . implode('" or "', $allowed_values) . '".' : ''),
        t('Required'),
        isset($item[mediamosa_rest_call::VAR_DEFAULT_VALUE]) ? $item[mediamosa_rest_call::VAR_DEFAULT_VALUE] : '',
        '-',
      );
    }
  }

  // Not required.
  foreach ($var_setup[mediamosa_rest_call::VARS] as $param => $item) {
    if (!isset($item[mediamosa_rest_call::VAR_IS_REQUIRED]) || $item[mediamosa_rest_call::VAR_IS_REQUIRED] == mediamosa_rest_call::VAR_IS_REQUIRED_NO) {
      $is_array = isset($item[mediamosa_rest_call::VAR_IS_ARRAY]) && $item[mediamosa_rest_call::VAR_IS_ARRAY] == mediamosa_rest_call::VAR_IS_ARRAY_YES ? '[]' : '';

      // Get allowed values.
      $allowed_values = !empty($item[mediamosa_rest_call::VAR_ALLOWED_VALUES]) ? $item[mediamosa_rest_call::VAR_ALLOWED_VALUES] : array();

      $rows[] = array(
        $param . $is_array,
        mediamosa_type::typeAlias2Type($item[mediamosa_rest_call::VAR_TYPE]),
        (isset($item[mediamosa_rest_call::VAR_DESCRIPTION]) ? $item[mediamosa_rest_call::VAR_DESCRIPTION] : '') . (!empty($allowed_values) ? '<br /><small>Value (when supplied) must be either "' . implode('" or "', $allowed_values) . '".' : ''),
        t('Optional'),
        isset($item[mediamosa_rest_call::VAR_DEFAULT_VALUE]) ? $item[mediamosa_rest_call::VAR_DEFAULT_VALUE] : '',
        '-',
      );
    }
  }

  // Parameter list.
  $variables['parameters'] = theme(
    'table',
    array(
      'header' => $header,
      'rows' => $rows,
      'empty' => t('This REST call has no input parameters.'),
    )
  );

  // Response fields.
  $header = array(
    array('data' => t('Field')),
    array('data' => t('Description')),
  );

  if (!empty($rest_call->response_fields)) {
    $rows = array();
    foreach ($rest_call->response_fields as $key => $value) {
      $rows[] = array($key, $value);
    }

    // Hide table when response fields is empty.
    if (!empty($rows)) {
      $variables['response_fields'] = theme(
        'table',
        array(
          'header' => $header,
          'rows' => $rows,
          'empty' => t('No response fields found.')
        )
      );
    }
  }
  elseif ($rest_call->response_fields === FALSE) {
    $variables['response_fields'] = t('This REST call does not have any response fields and will always return empty items array');
  }

  if (empty($variables['rest_call']->example_request)) {
    $variables['warnings'][] = t('No example request specified.');
  }
  if ($variables['rest_call']->example_response === FALSE) {
    if ($rest_call->{mediamosa_rest_call::METHOD} == mediamosa_rest_call::METHOD_GET) {
      $variables['rest_call']->example_response = t('This REST call does not generate a items response, check the result ID instead. Will return 601 (OK) or 705 (empty result) as success.');
    }
    else {
      $variables['rest_call']->example_response = t('This REST call does not generate a items response, check the result ID instead. Will return 601 (OK) as success.');
    }
  }

  if (empty($variables['rest_call']->example_response)) {
    $variables['warnings'][] = t('No example response specified.');
  }
}
?>