You are here

function acquia_connector_test_nspi_update in Acquia Connector 7.2

Same name and namespace in other branches
  1. 7.3 acquia_agent/tests/acquia_connector_test.module \acquia_connector_test_nspi_update()
1 call to acquia_connector_test_nspi_update()
acquia_connector_test_xmlrpc_server_emulator in acquia_agent/tests/acquia_connector_test.module
1 string reference to 'acquia_connector_test_nspi_update'
acquia_connector_test_xmlrpc in acquia_agent/tests/acquia_connector_test.module

File

acquia_agent/tests/acquia_connector_test.module, line 293
Test endpoint for Acquia Connector XML-RPC calls.

Code

function acquia_connector_test_nspi_update($data) {
  $fields = array(
    'time' => 'is_numeric',
    'nonce' => 'is_string',
    'hash' => 'is_string',
  );
  $result = acquia_connector_test_basic_authenticator($fields, $data);
  if (!empty($result->is_error)) {
    return $result;
  }
  if (!empty($data['authenticator']['identifier'])) {
    if ($data['authenticator']['identifier'] != ACQTEST_ID && $data['authenticator']['identifier'] != ACQTEST_ERROR_ID) {
      return xmlrpc_error(ACQTEST_SUBSCRIPTION_VALIDATION_ERROR, t('Subscription not found'));
    }
    if ($data['authenticator']['identifier'] == ACQTEST_ERROR_ID) {
      return FALSE;
    }
    else {
      $result = acquia_connector_test_validate_authenticator($data);
      $spi_data = $data['body'];
      $result->body = array(
        'spi_data_received' => TRUE,
      );
      if (isset($spi_data['spi_def_update'])) {
        $result->body['update_spi_definition'] = TRUE;
      }

      // Reflect send_method as nspi_messages if set.
      if (isset($spi_data['send_method'])) {
        $result->body['nspi_messages'][] = $spi_data['send_method'];
      }
      $result->authenticator['hash'] = _acquia_agent_hmac($result->secret['key'], $result->authenticator['time'], $result->authenticator['nonce'], $result->body);
      if (isset($spi_data['test_validation_error'])) {
        $result->authenticator['nonce'] = 'TEST';

        // Force a validation fail.
      }
      unset($result->secret);
      return (array) $result;
    }
  }
  else {
    return xmlrpc_error(ACQTEST_SUBSCRIPTION_VALIDATION_ERROR, t('Invalid arguments'));
  }
}