function CreatePackageJson() { $extensionData = ExtensionData::get(); $count = 0; if ($extensionData && !empty($extensionData)) { $count = $extensionData->Count(); $filename = 'packages.json'; $repo = array('packages' => array()); foreach ($extensionData as $extension) { // Include only Approved extensions if ($extension->Accepted == '1') { $json = new JsonHandler($extension->Url); $jsonData = $json->cloneJson(); $packages = $jsonData['AllRelease']; $dumper = new ArrayDumper(); foreach ($packages as $package) { $repo['packages'][$package->getPrettyName()][$package->getPrettyVersion()] = $dumper->dump($package); } } } if (!empty($repo['packages'])) { $packagesJsonData = Convert::array2json($repo); $packageJsonFile = fopen(BASE_PATH . DIRECTORY_SEPARATOR . $filename, 'w'); fwrite($packageJsonFile, $packagesJsonData); fclose($packageJsonFile); echo "<br /><br /><strong> package.json file created successfully...</strong><br />"; } else { throw new InvalidArgumentException('package.json file could not be created'); } } }
function updateJson() { $extensionData = ExtensionData::get(); $count = 0; if ($extensionData && !empty($extensionData)) { $count = 0; foreach ($extensionData as $extension) { // Include only Approved extensions if ($extension->Accepted == '1') { $json = new JsonHandler($extension->Url); $jsonData = $json->cloneJson(); $updateJson = $json->UpdateJson(); if (array_key_exists('ExtensionID', $updateJson)) { $id = $updateJson['ExtensionID']; $deleteVersion = $json->deleteVersionData($id); if ($deleteVersion) { $saveVersion = $json->saveVersionData($id); if ($saveVersion) { echo "<br>{$extension->Name} is updated <br>"; } } } else { throw new InvalidArgumentException("{$extension->Name} could not updated <br />"); } $count++; } } echo "<br><br><strong>{$count} Repositories processed...</strong><br>"; } else { throw new InvalidArgumentException('No Extension found...'); } }
/** * Get comma seprated list of authors email * * @param int $extensionId * @return string */ public static function get_authors_email($extensionId) { $authors = ExtensionData::get()->byID($extensionId)->ExtensionAuthors(); $emails = array(); foreach ($authors as $author) { array_push($emails, $author->Email); } $commaSeparatedEmail = implode(",", $emails); return $commaSeparatedEmail; }
function testSaveJsonFunction() { $repoUrl = 'https://github.com/vikas-srivastava/extensionmanager.git'; $jsonHandler = new JsonHandler($repoUrl); $jsonHandler->repo = new MockVCSRepositoryWithRealValues(); $result = $jsonHandler->cloneJson(); $this->latestReleasePackage = $result['LatestRelease']; $result = $jsonHandler->saveJson(); $this->assertArrayNotHasKey('ErrorMsg', $result); $this->assertArrayHasKey('ExtensionID', $result); $extensionId = $result['ExtensionID']; $extensionData = ExtensionData::get()->byID($extensionId); list($vendorName, $extensionName) = explode("/", $this->latestReleasePackage->getPrettyName()); $this->assertEquals($extensionData->Name, $extensionName); }
/** * Get Selected Module. * * @return Array . */ public function SelectedModule() { $module = null; $param = $this->getRequest()->param("ID"); if ($param) { $module = ExtensionData::get()->where("(ID = '{$param}' OR URLSegment = '{$param}') AND (Type = 'Module') AND (Accepted = '1')")->first(); } return $module; }
/** * Display 10 recently submitted Extensions. * * @return array */ public function newExtension() { return ExtensionData::get()->filter(array('Accepted' => '1', 'Type' => $this->extensionType))->sort('Created', 'DESC')->limit('10'); }
/** * update json content in database * * @return boolean */ public function updateJson() { $ExtensionData = ExtensionData::get()->filter(array("Title" => $this->latestReleasePackage->getPrettyName()))->First(); if ($ExtensionData) { $result = $this->dataFields($ExtensionData); return $result; } else { return; } }