Skip to content

Commit 35092b2

Browse files
Add CMS theme install
1 parent 149018d commit 35092b2

File tree

1 file changed

+82
-0
lines changed

1 file changed

+82
-0
lines changed

src/Endpoints/Cmses.php

+82
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,88 @@ public function regenerateSalts(int $id): Response
407407
]);
408408
}
409409

410+
/**
411+
* @param int $id
412+
* @param string $name
413+
* @param string|null $version
414+
* @return Response
415+
* @throws RequestException
416+
*/
417+
public function installThemeFromRepository(int $id, string $name, string $version = null): Response
418+
{
419+
$request = (new Request())
420+
->setMethod(Request::METHOD_POST)
421+
->setUrl(sprintf('cmses/%d/themes', $id))
422+
->setBody([
423+
'name' => $name,
424+
'version' => $version,
425+
]);
426+
427+
$response = $this
428+
->client
429+
->request($request);
430+
if (!$response->isSuccess()) {
431+
return $response;
432+
}
433+
434+
// Retrieve the CMS again, so we log affected clusters and can return the CMS object
435+
$retrieveResponse = $this->get($id);
436+
if (!$retrieveResponse->isSuccess()) {
437+
return $retrieveResponse;
438+
}
439+
440+
$cms = $retrieveResponse->getData('cms');
441+
442+
// Log which cluster is affected by this change
443+
$this
444+
->client
445+
->addAffectedCluster($cms->getClusterId());
446+
447+
return $response->setData([
448+
'cms' => $cms,
449+
]);
450+
}
451+
452+
/**
453+
* @param int $id
454+
* @param string $url
455+
* @return Response
456+
* @throws RequestException
457+
*/
458+
public function installThemeFromUrl(int $id, string $url): Response
459+
{
460+
$request = (new Request())
461+
->setMethod(Request::METHOD_POST)
462+
->setUrl(sprintf('cmses/%d/themes', $id))
463+
->setBody([
464+
'url' => $url,
465+
]);
466+
467+
$response = $this
468+
->client
469+
->request($request);
470+
if (!$response->isSuccess()) {
471+
return $response;
472+
}
473+
474+
// Retrieve the CMS again, so we log affected clusters and can return the CMS object
475+
$retrieveResponse = $this->get($id);
476+
if (!$retrieveResponse->isSuccess()) {
477+
return $retrieveResponse;
478+
}
479+
480+
$cms = $retrieveResponse->getData('cms');
481+
482+
// Log which cluster is affected by this change
483+
$this
484+
->client
485+
->addAffectedCluster($cms->getClusterId());
486+
487+
return $response->setData([
488+
'cms' => $cms,
489+
]);
490+
}
491+
410492
/**
411493
* @param int $id
412494
* @param int $userId

0 commit comments

Comments
 (0)