protected function contents_api_response_to_list()

in repository/office365/lib.php [752:895]


    protected function contents_api_response_to_list($response, $path, $clienttype, $parentinfo = null, $addupload = true) {
        global $OUTPUT;
        $list = [];
        if ($clienttype === 'onedrive') {
            $pathprefix = '/my'.$path;
            $uploadpathprefix = $pathprefix;
        } else if ($clienttype === 'unified') {
            $pathprefix = '/my';
            $uploadpathprefix = $pathprefix.$path;
        } else if ($clienttype === 'unifiedgroup') {
            $pathprefix = '/groups'.$path;
            $uploadpathprefix = $pathprefix;
        } else if ($clienttype === 'trendingaround') {
            $pathprefix = '/my';
        }

        if ($addupload === true) {
            $list[] = [
                'title' => get_string('upload', 'repository_office365'),
                'path' => $uploadpathprefix.'/upload/',
                'thumbnail' => $OUTPUT->pix_url('a/add_file')->out(false),
                'children' => [],
            ];
        }

        if (isset($response)) {
            foreach ($response as $content) {
                if ($clienttype === 'unified' || $clienttype === 'unifiedgroup') {
                    $itempath = $pathprefix.'/'.$content['id'];
                    if (isset($content['folder'])) {
                        $list[] = [
                            'title' => $content['name'],
                            'path' => $itempath,
                            'thumbnail' => $OUTPUT->pix_url(file_folder_icon(90))->out(false),
                            'date' => strtotime($content['createdDateTime']),
                            'datemodified' => strtotime($content['lastModifiedDateTime']),
                            'datecreated' => strtotime($content['createdDateTime']),
                            'children' => [],
                        ];
                    } else if (isset($content['file'])) {
                        $url = $content['webUrl'].'?web=1';
                        if ($clienttype === 'unified') {
                            $source = [
                                'id' => $content['id'],
                                'source' => 'onedrive',
                            ];
                        } else if ($clienttype === 'unifiedgroup') {
                            $source = [
                                'id' => $content['id'],
                                'source' => 'onedrivegroup',
                                'groupid' => $parentinfo,
                            ];
                        }

                        $author = '';
                        if (!empty($content['createdBy']['user']['displayName'])) {
                            $author = $content['createdBy']['user']['displayName'];
                            $author = explode(',', $author);
                            $author = $author[0];
                        }

                        $list[] = [
                            'title' => $content['name'],
                            'date' => strtotime($content['createdDateTime']),
                            'datemodified' => strtotime($content['lastModifiedDateTime']),
                            'datecreated' => strtotime($content['createdDateTime']),
                            'size' => $content['size'],
                            'url' => $url,
                            'thumbnail' => $OUTPUT->pix_url(file_extension_icon($content['name'], 90))->out(false),
                            'author' => $author,
                            'source' => $this->pack_reference($source),
                        ];
                    }
                } else if ($clienttype === 'trendingaround') {
                    if (isset($content['folder'])) {
                        $list[] = [
                            'title' => $content['name'],
                            'path' => $itempath = $pathprefix . '/' . $content['name'],
                            'thumbnail' => $OUTPUT->pix_url(file_folder_icon(90))->out(false),
                            'date' => strtotime($content['DateTimeCreated']),
                            'datemodified' => strtotime($content['DateTimeLastModified']),
                            'datecreated' => strtotime($content['DateTimeCreated']),
                            'children' => [],
                        ];
                    } else {
                        $url = $content['webUrl'] . '?web=1';
                        $source = [
                            'id' => $content['@odata.id'],
                            'source' => 'trendingaround',
                        ];

                        $list[] = [
                            'title' => $content['name'],
                            'date' => strtotime($content['DateTimeCreated']),
                            'datemodified' => strtotime($content['DateTimeLastModified']),
                            'datecreated' => strtotime($content['DateTimeCreated']),
                            'url' => $url,
                            'thumbnail' => $OUTPUT->pix_url(file_extension_icon($content['name'], 90))->out(false),
                            'source' => $this->pack_reference($source),
                        ];
                    }
                } else {
                    $itempath = $pathprefix.'/'.$content['name'];
                    if ($content['type'] === 'Folder') {
                        $list[] = [
                            'title' => $content['name'],
                            'path' => $itempath,
                            'thumbnail' => $OUTPUT->pix_url(file_folder_icon(90))->out(false),
                            'date' => strtotime($content['dateTimeCreated']),
                            'datemodified' => strtotime($content['dateTimeLastModified']),
                            'datecreated' => strtotime($content['dateTimeCreated']),
                            'children' => [],
                        ];
                    } else if ($content['type'] === 'File') {
                        $url = $content['webUrl'].'?web=1';
                        $source = [
                            'id' => $content['id'],
                            'source' => 'onedrive',
                        ];

                        $author = '';
                        if (!empty($content['createdBy']['user']['displayName'])) {
                            $author = $content['createdBy']['user']['displayName'];
                            $author = explode(',', $author);
                            $author = $author[0];
                        }

                        $list[] = [
                            'title' => $content['name'],
                            'date' => strtotime($content['dateTimeCreated']),
                            'datemodified' => strtotime($content['dateTimeLastModified']),
                            'datecreated' => strtotime($content['dateTimeCreated']),
                            'size' => $content['size'],
                            'url' => $url,
                            'thumbnail' => $OUTPUT->pix_url(file_extension_icon($content['name'], 90))->out(false),
                            'author' => $author,
                            'source' => $this->pack_reference($source),
                        ];
                    }
                }
            }
        }
        return $list;
    }