public static function validateArchiveListJson($archiveListJson) { if (!self::$retriever) { self::$retriever = new UriRetriever(); } if (!self::$schemaUri) { self::$schemaUri = 'file://' . realpath(__DIR__ . '/archive-schema.json'); } $uri = self::$schemaUri; $schema = self::$retriever->retrieve($uri); $validator = new Validator(); // have to do a encode+decode so that json objects decoded as arrays from Guzzle // are re-encoded as objects instead $validator->check(json_decode(json_encode($archiveListJson)), $schema); if (!$validator->isValid()) { $errors = ""; foreach ($validator->getErrors() as $error) { $errors .= '[' . $error['property'] . '] ' . $error['message'] . "\n"; } throw new InvalidArgumentException('The archiveListJson provided is not valid. Errors:' . $errors . ' archiveListJson:' . print_r($archiveListJson, true)); } }
public static function validateArchiveListData($archiveListData) { if (!self::$schemaUri) { self::$schemaUri = __DIR__ . '/archive-schema.json'; } $document = new Document(); // have to do a encode+decode so that json objects decoded as arrays from Guzzle // are re-encoded as objects instead $document->loadData(json_decode(json_encode($archiveListData))); $document->loadSchema(self::$schemaUri); if (!$document->validate()) { throw new InvalidArgumentException('The archive data provided is not valid. Errors:' . $document->lastError . ' archiveData:' . print_r($archiveData, true)); } }