Refactor PuQI from musdb to move logic into this lib
See museum-digital/musdb#947
This commit is contained in:
parent
6bf7ae36c8
commit
abeeb5a185
1123
src/MDPuqi.php
1123
src/MDPuqi.php
File diff suppressed because it is too large
Load Diff
70
src/MDPuqiCheckSection.php
Normal file
70
src/MDPuqiCheckSection.php
Normal file
|
@ -0,0 +1,70 @@
|
|||
<?PHP
|
||||
/**
|
||||
* Represents a section of object data that is checked by Puqi.
|
||||
*
|
||||
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
|
||||
*/
|
||||
declare(strict_types = 1);
|
||||
|
||||
/**
|
||||
* Represents a section of object data that is checked by Puqi.
|
||||
*/
|
||||
enum MDPuqiCheckSection implements JsonSerializable {
|
||||
|
||||
case objectName;
|
||||
case objectType;
|
||||
case objectDescription;
|
||||
case objectMaterialTechnique;
|
||||
case objectMeasurements;
|
||||
case events;
|
||||
case tags;
|
||||
case collectionCount;
|
||||
case literatureCount;
|
||||
case hyperlinkCount;
|
||||
case documentCount;
|
||||
case linkedObjectCount;
|
||||
case seriesCount;
|
||||
case exhibitionCount;
|
||||
case translationCount;
|
||||
case transcriptCount;
|
||||
case objectHasReceptionCount;
|
||||
case objectIsReferenceCount;
|
||||
case markingCount;
|
||||
case imageCount;
|
||||
case publicInscription;
|
||||
case publicDetailedDescription;
|
||||
case publicComparableObjects;
|
||||
case metadataLicense;
|
||||
case imageMissing;
|
||||
case imageSizes;
|
||||
case imageLicenses;
|
||||
|
||||
/**
|
||||
* Lists all available names.
|
||||
*
|
||||
* @return array<string>
|
||||
*/
|
||||
public static function caseNames():array {
|
||||
|
||||
$output = [];
|
||||
|
||||
$cases = self::cases();
|
||||
foreach ($cases as $case) {
|
||||
$output[] = $case->name;
|
||||
}
|
||||
|
||||
return $output;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides the option to serialize as a string during json_encode().
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function jsonSerialize():string {
|
||||
|
||||
return $this->name;
|
||||
|
||||
}
|
||||
}
|
53
src/MDPuqiMessage.php
Normal file
53
src/MDPuqiMessage.php
Normal file
|
@ -0,0 +1,53 @@
|
|||
<?PHP
|
||||
/**
|
||||
* Describes a PuQI message.
|
||||
*
|
||||
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
|
||||
*/
|
||||
declare(strict_types = 1);
|
||||
|
||||
/**
|
||||
* Describes a PuQI message.
|
||||
*/
|
||||
final class MDPuqiMessage implements JsonSerializable {
|
||||
|
||||
public readonly MDPuqiCheckSection $section; // Section of object data that is described by the message.
|
||||
public readonly MDPuqiMessageStatus $status;
|
||||
public readonly string $message; // Text message.
|
||||
public readonly int $score;
|
||||
|
||||
/**
|
||||
* Provides the option to serialize as a string during json_encode().
|
||||
*
|
||||
* @return array{section: MDPuqiCheckSection, status: MDPuqiMessageStatus, message: string, score: integer}
|
||||
*/
|
||||
public function jsonSerialize():array {
|
||||
|
||||
return [
|
||||
'section' => $this->section,
|
||||
'status' => $this->status,
|
||||
'message' => $this->message,
|
||||
'score' => $this->score
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param MDPuqiCheckSection $section Section described by this message.
|
||||
* @param MDPuqiMessageStatus $status Status.
|
||||
* @param string $message Message.
|
||||
* @param integer $score Score impact of the message.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(MDPuqiCheckSection $section, MDPuqiMessageStatus $status, string $message, int $score) {
|
||||
|
||||
$this->section = $section;
|
||||
$this->status = $status;
|
||||
$this->message = $message;
|
||||
$this->score = $score;
|
||||
|
||||
}
|
||||
}
|
46
src/MDPuqiMessageStatus.php
Normal file
46
src/MDPuqiMessageStatus.php
Normal file
|
@ -0,0 +1,46 @@
|
|||
<?PHP
|
||||
/**
|
||||
* Represents a warning / praise status of a message.
|
||||
*
|
||||
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
|
||||
*/
|
||||
declare(strict_types = 1);
|
||||
|
||||
/**
|
||||
* Represents a warning / praise status of a message.
|
||||
*/
|
||||
enum MDPuqiMessageStatus implements JsonSerializable {
|
||||
|
||||
case warning;
|
||||
case neutral;
|
||||
case praise;
|
||||
|
||||
/**
|
||||
* Lists all available names.
|
||||
*
|
||||
* @return array<string>
|
||||
*/
|
||||
public static function caseNames():array {
|
||||
|
||||
$output = [];
|
||||
|
||||
$cases = self::cases();
|
||||
foreach ($cases as $case) {
|
||||
$output[] = $case->name;
|
||||
}
|
||||
|
||||
return $output;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Provides the option to serialize as a string during json_encode().
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function jsonSerialize():string {
|
||||
|
||||
return $this->name;
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user