EmitController.php in Radioactivity 8.2
Same filename and directory in other branches
Namespace
Drupal\radioactivity\ControllerFile
src/Controller/EmitController.phpView source
<?php
namespace Drupal\radioactivity\Controller;
use Drupal\Core\Controller\ControllerBase;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Drupal\Component\Serialization\Json;
use Drupal\radioactivity;
class EmitController extends ControllerBase {
/**
* Callback for /radioactivity/emit
* @param Request $request
* @return Response
*/
public function emit(Request $request) {
$post_data = $request
->getContent();
if ($post_data) {
$count = 0;
$incidents = Json::decode($post_data);
foreach ($incidents as $data) {
$incident = \Drupal\radioactivity\Incident::createFromPostData($data);
if ($incident
->isValid()) {
$incidents = \Drupal::state()
->get('radioactivity_incidents', []);
$incidents[] = $incident;
$queue_size = count($incidents);
\Drupal::state()
->set('radioactivity_incidents', $incidents);
$count++;
}
else {
return new JsonResponse(array(
'status' => 'error',
'message' => 'invalid incident (' . $count . ').',
));
}
}
return new JsonResponse(array(
'status' => 'ok',
'message' => $count . ' emits added (queue size: ' . $queue_size . ')',
));
}
return new JsonResponse(array(
'status' => 'error',
'message' => 'Empty request',
));
}
/**
* Construct and incident from a request
* @param type $request
* @return Incident
*/
public static function incidentFromRequest($request) {
$content = $request
->getContent();
if (empty($content)) {
return NULL;
}
return \Drupal\radioactivity\Incident::createFromJson($content);
}
}
Classes
Name![]() |
Description |
---|---|
EmitController |