in classes/api/base.php [534:561]
protected function sync_sections($courses, $notebookid, array $sections) {
$sectionendpoint = '/notebooks/'.$notebookid.'/sections/';
foreach ($courses as $course) {
// OneNote sections have character and length restrictions. Ensure course name complies.
$coursename = trim($course->fullname);
$restricted = ['?', '*', '\\', '/', ':', '<', '>', '|', '&', '#', '"', '\'', '%', '~'];
$coursename = str_replace($restricted, '', $coursename);
if (strlen($coursename) >= 50) {
$coursename = substr($coursename, 0, 49);
}
if (!in_array($coursename, $sections)) {
// Create section.
if (\local_o365\rest\unified::is_configured() === true) {
$sectiondata = json_encode(['displayName' => $coursename]);
} else {
$sectiondata = json_encode(['name' => $coursename]);
}
$response = $this->apicall('post', $sectionendpoint, $sectiondata);
$response = $this->process_apicall_response($response, ['id' => null]);
$this->upsert_user_section($course->id, $response['id']);
} else {
$sectionid = array_search($coursename, $sections);
$this->upsert_user_section($course->id, $sectionid);
}
}
}