public function sync_notebook_data()

in classes/api/base.php [478:525]


    public function sync_notebook_data() {
        $notebookname = get_string('notebookname', 'local_onenote');
        $courses = enrol_get_my_courses(); // Get the current user enrolled courses.
        $notebooksarray = [];

        $notebooks = $this->get_items_list();
        foreach ($notebooks as $notebook) {
            if (isset($notebook['id'])) {
                $notebooksarray[$notebook['id']] = $notebook['title'];
            }
        }

        if (!(in_array($notebookname, $notebooksarray))) {
            // Moodle notebook not found, create it.
            try {
                if (\local_o365\rest\unified::is_configured() === true) {
                    $notebookdata = json_encode(['displayName' => $notebookname]);
                } else {
                    $notebookdata = json_encode(['name' => $notebookname]);
                }
                $creatednotebook = $this->apicall('post', '/notebooks', $notebookdata);
                $creatednotebook = $this->process_apicall_response($creatednotebook, ['id' => null]);
            } catch (\Exception $e) {
                \local_onenote\utils::debug('Could not create Moodle notebook', 'sync_notebook_data', $e);
                return false;
            }
            $sections = [];
            if (!empty($courses)) {
                $this->sync_sections($courses, $creatednotebook['id'], $sections);
            }
        } else {
            // Moodle notebook found, sync sections with courses.
            $notebookid = array_search($notebookname, $notebooksarray);
            $response = $this->apicall('get', '/notebooks/'.$notebookid.'/sections/');
            $existingsections = $this->process_apicall_response($response, ['value' => null]);
            $sections = [];
            foreach ($existingsections['value'] as $section) {
                if (isset($section['displayName'])) {
                    $sections[$section['id']] = $section['displayName'];
                } else {
                    $sections[$section['id']] = $section['name'];
                }
            }
            if (!empty($courses)) {
                $this->sync_sections($courses, $notebookid, $sections);
            }
        }
    }