public function SubscriptionController::receive in Feeds 8.3
Receives a notification.
Parameters
\Drupal\feeds\SubscriptionInterface $feeds_subscription: The subscription entity.
string $feeds_push_token: The subscription token.
\Symfony\Component\HttpFoundation\Request $request: The request object.
Return value
Symfony\Component\HttpFoundation\Response The response object.
Throws
\Symfony\Component\HttpKernel\Exception\NotFoundHttpException Thrown if anything seems amiss.
1 string reference to 'SubscriptionController::receive'
File
- src/Controller/ SubscriptionController.php, line 173 
Class
- SubscriptionController
- Returns responses for PuSH module routes.
Namespace
Drupal\feeds\ControllerCode
public function receive(SubscriptionInterface $feeds_subscription, $feeds_push_token, Request $request) {
  if ($feeds_subscription
    ->getToken() !== $feeds_push_token) {
    throw new NotFoundHttpException();
  }
  // X-Hub-Signature is in the format sha1=signature.
  parse_str($request->headers
    ->get('X-Hub-Signature'), $result);
  if (empty($result['sha1']) || !$feeds_subscription
    ->checkSignature($result['sha1'], $request
    ->getContent())) {
    throw new NotFoundHttpException();
  }
  $feed = $this
    ->entityTypeManager()
    ->getStorage('feeds_feed')
    ->load($feeds_subscription
    ->id());
  try {
    $feed
      ->pushImport($request
      ->getContent());
  } catch (\Exception $e) {
    return new Response('', 500);
  }
  return new Response('', 200);
}