Fix cleanup after reverting revert
parent
aa5abe786e
commit
160b86e9ae
157
h5p.classes.php
157
h5p.classes.php
|
@ -4108,163 +4108,6 @@ class H5PCore {
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Publish content on the H5P Hub.
|
||||
*
|
||||
* @param array $data Data from content publishing process
|
||||
* @param array $files Files to upload with the content publish
|
||||
* @return stdClass
|
||||
*/
|
||||
public function hubPublishContent($data, $files) {
|
||||
$headers = array(
|
||||
'Authorization' => $this->hubGetAuthorizationHeader(),
|
||||
'Accept' => 'application/json',
|
||||
);
|
||||
|
||||
$response = $this->h5pF->fetchExternalData(
|
||||
H5PHubEndpoints::createURL(H5PHubEndpoints::CONTENT),
|
||||
$data, TRUE, NULL, TRUE, $headers, $files
|
||||
);
|
||||
|
||||
if (empty($response['data'])) {
|
||||
throw new Exception($this->h5pF->t('Unable to authorize with the H5P Hub. Please check your Hub registration and connection.'));
|
||||
}
|
||||
|
||||
$result = json_decode($response['data']);
|
||||
if (isset($result->success) && $result->success === TRUE) {
|
||||
return $result;
|
||||
}
|
||||
elseif (!empty($result->errors)) {
|
||||
// Relay any error messages
|
||||
$e = new Exception($this->h5pF->t('Validation failed.'));
|
||||
$e->errors = $result->errors;
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the authorization header needed to access the private parts of
|
||||
* the H5P Hub.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function hubGetAuthorizationHeader() {
|
||||
$site_uuid = $this->h5pF->getOption('site_uuid', '');
|
||||
$hub_secret = $this->h5pF->getOption('hub_secret', '');
|
||||
if (empty($site_uuid)) {
|
||||
throw new Exception($this->h5pF->t('Missing Site UUID. Please check your Hub registration.'));
|
||||
}
|
||||
if (empty($hub_secret)) {
|
||||
throw new Exception($this->h5pF->t('Missing Hub Secret. Please check your Hub registration.'));
|
||||
}
|
||||
return 'Basic ' . base64_encode("$site_uuid:$hub_secret");
|
||||
}
|
||||
|
||||
/**
|
||||
* Unpublish content from content hub
|
||||
*
|
||||
* @param integer $hubId Content hub id
|
||||
* @param string $token CSRF token
|
||||
*
|
||||
* @return bool True if successful
|
||||
*/
|
||||
public function hubUnpublishContent($hubId, $token) {
|
||||
if (!self::validToken('content_hub_token', $token)) {
|
||||
$msg = $this->h5pF->t('Could not unpublish content because token was invalid. Please try again.');
|
||||
$this->h5pF->setErrorMessage($msg);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
$headers = array(
|
||||
'Authorization' => $this->hubGetAuthorizationHeader(),
|
||||
'Accept' => 'application/json',
|
||||
);
|
||||
|
||||
$url = H5PHubEndpoints::createURL(H5PHubEndpoints::CONTENT);
|
||||
$response = $this->h5pF->fetchExternalData("{$url}/{$hubId}", array(
|
||||
'published' => '0',
|
||||
), true, null, true, $headers, array(), 'PUT');
|
||||
|
||||
// Remove shared status if successful
|
||||
if (!empty($response) && $response['status'] === 200) {
|
||||
$msg = $this->h5pF->t('Content successfully unpublished');
|
||||
$this->h5pF->setInfoMessage($msg);
|
||||
|
||||
return true;
|
||||
}
|
||||
$msg = $this->h5pF->t('Content unpublish failed');
|
||||
$this->h5pF->setErrorMessage($msg);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sync content with content hub
|
||||
*
|
||||
* @param integer $hubId Content hub id
|
||||
* @param string $token CSRF token
|
||||
* @param string $exportPath Export path where .h5p for content can be found
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function hubSyncContent($hubId, $token, $exportPath) {
|
||||
if (!self::validToken('content_hub_token', $token)) {
|
||||
$msg = $this->h5pF->t('Could not sync content because token was invalid. Please try again.');
|
||||
$this->h5pF->setErrorMessage($msg);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
$headers = array(
|
||||
'Authorization' => $this->hubGetAuthorizationHeader(),
|
||||
'Accept' => 'application/json',
|
||||
);
|
||||
|
||||
$url = H5PHubEndpoints::createURL(H5PHubEndpoints::CONTENT);
|
||||
$response = $this->h5pF->fetchExternalData("{$url}/{$hubId}", array(
|
||||
'download_url' => $exportPath,
|
||||
), true, null, true, $headers, array(), 'PUT');
|
||||
|
||||
if (!empty($response) && $response['status'] === 200) {
|
||||
$msg = $this->h5pF->t('Content sync queued');
|
||||
$this->h5pF->setInfoMessage($msg);
|
||||
return true;
|
||||
}
|
||||
|
||||
$msg = $this->h5pF->t('Content sync failed');
|
||||
$this->h5pF->setErrorMessage($msg);
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch account info for our site from the content hub
|
||||
*
|
||||
* @return array|bool|string False if account is not setup, otherwise data
|
||||
*/
|
||||
public function hubAccountInfo() {
|
||||
$siteUuid = $this->h5pF->getOption('site_uuid', null);
|
||||
$secret = $this->h5pF->getOption('hub_secret', null);
|
||||
if (empty($siteUuid) || empty($secret)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$headers = array(
|
||||
'Authorization' => $this->hubGetAuthorizationHeader(),
|
||||
'Accept' => 'application/json',
|
||||
);
|
||||
|
||||
$url = H5PHubEndpoints::createURL(H5PHubEndpoints::REGISTER);
|
||||
$accountInfo = $this->h5pF->fetchExternalData("{$url}/{$siteUuid}",
|
||||
null, true, null, true, $headers, array(), 'GET');
|
||||
|
||||
if ($accountInfo['status'] !== 200) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return json_decode($accountInfo['data'])->data;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue