public function NspiController::getCommunicationSettings in Acquia Connector 8
Same name and namespace in other branches
- 8.2 tests/modules/src/Controller/NspiController.php \Drupal\acquia_connector_test\Controller\NspiController::getCommunicationSettings()
- 3.x tests/modules/src/Controller/NspiController.php \Drupal\acquia_connector_test\Controller\NspiController::getCommunicationSettings()
Test return communication settings for an account.
Parameters
\GuzzleHttp\Psr7\Request $request: Request.
Return value
\GuzzleHttp\Psr7\Response JsonResponse.
File
- tests/
modules/ src/ Controller/ NspiController.php, line 337
Class
- NspiController
- Class NspiController.
Namespace
Drupal\acquia_connector_test\ControllerCode
public function getCommunicationSettings(Request $request) {
$data = json_decode($request
->getBody(), TRUE);
$fields = [
'time' => 'is_numeric',
'nonce' => 'is_string',
'hash' => 'is_string',
];
// Authenticate.
$result = $this
->basicAuthenticator($fields, $data);
if (!empty($result['error'])) {
return new Response(200, [], json_encode($result));
}
if (!isset($data['body']) || !isset($data['body']['email'])) {
return new Response(self::ACQTEST_SUBSCRIPTION_SERVICE_UNAVAILABLE, [], json_encode($this
->errorResponse(self::ACQTEST_SUBSCRIPTION_VALIDATION_ERROR, $this
->t('Invalid arguments'))));
}
$account = user_load_by_mail($data['body']['email']);
if (empty($account) || $account
->isAnonymous()) {
return new Response(self::ACQTEST_SUBSCRIPTION_SERVICE_UNAVAILABLE, [], json_encode($this
->errorResponse(self::ACQTEST_SUBSCRIPTION_VALIDATION_ERROR, $this
->t('Account not found'))));
}
$result = [
'algorithm' => 'sha512',
'hash_setting' => substr($account
->getPassword(), 0, 12),
'extra_md5' => FALSE,
];
return new Response(200, [], json_encode($result));
}