/**
  * @param BaseEvent $event The Github Event to convert
  * @return array The collection of statements
  * @throw \InvalidArgumentException When no converter is found for the passed event
  */
 public function convert(BaseEvent $event)
 {
     if (!array_key_exists($event->getEventType(), $this->converters)) {
         throw new \InvalidArgumentException(sprintf('No converter found for %s', $event->getEventType()));
     }
     return $this->converters[$event->getEventType()]->convert($event);
 }
 protected function handleBase(array $event, BaseEvent $e)
 {
     $e->setActor($this->getActor($event));
     $e->setRepository($this->getRepository($event));
     $e->setTime($event['created_at']);
     if (isset($event['org'])) {
         $org = new Organization($event['org']['id'], $event['org']['login']);
         $e->setBaseOrg($org);
     }
     return $e;
 }
Esempio n. 3
0
 protected function buildRepoOwnedByActorOrOrg(BaseEvent $event)
 {
     if ($event->hasBaseOrg()) {
         $owner_login = $event->getBaseOrg()->getName();
         $owner_id = $event->getBaseOrg()->getId();
     } else {
         $owner_login = $event->getActor()->getLogin();
         $owner_id = $event->getActor()->getId();
     }
     $q = 'MERGE (repo:Repository {id: {repo_id}})
     ON CREATE SET repo.name = {repo_name}
     MERGE (user:User {id: {user_id}})
     SET user.login = {user_login}';
     if ($event->hasBaseOrg()) {
         $q .= '
         SET user :Organisation';
     }
     $q .= '
     MERGE (repo)-[:OWNED_BY]->(user)';
     $p = ['repo_id' => $event->getRepository()->getId(), 'repo_name' => $this->getRepoName($event->getRepository()), 'user_id' => $owner_id, 'user_login' => $owner_login];
     return ['query' => $q, 'params' => $p];
 }