Add $name property in SetupResult and improve API

Keys for check results are not locale dependent anymore, the name of the
 setup check is instead stored in the setup result object.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
pull/41311/head
Côme Chilliet 3 years ago
parent 00d3856b92
commit 39d2970191
No known key found for this signature in database
GPG Key ID: A3E2F658B28C760A
  1. 6
      core/Command/SetupChecks.php
  2. 3
      lib/private/SetupCheck/SetupCheckManager.php
  3. 2
      lib/public/SetupCheck/ISetupCheck.php
  4. 32
      lib/public/SetupCheck/SetupResult.php

@ -55,7 +55,7 @@ class SetupChecks extends Base {
default:
foreach ($results as $category => $checks) {
$output->writeln("\t{$category}:");
foreach ($checks as $title => $check) {
foreach ($checks as $check) {
$styleTag = match ($check->getSeverity()) {
'success' => 'info',
'error' => 'error',
@ -74,7 +74,7 @@ class SetupChecks extends Base {
"\t\t".
($styleTag !== null ? "<{$styleTag}>" : '').
"{$emoji} ".
$title.
($check->getName() ?? $check::class).
($description !== null ? ': '.$description : '').
($styleTag !== null ? "</{$styleTag}>" : ''),
$verbosity
@ -83,7 +83,7 @@ class SetupChecks extends Base {
}
}
foreach ($results as $category => $checks) {
foreach ($checks as $title => $check) {
foreach ($checks as $check) {
if ($check->getSeverity() !== 'success') {
return self::FAILURE;
}

@ -47,9 +47,10 @@ class SetupCheckManager implements ISetupCheckManager {
$setupCheckObject = Server::get($setupCheck->getService());
$this->logger->debug('Running check '.get_class($setupCheckObject));
$setupResult = $setupCheckObject->run();
$setupResult->setName($setupCheckObject->getName());
$category = $setupCheckObject->getCategory();
$results[$category] ??= [];
$results[$category][$setupCheckObject->getName()] = $setupResult;
$results[$category][$setupCheckObject::class] = $setupResult;
}
return $results;
}

@ -36,11 +36,13 @@ namespace OCP\SetupCheck;
interface ISetupCheck {
/**
* @since 28.0.0
* @return string Category id, one of security/system/accounts, or a custom one which will be merged in system
*/
public function getCategory(): string;
/**
* @since 28.0.0
* @return string Translated name to display to the user
*/
public function getName(): string;

@ -37,6 +37,11 @@ class SetupResult implements \JsonSerializable {
public const WARNING = 'warning';
public const ERROR = 'error';
/**
* @param string $name Translated name to display to the user
*/
private ?string $name = null;
/**
* @brief Private constructor, use success()/info()/warning()/error() instead
* @param self::SUCCESS|self::INFO|self::WARNING|self::ERROR $severity
@ -51,6 +56,8 @@ class SetupResult implements \JsonSerializable {
/**
* @brief Create a success result object
* @param ?string $description Translated detailed description to display to the user
* @param ?string $linkToDoc URI of related relevent documentation, be it from Nextcloud or another project
* @since 28.0.0
*/
public static function success(?string $description = null, ?string $linkToDoc = null): self {
@ -59,6 +66,8 @@ class SetupResult implements \JsonSerializable {
/**
* @brief Create an info result object
* @param ?string $description Translated detailed description to display to the user
* @param ?string $linkToDoc URI of related relevent documentation, be it from Nextcloud or another project
* @since 28.0.0
*/
public static function info(?string $description = null, ?string $linkToDoc = null): self {
@ -67,6 +76,8 @@ class SetupResult implements \JsonSerializable {
/**
* @brief Create a warning result object
* @param ?string $description Translated detailed description to display to the user
* @param ?string $linkToDoc URI of related relevent documentation, be it from Nextcloud or another project
* @since 28.0.0
*/
public static function warning(?string $description = null, ?string $linkToDoc = null): self {
@ -75,6 +86,8 @@ class SetupResult implements \JsonSerializable {
/**
* @brief Create an error result object
* @param ?string $description Translated detailed description to display to the user
* @param ?string $linkToDoc URI of related relevent documentation, be it from Nextcloud or another project
* @since 28.0.0
*/
public static function error(?string $description = null, ?string $linkToDoc = null): self {
@ -100,6 +113,24 @@ class SetupResult implements \JsonSerializable {
return $this->description;
}
/**
* @brief Get the name for the setup check
*
* @since 28.0.0
*/
public function getName(): ?string {
return $this->name;
}
/**
* @brief Set the name from the setup check
*
* @since 28.0.0
*/
public function setName(string $name): void {
$this->name = $name;
}
/**
* @brief Get a link to the doc for the explanation.
*
@ -116,6 +147,7 @@ class SetupResult implements \JsonSerializable {
*/
public function jsonSerialize(): array {
return [
'name' => $this->name,
'severity' => $this->severity,
'description' => $this->description,
'linkToDoc' => $this->linkToDoc,

Loading…
Cancel
Save