/**
  * GET /package/register.
  */
 public function registerAction()
 {
     if (!$this->app->request()->get('confirm')) {
         $this->app->render('extension/register.html', ['repository' => $this->app->request()->get('repository')]);
         return;
     }
     $transaction = $this->app->request()->get('id');
     $pathTransaction = $this->app->config('cache_dir') . '/' . $transaction . '.json';
     $pathMetaTransaction = $this->app->config('cache_dir') . '/' . $transaction . '_meta.json';
     if (!file_exists($pathTransaction)) {
         $this->app->flash('error', 'No active registration process');
         $this->app->redirect('/package/register');
         exit;
     }
     $serializeExtension = file_get_contents($pathTransaction);
     unlink($pathTransaction);
     $extension = new Extension();
     $extension->unserialize($serializeExtension);
     $serializeExtensionMeta = file_get_contents($pathMetaTransaction);
     unlink($pathMetaTransaction);
     $extensionMeta = json_decode($serializeExtensionMeta, true);
     $extension->setWatchers($extensionMeta['watchers']);
     $extension->setStars($extensionMeta['stars']);
     $packageName = $extension->getName();
     $vendorName = $extension->getVendor();
     $pathTransactionLog = $transaction . 'log';
     if (file_exists($pathTransactionLog)) {
         unlink($pathTransactionLog);
     }
     $user = $this->app->user();
     $user->addExtension($packageName);
     $userRepository = $this->app->container->get('user.repository');
     $userRepository->persist($user);
     $redis = $this->app->container->get('redis.client');
     $extensionRepository = $this->app->container->get('extension.repository');
     $extensionRepository->persist($extension, $user);
     $rest = new Rest($extension, $this->app);
     $rest->update();
     $es = $this->app->container->get('elastica.client');
     $indexer = new Indexer($es);
     $indexer->indexExtension($extension);
     $this->app->flash('warning', $packageName . ' has been registred');
     $this->app->redirect('/package/' . $packageName);
 }