You are here

public function WSConnectorSimpleHTTP::getOptionsForm in Web Service Data 2.0.x

Same name and namespace in other branches
  1. 8 src/Plugin/WSConnector/WSConnectorSimpleHTTP.php \Drupal\wsdata\Plugin\WSConnector\WSConnectorSimpleHTTP::getOptionsForm()

Return the settings form provided by the connector.

Overrides WSConnectorBase::getOptionsForm

2 calls to WSConnectorSimpleHTTP::getOptionsForm()
WSConnectorGraphQL::getOptionsForm in src/Plugin/WSConnector/WSConnectorGraphQL.php
Return the settings form provided by the connector.
WSConnectorSimpleHTTPWithLangReplacement::getOptionsForm in src/Plugin/WSConnector/WSConnectorSimpleHTTPWithLangReplacement.php
Return the settings form provided by the connector.
3 methods override WSConnectorSimpleHTTP::getOptionsForm()
WSConnectorGraphQL::getOptionsForm in src/Plugin/WSConnector/WSConnectorGraphQL.php
Return the settings form provided by the connector.
WSConnectorSimpleHTTPWithLangReplacement::getOptionsForm in src/Plugin/WSConnector/WSConnectorSimpleHTTPWithLangReplacement.php
Return the settings form provided by the connector.
WSConnectorSOAP::getOptionsForm in src/Plugin/WSConnector/WSConnectorSOAP.php
Return the settings form provided by the connector.

File

src/Plugin/WSConnector/WSConnectorSimpleHTTP.php, line 101

Class

WSConnectorSimpleHTTP
HTTP Connector.

Namespace

Drupal\wsdata\Plugin\WSConnector

Code

public function getOptionsForm($options = []) {
  $methods = $this
    ->getMethods();
  $form['path'] = [
    '#title' => $this
      ->t('Path'),
    '#description' => $this
      ->t('The final endpoint will be <em>Server Endpoint/Path</em>'),
    '#type' => 'textfield',
    '#maxlength' => 512,
  ];
  $form['method'] = [
    '#title' => $this
      ->t('HTTP Method'),
    '#type' => 'select',
    '#options' => array_combine($methods, $methods),
  ];
  $form['expires'] = [
    '#type' => 'number',
    '#title' => $this
      ->t('Expire'),
    '#description' => $this
      ->t("Cache the response for number of seconds. This values will override the Cache-Control header value if it's set"),
  ];
  if (!isset($options['headers'])) {
    $options['headers'] = [];
  }
  $header_count = count($options['headers']);
  if (isset($options['form_state'])) {
    $input = $options['form_state']
      ->getUserInput();
    if (isset($input['headers_count'])) {
      $header_count = $input['headers_count'] + 1;
    }
  }
  $form['headers'] = [
    '#title' => $this
      ->t('Headers'),
    '#type' => 'fieldset',
    '#attributes' => [
      'id' => 'wsconnector-headers',
    ],
  ];
  $form['headers']['headers_count'] = [
    '#type' => 'hidden',
    '#value' => $header_count,
  ];
  for ($i = 0; $i < $header_count; $i++) {
    $form['headers'][$i] = [
      '#title' => 'header',
      '#type' => 'fieldset',
    ];
    $form['headers'][$i]['key_' . $i] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Key'),
    ];
    $form['headers'][$i]['value_' . $i] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Value'),
    ];
  }
  if (isset($options['form_state'])) {
    $form['headers']['add_another'] = [
      '#type' => 'submit',
      '#value' => $this
        ->t('Add another'),
      '#ajax' => [
        'callback' => '\\Drupal\\wsdata\\Plugin\\WSConnector\\WSConnectorSimpleHTTP::wsconnectorHttpHeaderAjaxCallback',
        'wrapper' => 'wsconnector-headers',
      ],
      '#limit_validation_errors' => [],
    ];
  }
  return $form;
}