packagesData = $packagesData; $this->packagesAuth = $packagesAuth; $this->gridExtension = $gridExtension; } /** * Index page action * * @return \Zend\View\Model\ViewModel */ public function indexAction() { $view = new ViewModel(); $view->setTerminal(true); return $view; } /** * Get extensions info action * * @return JsonModel * @throws \RuntimeException */ public function extensionsAction() { $error = ''; $lastSyncData = []; $authDetails = $this->packagesAuth->getAuthJsonData(); $extensions = []; if ($authDetails) { try { $lastSyncData = $this->packagesData->syncPackagesData(); $extensions = $this->gridExtension->getList(); } catch (\Exception $e) { $error = $e->getMessage(); } } return new JsonModel( [ 'success' => true, 'extensions' => $extensions, 'total' => count($extensions), 'lastSyncData' => $lastSyncData, 'error' => $error ] ); } /** * Sync action * * @return JsonModel */ public function syncAction() { $error = ''; $lastSyncData = []; try { $authDataJson = $this->packagesAuth->getAuthJsonData(); $this->packagesAuth->checkCredentials($authDataJson['username'], $authDataJson['password']); $lastSyncData = $this->packagesData->syncPackagesData(); } catch (\Exception $e) { $error = $e->getMessage(); } return new JsonModel( [ 'success' => true, 'lastSyncData' => $lastSyncData, 'error' => $error ] ); } }