mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-26 07:38:33 -06:00
refactoring canvas files
This commit is contained in:
66
src/features/canvas/services/canvasModuleService.ts
Normal file
66
src/features/canvas/services/canvasModuleService.ts
Normal file
@@ -0,0 +1,66 @@
|
||||
import { CanvasModuleItem } from "@/features/canvas/models/modules/canvasModuleItems";
|
||||
import { CanvasPage } from "@/features/canvas/models/pages/canvasPageModel";
|
||||
import { canvasApi, paginatedRequest } from "./canvasServiceUtils";
|
||||
import { CanvasModule } from "@/features/canvas/models/modules/canvasModule";
|
||||
import { axiosClient } from "@/services/axiosUtils";
|
||||
|
||||
export const canvasModuleService = {
|
||||
async updateModuleItem(
|
||||
canvasCourseId: number,
|
||||
canvasModuleId: number,
|
||||
item: CanvasModuleItem
|
||||
) {
|
||||
console.log(`Updating module item ${item.title}`);
|
||||
const url = `${canvasApi}/courses/${canvasCourseId}/modules/${canvasModuleId}/items/${item.id}`;
|
||||
const body = {
|
||||
module_item: { title: item.title, position: item.position },
|
||||
};
|
||||
const { data } = await axiosClient.put<CanvasModuleItem>(url, body);
|
||||
|
||||
if (!data) throw new Error("Something went wrong updating module item");
|
||||
},
|
||||
|
||||
async createModuleItem(
|
||||
canvasCourseId: number,
|
||||
canvasModuleId: number,
|
||||
title: string,
|
||||
type: "Assignment" | "Quiz",
|
||||
contentId: number | string
|
||||
) {
|
||||
console.log(`Creating new module item ${title}`);
|
||||
const url = `${canvasApi}/courses/${canvasCourseId}/modules/${canvasModuleId}/items`;
|
||||
const body = { module_item: { title, type, content_id: contentId } };
|
||||
await axiosClient.post(url, body);
|
||||
},
|
||||
|
||||
async createPageModuleItem(
|
||||
canvasCourseId: number,
|
||||
canvasModuleId: number,
|
||||
title: string,
|
||||
canvasPage: CanvasPage
|
||||
) {
|
||||
console.log(`Creating new module item ${title}`);
|
||||
const url = `${canvasApi}/courses/${canvasCourseId}/modules/${canvasModuleId}/items`;
|
||||
const body = {
|
||||
module_item: { title, type: "Page", page_url: canvasPage.url },
|
||||
};
|
||||
await axiosClient.post<CanvasModuleItem>(url, body);
|
||||
},
|
||||
|
||||
async getCourseModules(canvasCourseId: number) {
|
||||
const url = `${canvasApi}/courses/${canvasCourseId}/modules`;
|
||||
const response = await paginatedRequest<CanvasModule[]>({ url });
|
||||
return response;
|
||||
},
|
||||
|
||||
async createModule(canvasCourseId: number, moduleName: string) {
|
||||
const url = `${canvasApi}/courses/${canvasCourseId}/modules`;
|
||||
const body = {
|
||||
module: {
|
||||
name: moduleName,
|
||||
},
|
||||
};
|
||||
const response = await axiosClient.post<CanvasModule>(url, body);
|
||||
return response.data.id;
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user