in classes/api/base.php [351:473]
public function get_items_list($path = '') {
global $OUTPUT;
if (empty($path)) {
$itemtype = 'notebook';
$endpoint = '/notebooks';
} else {
$parts = explode('/', $path);
$part1 = array_pop($parts);
$part2 = array_pop($parts);
if ($part2) {
$itemtype = 'page';
$endpoint = '/sections/'.$part1.'/pages';
} else {
$itemtype = 'section';
$endpoint = '/notebooks/'.$part1.'/sections';
}
}
$response = $this->apicall('get', $endpoint);
try {
$response = $this->process_apicall_response($response, ['value' => null]);
} catch (\Exception $e) {
\local_onenote\utils::debug($e->getMessage(), 'onenote\api\base::get_items_list', $e);
return [];
}
if (empty($response['value']) || !is_array($response['value'])) {
\local_onenote\utils::debug('Bad value parameter', 'onenote\api\base::get_items_list', $response);
return [];
}
$items = [];
foreach ($response['value'] as $item) {
switch ($itemtype) {
case 'notebook':
$itemname = 'Notebook';
if (isset($item['name'])) {
// Legacy.
$itemname = $item['name'];
} else if (isset($item['displayName'])) {
// Graph.
$itemname = $item['displayName'];
}
$itemlastmodified = 'now';
if (isset($item['lastModifiedTime'])) {
// Legacy.
$itemlastmodified = $item['lastModifiedTime'];
} else if (isset($item['lastModifiedDateTime'])) {
// Graph.
$itemlastmodified = $item['lastModifiedDateTime'];
}
$items[] = [
'title' => $itemname,
'path' => $path.'/'.urlencode($item['id']),
'date' => strtotime($itemlastmodified),
'thumbnail' => $OUTPUT->image_url(file_extension_icon($itemname, 90))->out(false),
'source' => $item['id'],
'url' => $item['links']['oneNoteWebUrl']['href'],
'author' => $item['createdBy'],
'id' => $item['id'],
'children' => [],
];
break;
case 'section':
$itemname = 'Notebook';
if (isset($item['name'])) {
// Legacy.
$itemname = $item['name'];
} else if (isset($item['displayName'])) {
// Graph.
$itemname = $item['displayName'];
}
$itemlastmodified = 'now';
if (isset($item['lastModifiedTime'])) {
// Legacy.
$itemlastmodified = $item['lastModifiedTime'];
} else if (isset($item['lastModifiedDateTime'])) {
// Graph.
$itemlastmodified = $item['lastModifiedDateTime'];
}
$items[] = [
'title' => $itemname,
'path' => $path.'/'.urlencode($item['id']),
'date' => strtotime($itemlastmodified),
'thumbnail' => $OUTPUT->image_url(file_extension_icon($itemname, 90))->out(false),
'source' => $item['id'],
'url' => $item['self'],
'author' => $item['createdBy'],
'id' => $item['id'],
'children' => [],
];
break;
case 'page':
$itemcreatedtime = 'now';
if (isset($item['createdTime'])) {
// Legacy.
$itemcreatedtime = $item['createdTime'];
} else if (isset($item['createdDateTime'])) {
// Graph.
$itemcreatedtime = $item['createdDateTime'];
}
$items[] = [
'title' => $item['title'].".zip",
'path' => $path.'/'.urlencode($item['id']),
'date' => strtotime($itemcreatedtime),
'thumbnail' => $OUTPUT->image_url(file_extension_icon($item['title'], 90))->out(false),
'source' => $item['id'],
'url' => $item['links']['oneNoteWebUrl']['href'],
'author' => $item['createdByAppId'],
'id' => $item['id'],
];
break;
}
}
return $items;
}