/**
  * {@inheritdoc}
  */
 public function process(ConsumerEvent $event)
 {
     $pages = $this->pageManager->findBy(array('site' => $event->getMessage()->getValue('siteId')));
     $backend = $event->getMessage()->getValue('mode') == 'async' ? $this->asyncBackend : $this->runtimeBackend;
     foreach ($pages as $page) {
         $backend->createAndPublish('sonata.page.create_snapshot', array('pageId' => $page->getId()));
     }
 }
 /**
  * {@inheritdoc}
  */
 public function process(ConsumerEvent $event)
 {
     $message = $event->getMessage();
     if (!in_array($message->getValue('level'), $this->types)) {
         throw new InvalidParameterException();
     }
     call_user_func(array($this->logger, $message->getValue('level')), $message->getValue('message'));
 }
 /**
  * @param ConsumerEvent $event
  *
  * @return ThumbnailInterface
  */
 protected function getThumbnail(ConsumerEvent $event)
 {
     $thumbnail = $this->container->get($event->getMessage()->getValue('thumbnailId'));
     if (!$thumbnail instanceof ThumbnailInterface) {
         throw new HandlingException(sprintf('Invalid thumbnail instance requested - id: %s', $event->getMessage()->getValue('thumbnailId')));
     }
     return $thumbnail;
 }
 public function process(ConsumerEvent $event)
 {
     $message = $event->getMessage();
     $url = $message->getValue('url');
     $headers = $message->getValue('headers');
     $this->fosCacheManager->invalidatePath($url, $headers);
     $this->cloudFlare->api('zone_file_purge', array('z' => 'mkaciuba.pl', 'url' => 'https://mkaciuba.pl' . $url));
     $this->cloudFlare->api('zone_file_purge', array('z' => 'mkaciuba.pl', 'url' => 'http://mkaciuba.pl' . $url));
 }
 public function it_dump_composer_json_content_to_file(ConsumerEvent $event, Message $message, \Pusher $pusher, Filesystem $filesystem)
 {
     $event->getMessage()->shouldBeCalled()->willReturn($message);
     $message->getValue('channelName')->shouldBeCalled()->willReturn('new_channel');
     $message->getValue('body')->shouldBeCalled()->willReturn('composer.json content');
     $pusher->trigger('new_channel', 'consumer:new-step', array('message' => 'Starting async job'))->shouldBeCalled();
     $filesystem->mkdir(sys_get_temp_dir() . '/' . 'composer_dir')->shouldBeCalled();
     $filesystem->dumpFile(sys_get_temp_dir() . '/composer_dir/composer.json', 'composer.json content')->shouldBeCalled();
     $this->execute($event, 'composer_dir')->shouldReturn(0);
 }
 function it_push_error_message_and_alerts_when_vulnerability_found(SecurityChecker $securityChecker, ConsumerEvent $event, Message $message, \Pusher $pusher)
 {
     $event->getMessage()->shouldBeCalled()->willReturn($message);
     $message->getValue('channelName')->shouldBeCalled()->willReturn('new_channel');
     $pusher->trigger('new_channel', 'consumer:new-step', array('message' => 'Checking vulnerability'))->shouldBeCalled();
     $securityChecker->check(sys_get_temp_dir() . '/composer_dir/composer.lock', 'text')->shouldBeCalled()->willReturn($this->getVulnerabilityMessage());
     $securityChecker->getLastVulnerabilityCount()->shouldBeCalled()->willReturn(1);
     $pusher->trigger('new_channel', 'consumer:step-error', array('message' => 'Vulnerability found : 1'))->shouldBeCalled();
     $pusher->trigger('new_channel', 'consumer:vulnerabilities', array('message' => $this->getVulnerabilityMessage()))->shouldBeCalled();
     $this->execute($event, 'composer_dir')->shouldReturn(0);
 }
 /**
  * {@inheritdoc}
  */
 public function process(ConsumerEvent $event)
 {
     $page = $this->pageManager->findOneBy(array('id' => $event->getMessage()->getValue('pageId')));
     if (!$page) {
         return;
     }
     // start a transaction
     $this->snapshotManager->getConnection()->beginTransaction();
     // cleanup snapshots
     $this->snapshotManager->cleanup($page, $event->getMessage()->getValue('keepSnapshots'));
     // commit the changes
     $this->snapshotManager->getConnection()->commit();
 }
 /**
  * {@inheritdoc}
  */
 public function process(ConsumerEvent $event)
 {
     if (!$this->mailer->getTransport()->isStarted()) {
         $this->mailer->getTransport()->start();
     }
     $exception = false;
     try {
         $this->sendEmail($event->getMessage());
     } catch (\Exception $e) {
         $exception = $e;
     }
     $this->mailer->getTransport()->stop();
     if ($exception) {
         throw new $exception();
     }
 }
 /**
  * {@inheritdoc}
  */
 public function process(ConsumerEvent $event)
 {
     $pageId = $event->getMessage()->getValue('pageId');
     $page = $this->pageManager->findOneBy(array('id' => $pageId));
     if (!$page) {
         return;
     }
     // start a transaction
     $this->snapshotManager->getConnection()->beginTransaction();
     // creating snapshot
     $snapshot = $this->transformer->create($page);
     // update the page status
     $page->setEdited(false);
     $this->pageManager->save($page);
     // save the snapshot
     $this->snapshotManager->save($snapshot);
     $this->snapshotManager->enableSnapshots(array($snapshot));
     // commit the changes
     $this->snapshotManager->getConnection()->commit();
 }
 /**
  * {@inheritdoc}
  */
 public function process(ConsumerEvent $event)
 {
     $message = $event->getMessage();
     $userId = $message->getValue('user_id');
     $cocktailId = $message->getValue('cocktail_id');
     $timestamp = $message->getValue('date');
     $user = $this->userRepository->findOneById($userId);
     if (!$user instanceof User) {
         throw new InvalidParameterException('invalid user id');
     }
     $cocktail = $this->cocktailRepository->findOneById($cocktailId);
     if (!$cocktail instanceof Cocktail) {
         throw new InvalidParameterException('invalid cocktail id');
     }
     if ($user->isConnectedWithFacebook()) {
         $accessToken = $user->getFacebookAccessToken();
         $cocktailUrl = $this->appUrl . $cocktail->getRelativeUrl();
         $this->client->setAccessToken($accessToken);
         $response = $this->client->hadCocktail($cocktailUrl, $timestamp);
         // TODO analyze response and log errors
     }
 }
示例#11
0
 /**
  * {@inheritdoc}
  */
 public function process(ConsumerEvent $event)
 {
     $model = $event->getMessage();
     /** @var \Sententiaregum\User\Domain\User $user */
     $user = $model->getValue('user');
     if (null === $user) {
         throw new InvalidParameterException('The "user" parameter is required for the email to send!');
     }
     $emailContent = $model->getValue('content');
     $emailConfig = $model->getValue('config_path');
     $templateParams = $model->getValue('parameters', []);
     $useDefaultEmail = null === $emailConfig;
     if (null === $emailContent && $useDefaultEmail) {
         throw new InvalidParameterException('In order to send an email properly, the parameters "content" or "config_path" are required!');
     }
     $templateParams['user'] = $user;
     $config = $useDefaultEmail ? 'SententiaregumApp:notification' : $emailConfig;
     if ($useDefaultEmail) {
         $templateParams['content'] = $emailContent;
     }
     $locale = $model->getValue('override_locale', false) ? $user->getSimpleProfile()->getLocale() : null;
     $this->mailer->send($config, $templateParams, $locale);
 }
 /**
  * {@inheritdoc}
  */
 public function process(ConsumerEvent $event)
 {
     $orderStatus = $event->getMessage()->getValue('order_status');
     $transactionStatus = $event->getMessage()->getValue('transaction_status');
     $productId = $event->getMessage()->getValue('product_id');
     $productType = $event->getMessage()->getValue('product_type');
     $quantity = $event->getMessage()->getValue('quantity');
     $productManager = $this->getProductManager($productType);
     $productProvider = $this->getProductProvider($productType);
     $diff = $this->generateDiffValue($transactionStatus, $orderStatus, $quantity);
     if ($diff) {
         $productProvider->updateStock($productId, $productManager, $diff);
     }
 }
示例#13
0
 /**
  * Extracts a channel name from a ConsumerEvent.
  *
  * @param ConsumerEvent $event
  *
  * @return array
  */
 protected function getChannels(ConsumerEvent $event)
 {
     $message = $event->getMessage();
     return [$message->getValue('channelName')];
 }
 /**
  * Get the related Transaction.
  *
  * @param ConsumerEvent $event
  *
  * @throws \RuntimeException
  *
  * @return TransactionInterface
  */
 protected function getTransaction(ConsumerEvent $event)
 {
     $transactionId = $event->getMessage()->getValue('transaction_id');
     $transaction = $this->transactionManager->findOneBy(array('id' => $transactionId));
     if (!$transaction) {
         throw new \RuntimeException(sprintf('Unable to retrieve Transaction %d', $transactionId));
     }
     return $transaction;
 }
示例#15
0
 /**
  * @param ConsumerEvent $event
  * @throws \InvalidArgumentException If the message body does not contain the expected data
  */
 public function process(ConsumerEvent $event)
 {
     $this->logger->debug('Process event {event} from sonata backend', ['event' => $event]);
     $ticket = $event->getMessage()->getValue('ticket', null);
     if (!is_string($ticket) || strlen((string) $ticket) == 0) {
         throw new \InvalidArgumentException('The message body must be an array containing the key "ticket"');
     }
     $this->manager->onMessage(new Message($event->getMessage()->getType(), $ticket));
 }
示例#16
0
 public function process(ConsumerEvent $event)
 {
     $message = $event->getMessage();
     $this->logger->info("BatchPhotoConsumer: processing ");
     if ($message->getValue('type') == 'photos') {
         $this->addPhotosToCategory($message);
     } else {
         $this->addCategory($message);
     }
 }