getApplication()->close(1); } // Make sure we can fetch the data from GitHub - throw an error on < 10 available requests $github = Helper::initializeGithub(); $rate = $github->authorization->getRateLimit(); // If over the API limit, we can't build this list if ($rate->resources->core->remaining < 10) { $response = new \JResponseJson( new \Exception( \JText::sprintf('COM_PATCHTESTER_API_LIMIT_LIST', \JFactory::getDate($rate->resources->core->reset)), 429 ) ); echo json_encode($response); $this->getApplication()->close(1); } // TODO - Decouple the model and context? $model = new PullsModel('com_patchtester.fetch', null, \JFactory::getDbo()); // Initialize the state for the model $model->setState($this->initializeState($model)); try { // Sanity check, ensure there aren't any applied patches if (count($model->getAppliedPatches()) >= 1) { $response = new \JResponseJson(new \Exception(\JText::_('COM_PATCHTESTER_ERROR_APPLIED_PATCHES'), 500)); echo json_encode($response); $this->getApplication()->close(1); } } catch (\Exception $e) { $response = new \JResponseJson($e); echo json_encode($response); $this->getApplication()->close(1); } // We're able to successfully pull data, prepare our environment \JFactory::getSession()->set('com_patchtester_fetcher_page', 1); $response = new \JResponseJson( array('complete' => false, 'header' => \JText::_('COM_PATCHTESTER_FETCH_PROCESSING', true)), \JText::sprintf('COM_PATCHTESTER_FETCH_PAGE_NUMBER', 1), false, true ); echo json_encode($response); $this->getApplication()->close(); } }