- Corrected code-smell and code style issues in \ncc\Classes > GitlabExtension > GitlabService

This commit is contained in:
Netkas 2023-08-17 15:44:56 -04:00
parent ae373c6f70
commit 309d37fe7d
No known key found for this signature in database
GPG key ID: 5DAF58535614062B
2 changed files with 46 additions and 30 deletions

View file

@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Corrected code-smell and code style issues in `\ncc\Classes > BashExtension > BashRunner` - Corrected code-smell and code style issues in `\ncc\Classes > BashExtension > BashRunner`
- Corrected code-smell and code style issues in `\ncc\Classes > ComposerExtension > ComposerSourceBuiltin` - Corrected code-smell and code style issues in `\ncc\Classes > ComposerExtension > ComposerSourceBuiltin`
- Corrected code-smell and code style issues in `\ncc\Classes > GithubExtension > GithubService` - Corrected code-smell and code style issues in `\ncc\Classes > GithubExtension > GithubService`
- Corrected code-smell and code style issues in `\ncc\Classes > GitlabExtension > GitlabService`

View file

@ -20,7 +20,7 @@
* *
*/ */
namespace ncc\Classes\GitlabExtension; namespace ncc\Classes\GitlabExtension;
use ncc\Abstracts\Versions; use ncc\Abstracts\Versions;
use ncc\Classes\HttpClient; use ncc\Classes\HttpClient;
@ -67,15 +67,18 @@ namespace ncc\Classes\GitlabExtension;
$response = HttpClient::request($httpRequest, true); $response = HttpClient::request($httpRequest, true);
if($response->StatusCode != 200) if($response->StatusCode !== 200)
{
throw new GitlabServiceException(sprintf('Failed to fetch releases for the given repository. Status code: %s', $response->StatusCode)); throw new GitlabServiceException(sprintf('Failed to fetch releases for the given repository. Status code: %s', $response->StatusCode));
}
$response_decoded = Functions::loadJson($response->Body, Functions::FORCE_ARRAY); $response_decoded = Functions::loadJson($response->Body, Functions::FORCE_ARRAY);
$query = new RepositoryQueryResults(); $query = new RepositoryQueryResults();
$query->Files->GitSshUrl = ($response_decoded['ssh_url_to_repo'] ?? null); $query->Files->GitSshUrl = ($response_decoded['ssh_url_to_repo'] ?? null);
$query->Files->GitHttpUrl = ($response_decoded['http_url_to_repo'] ?? null); $query->Files->GitHttpUrl = ($response_decoded['http_url_to_repo'] ?? null);
$query->Version = Functions::convertToSemVer($response_decoded['default_branch']) ?? null; $query->Version = Functions::convertToSemVer($response_decoded['default_branch']);
$query->ReleaseDescription = ($response_decoded['description'] ?? null); $query->ReleaseDescription = ($response_decoded['description'] ?? null);
$query->ReleaseName = ($response_decoded['name'] ?? null); $query->ReleaseName = ($response_decoded['name'] ?? null);
@ -100,22 +103,26 @@ namespace ncc\Classes\GitlabExtension;
$releases = self::getReleases($packageInput->Vendor, $packageInput->Package, $definedRemoteSource, $entry); $releases = self::getReleases($packageInput->Vendor, $packageInput->Package, $definedRemoteSource, $entry);
if(count($releases) === 0) if(count($releases) === 0)
{
throw new VersionNotFoundException('No releases found for the given repository.'); throw new VersionNotFoundException('No releases found for the given repository.');
}
// Query the latest package only // Query the latest package only
if($packageInput->Version == Versions::Latest) if($packageInput->Version === Versions::Latest)
{ {
$latest_version = null; $latest_version = null;
foreach($releases as $release) foreach($releases as $release)
{ {
if($latest_version == null) if($latest_version === null)
{ {
$latest_version = $release->Version; $latest_version = $release->Version;
continue; continue;
} }
if(VersionComparator::compareVersion($release->Version, $latest_version) == 1) if(VersionComparator::compareVersion($release->Version, $latest_version) === 1)
{
$latest_version = $release->Version; $latest_version = $release->Version;
}
} }
return $releases[$latest_version]; return $releases[$latest_version];
@ -128,18 +135,22 @@ namespace ncc\Classes\GitlabExtension;
$selected_version = null; $selected_version = null;
foreach($releases as $version => $url) foreach($releases as $version => $url)
{ {
if($selected_version == null) if($selected_version === null)
{ {
$selected_version = $version; $selected_version = $version;
continue; continue;
} }
if(VersionComparator::compareVersion($version, $packageInput->Version) == 1) if(VersionComparator::compareVersion($version, $packageInput->Version) === 1)
{
$selected_version = $version; $selected_version = $version;
}
} }
if($selected_version == null) if($selected_version === null)
{
throw new VersionNotFoundException('No releases found for the given repository.'); throw new VersionNotFoundException('No releases found for the given repository.');
}
} }
else else
{ {
@ -147,8 +158,11 @@ namespace ncc\Classes\GitlabExtension;
} }
if(!isset($releases[$selected_version])) if(!isset($releases[$selected_version]))
{
throw new VersionNotFoundException(sprintf('No releases found for the given repository. (Selected version: %s)', $selected_version)); throw new VersionNotFoundException(sprintf('No releases found for the given repository. (Selected version: %s)', $selected_version));
}
return $releases[$selected_version]; return $releases[$selected_version];
} }
@ -191,13 +205,17 @@ namespace ncc\Classes\GitlabExtension;
$response = HttpClient::request($httpRequest, true); $response = HttpClient::request($httpRequest, true);
if($response->StatusCode != 200) if($response->StatusCode !== 200)
throw new GitlabServiceException(sprintf('Failed to fetch releases for the given repository. Status code: %s', $response->StatusCode)); {
throw new GitlabServiceException(sprintf('Failed to fetch releases for the given repository. Status code: %s', $response->StatusCode));
}
$response_decoded = Functions::loadJson($response->Body, Functions::FORCE_ARRAY); $response_decoded = Functions::loadJson($response->Body, Functions::FORCE_ARRAY);
if(count($response_decoded) == 0) if(count($response_decoded) === 0)
{
return []; return [];
}
$return = []; $return = [];
foreach($response_decoded as $release) foreach($response_decoded as $release)
@ -207,29 +225,26 @@ namespace ncc\Classes\GitlabExtension;
$query_results->ReleaseDescription = ($release['description'] ?? null); $query_results->ReleaseDescription = ($release['description'] ?? null);
$query_results->Version = Functions::convertToSemVer($release['tag_name']); $query_results->Version = Functions::convertToSemVer($release['tag_name']);
if(isset($release['assets']) && isset($release['assets']['sources'])) if(isset($release['assets']['sources']) && count($release['assets']['sources']) > 0)
{ {
if(count($release['assets']['sources']) > 0) foreach($release['assets']['sources'] as $source)
{ {
foreach($release['assets']['sources'] as $source) if($source['format'] === 'zip')
{ {
if($source['format'] == 'zip') $query_results->Files->ZipballUrl = $source['url'];
{ break;
$query_results->Files->ZipballUrl = $source['url']; }
break;
}
if($source['format'] == 'tar.gz') if($source['format'] === 'tar.gz')
{ {
$query_results->Files->ZipballUrl = $source['url']; $query_results->Files->ZipballUrl = $source['url'];
break; break;
} }
if($source['format'] == 'ncc') if($source['format'] === 'ncc')
{ {
$query_results->Files->PackageUrl = $source['url']; $query_results->Files->PackageUrl = $source['url'];
break; break;
}
} }
} }
} }