public function get_items_list()

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;
    }