/** * @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; }
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]; }