can manage course navigation from settinss

This commit is contained in:
2025-07-07 11:06:04 -06:00
parent d8f17faaae
commit 5a56d26b4d
11 changed files with 264 additions and 17 deletions

View File

@@ -63,4 +63,5 @@ export const canvasModuleService = {
const response = await axiosClient.post<CanvasModule>(url, body);
return response.data.id;
},
};

View File

@@ -0,0 +1,34 @@
import { axiosClient } from "../axiosUtils";
import { canvasApi } from "./canvasServiceUtils";
export interface CanvasCourseTab {
id: string;
html_url: string;
full_url: string;
position: number;
visibility: "public" | "members" | "admins" | "none";
label: string;
type: "internal" | "external";
hidden?: boolean;
unused?: boolean;
url?: string;
}
export const canvasNavigationService = {
async getCourseTabs(canvasCourseId: number) {
const url = `${canvasApi}/courses/${canvasCourseId}/tabs`;
const { data } = await axiosClient.get<CanvasCourseTab[]>(url);
return data;
},
async updateCourseTab(
canvasCourseId: number,
tabId: string,
params: { hidden?: boolean; position?: number }
) {
const url = `${canvasApi}/courses/${canvasCourseId}/tabs/${tabId}`;
const body = { ...params };
const { data } = await axiosClient.put(url, body);
return data;
},
};