mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-26 07:38:33 -06:00
can upload images
This commit is contained in:
@@ -29,6 +29,7 @@ export const canvasAssignmentService = {
|
||||
) {
|
||||
console.log(`Creating assignment: ${localAssignment.name}`);
|
||||
const url = `${canvasApi}/courses/${canvasCourseId}/assignments`;
|
||||
const content = markdownToHTMLSafe(localAssignment.description, settings);
|
||||
const body = {
|
||||
assignment: {
|
||||
name: localAssignment.name,
|
||||
@@ -38,7 +39,7 @@ export const canvasAssignmentService = {
|
||||
allowed_extensions: localAssignment.allowedFileUploadExtensions.map(
|
||||
(e) => e.toString()
|
||||
),
|
||||
description: markdownToHTMLSafe(localAssignment.description, settings),
|
||||
description: content,
|
||||
due_at: getDateFromString(localAssignment.dueAt)?.toISOString(),
|
||||
lock_at:
|
||||
localAssignment.lockAt &&
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
"use client";
|
||||
import { marked } from "marked";
|
||||
import DOMPurify from "isomorphic-dompurify";
|
||||
import DOMPurify from "isomorphic-dompurify";
|
||||
import { LocalCourseSettings } from "@/models/local/localCourseSettings";
|
||||
import markedKatex from "marked-katex-extension";
|
||||
|
||||
marked.use(markedKatex({
|
||||
throwOnError: false,
|
||||
output: "mathml"
|
||||
}));
|
||||
marked.use(
|
||||
markedKatex({
|
||||
throwOnError: false,
|
||||
output: "mathml",
|
||||
})
|
||||
);
|
||||
|
||||
export function extractImageSources(htmlString: string) {
|
||||
const srcUrls = [];
|
||||
@@ -46,7 +48,8 @@ export function markdownToHTMLSafe(
|
||||
markdownString: string,
|
||||
settings: LocalCourseSettings
|
||||
) {
|
||||
return markdownToHtmlNoImages(markdownString);
|
||||
const html = markdownToHtmlNoImages(markdownString);
|
||||
return convertImagesToCanvasImages(html, settings);
|
||||
}
|
||||
|
||||
export function markdownToHtmlNoImages(markdownString: string) {
|
||||
|
||||
@@ -7,6 +7,8 @@ import {
|
||||
uploadToCanvasPart2,
|
||||
} from "@/services/canvas/files/canvasFileService";
|
||||
|
||||
const fileStorageLocation = process.env.FILE_STORAGE_LOCATION ?? "/app/public";
|
||||
|
||||
export const canvasFileRouter = router({
|
||||
getCanvasFileUrl: publicProcedure
|
||||
.input(
|
||||
@@ -16,15 +18,17 @@ export const canvasFileRouter = router({
|
||||
})
|
||||
)
|
||||
.mutation(async ({ input: { sourceUrl, canvasCourseId } }) => {
|
||||
const localTempFile = await downloadUrlToTempDirectory(sourceUrl);
|
||||
console.log("local temp file", localTempFile);
|
||||
const localFile = sourceUrl.startsWith("/")
|
||||
? fileStorageLocation + sourceUrl
|
||||
: await downloadUrlToTempDirectory(sourceUrl);
|
||||
console.log("local temp file", localFile);
|
||||
const { upload_url, upload_params } = await uploadToCanvasPart1(
|
||||
localTempFile,
|
||||
localFile,
|
||||
canvasCourseId
|
||||
);
|
||||
console.log("part 1 done", upload_url, upload_params);
|
||||
const canvasUrl = await uploadToCanvasPart2({
|
||||
pathToUpload: localTempFile,
|
||||
pathToUpload: localFile,
|
||||
upload_url,
|
||||
upload_params,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user