Fix bugs and optimized upload time
This commit is contained in:
bovenliggende
63d6b17ec4
commit
8901634790
@ -74,6 +74,42 @@ class Api
|
||||
return new BadResponseException($message, $request, $response, $e->getPrevious());
|
||||
}
|
||||
|
||||
/**
|
||||
* /rest/api/content/{id}/child/{type}
|
||||
*
|
||||
* @param $rootPage
|
||||
* @return mixed
|
||||
*/
|
||||
public function getList($rootPage)
|
||||
{
|
||||
$url = "content/$rootPage/child/page?expand=version";
|
||||
|
||||
$pages = [];
|
||||
|
||||
do {
|
||||
try {
|
||||
$list = $this->getClient()->get($url)->json();
|
||||
} catch (BadResponseException $e) {
|
||||
throw $this->handleError($e);
|
||||
}
|
||||
|
||||
foreach ($list['results'] as $result) {
|
||||
$pages[$result['title']] = [
|
||||
"id" => $result['id'],
|
||||
"title" => $result['title'],
|
||||
"version" => $result['version']['number'],
|
||||
];
|
||||
}
|
||||
|
||||
if (array_key_exists('next', $list['_links'])) {
|
||||
$url = $list['_links']['next'];
|
||||
}
|
||||
|
||||
} while (array_key_exists('next', $list['_links']));
|
||||
|
||||
return $pages;
|
||||
}
|
||||
|
||||
/**
|
||||
* /rest/api/content/{id}/child/{type}
|
||||
*
|
||||
@ -82,22 +118,34 @@ class Api
|
||||
*/
|
||||
public function getHierarchy($rootPage)
|
||||
{
|
||||
try {
|
||||
$hierarchy = $this->getClient()->get("content/$rootPage/child/page?expand=version,body.storage")->json();
|
||||
} catch (BadResponseException $e) {
|
||||
throw $this->handleError($e);
|
||||
}
|
||||
//We do a limit of 15 as it appears that confluence has
|
||||
//a bug when retrieving more than 20 entries with "body.storage"
|
||||
$url = "content/$rootPage/child/page?expand=version,body.storage&limit=15";
|
||||
|
||||
$children = [];
|
||||
foreach ($hierarchy['results'] as $result) {
|
||||
$children[$result['title']] = [
|
||||
"id" => $result['id'],
|
||||
"title" => $result['title'],
|
||||
"version" => $result['version']['number'],
|
||||
"content" => $result['body']['storage']['value'],
|
||||
"children" => $this->getHierarchy($result['id'])
|
||||
];
|
||||
}
|
||||
|
||||
do {
|
||||
try {
|
||||
$hierarchy = $this->getClient()->get($url)->json();
|
||||
} catch (BadResponseException $e) {
|
||||
throw $this->handleError($e);
|
||||
}
|
||||
|
||||
foreach ($hierarchy['results'] as $result) {
|
||||
$children[$result['title']] = [
|
||||
"id" => $result['id'],
|
||||
"title" => $result['title'],
|
||||
"version" => $result['version']['number'],
|
||||
"content" => $result['body']['storage']['value'],
|
||||
"children" => $this->getHierarchy($result['id'])
|
||||
];
|
||||
}
|
||||
|
||||
if (array_key_exists('next', $hierarchy['_links'])) {
|
||||
$url = $hierarchy['_links']['next'];
|
||||
}
|
||||
|
||||
} while (array_key_exists('next', $hierarchy['_links']));
|
||||
|
||||
return $children;
|
||||
}
|
||||
|
@ -31,18 +31,21 @@ class Publisher
|
||||
|
||||
public function publish(array $tree)
|
||||
{
|
||||
echo "Getting already published pages...\n";
|
||||
$all_published = $this->client->getHierarchy($this->confluence['ancestor_id']);
|
||||
|
||||
echo "Finding Root Page...\n";
|
||||
$published = [];
|
||||
foreach ($all_published as $page) {
|
||||
$pages = $this->client->getList($this->confluence['ancestor_id']);
|
||||
$published = null;
|
||||
foreach ($pages as $page) {
|
||||
if ($page['title'] == $tree['title']) {
|
||||
$published = $page;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
echo "Getting already published pages...\n";
|
||||
if ($published != null) {
|
||||
$published['children'] = $this->client->getHierarchy($published['id']);
|
||||
}
|
||||
|
||||
echo "Create placeholder pages...\n";
|
||||
$published = $this->createRecursive($this->confluence['ancestor_id'], $tree, $published);
|
||||
|
||||
|
Laden…
Verwijs in nieuw issue
Block a user