public function createEvent(Request $request, $payload)
 {
     $event = \json_decode($payload);
     if ($event->state == 'completed') {
         $rawEvent = new RawEvent();
         $rawEvent->setSystem($event->_embedded->repository->login . ':' . $event->_embedded->repository->name . ':' . $event->_embedded->head_index->branch_reference);
         $rawEvent->setValue($event->_embedded->head_index->_embedded->project->metric_values->{'scrutinizer.quality'});
         $rawEvent->setIdentifier('scrutinizer:' . $rawEvent->getSystem());
         $rawEvent->setType('scrutinizer');
         $rawEvent->setUrl('https://scrutinizer-ci.com' . str_replace('api/repositories/', '', $event->_links->self->href));
         if ($rawEvent->getValue() > $this->limit) {
             $rawEvent->setStatus(Event::STATUS_SUCCESS);
             $rawEvent->setMessage('');
         } else {
             $rawEvent->setStatus(Event::STATUS_FAILURE);
             $rawEvent->setMessage('The scrutinizer quality index is too low (' . round($rawEvent->getValue(), 2) . ').');
         }
         return $rawEvent;
     }
     return [];
 }
 public function onEventCreate(NewEventEvent $event)
 {
     $currentEvent = $event->getEvent();
     $lastEvent = $event->getLastEvent();
     if ($currentEvent->getType() == self::TOOL_IDENTIFIER) {
         return;
     }
     if (!is_null($lastEvent) && $currentEvent->getStatus() == $lastEvent->getStatus()) {
         return;
     }
     $system = $currentEvent->getEventIdentifier()->getSystem();
     if (is_null($system)) {
         return;
     }
     $tool = $currentEvent->getEventIdentifier()->getTool();
     $status = Event::STATUS_SUCCESS;
     $message = '';
     if ($system->getThreshold() == 0 || $currentEvent->getStatus() == Event::STATUS_SUCCESS) {
         $healthStatus = max(0, $system->getHealthStatus() - $tool->getScore());
     } else {
         $healthStatus = $system->getHealthStatus() + $tool->getScore();
         if ($healthStatus >= $system->getThreshold()) {
             $status = Event::STATUS_FAILURE;
             $message = 'The health status of "' . $system->getName() . '" is critical.';
         }
     }
     $system->setHealthStatus($healthStatus);
     $this->doctrineManager->persist($system);
     $this->doctrineManager->flush();
     $rawEvent = new RawEvent();
     $rawEvent->setSystem($system->getIdentifier());
     $rawEvent->setType(self::TOOL_IDENTIFIER);
     $rawEvent->setUnique(false);
     $rawEvent->setValue($healthStatus);
     $rawEvent->setStatus($status);
     $rawEvent->setMessage($message);
     $rawEvent->setIdentifier(self::TOOL_IDENTIFIER . '_' . $system->getIdentifier());
     $this->container->get('koalamon.project.helper')->addRawEvent($rawEvent, $currentEvent->getEventIdentifier()->getProject());
 }
 public function createEvent(Request $request, $payload)
 {
     $newEvent = json_decode($payload);
     $event = new RawEvent();
     $event->setIdentifier($newEvent->identifier);
     $event->setMessage($newEvent->message);
     $event->setStatus($newEvent->status);
     $event->setSystem($newEvent->system);
     if (property_exists($newEvent, "value")) {
         $event->setValue($newEvent->value);
     }
     if (property_exists($newEvent, "componentId")) {
         $event->setComponentId($newEvent->componentId);
     }
     if (property_exists($newEvent, "url")) {
         $event->setUrl($newEvent->url);
     } else {
         $event->setUrl("");
     }
     if (property_exists($newEvent, "type")) {
         $event->setType($newEvent->type);
     }
     return $event;
 }
 public function createEvent(Request $request, $payload)
 {
     $newEvent = json_decode(urldecode($payload));
     if ($request->get('confirmationURL')) {
         $url = trim(preg_replace('/\\s\\s+/', ' ', $request->get('confirmationURL')));
         $content = file_get_contents($url);
         return false;
     }
     if (!property_exists($newEvent, 'alert')) {
         return false;
     }
     $alert = $newEvent->alert;
     $event = new RawEvent();
     $event->setType('monitis');
     $system = str_replace('http://', '', $alert->url);
     $system = str_replace(' ', '', $system);
     $event->setSystem($system);
     if ($alert->alertType === self::STATUS_PROBLEM) {
         $event->setStatus(Event::STATUS_FAILURE);
         if (property_exists($alert, "errorString")) {
             $event->setMessage($alert->errorString);
         } else {
             $event->setMessage('Monitis found an error for ' . $alert->name . '.');
         }
     } else {
         $event->setStatus(Event::STATUS_SUCCESS);
         $event->setMessage("");
     }
     $event->setIdentifier("monitis_" . $system . "_" . $alert->type);
     $event->setUnique(false);
     $event->setUrl('http://dashboard.monitis.com/');
     if (property_exists($alert, 'stepDuration')) {
         $event->setValue($alert->stepDuration);
     }
     return $event;
 }