searchInstance = $GLOBALS['phorkie']['cfg']['elasticsearch']; } public function addRepo(Repository $repo) { $this->updateRepo($repo); } public function updateRepo(Repository $repo) { //add repository $r = new \HTTP_Request2( $this->searchInstance . 'repo/' . $repo->id, \HTTP_Request2::METHOD_PUT ); $r->setBody( json_encode( (object)array( 'id' => $repo->id, 'description' => $repo->getDescription(), ) ) ); $r->send(); //add files foreach ($repo->getFiles() as $file) { $r = new \HTTP_Request2( $this->searchInstance . 'file/?parent=' . $repo->id, \HTTP_Request2::METHOD_POST ); $r->setBody( json_encode( (object)array( 'name' => $file->getFilename(), 'extension' => $file->getExt(), 'content' => $file->isText() ? $file->getContent() : '', ) ) ); $r->send(); } } public function deleteRepo(Repository $repo) { //delete repository from index $r = new \HTTP_Request2( $this->searchInstance . 'repo/' . $repo->id, \HTTP_Request2::METHOD_DELETE ); $r->send(); //delete files of that repository $r = new \HTTP_Request2( $this->searchInstance . 'file/_query', \HTTP_Request2::METHOD_DELETE ); $r->setBody( json_encode( (object)array( '_parent' => 'repo#' . $repo->id ) ) ); $r->send(); } } ?>