mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
started making mutation to put things together
This commit is contained in:
@@ -35,7 +35,7 @@ const getFileSize = async (pathToFile: string): Promise<number> => {
|
|||||||
|
|
||||||
export const uploadToCanvasPart1 = async (
|
export const uploadToCanvasPart1 = async (
|
||||||
pathToUpload: string,
|
pathToUpload: string,
|
||||||
canvasCourseId: string
|
canvasCourseId: number
|
||||||
) => {
|
) => {
|
||||||
try {
|
try {
|
||||||
const url = `${canvasApi}/courses/${canvasCourseId}/assignment_groups`;
|
const url = `${canvasApi}/courses/${canvasCourseId}/assignment_groups`;
|
||||||
@@ -57,11 +57,15 @@ export const uploadToCanvasPart1 = async (
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export const uploadToCanvasPart2 = async (
|
export const uploadToCanvasPart2 = async ({
|
||||||
pathToUpload: string,
|
pathToUpload,
|
||||||
upload_url: string,
|
upload_url,
|
||||||
upload_params: { [key: string]: string }
|
upload_params,
|
||||||
) => {
|
}: {
|
||||||
|
pathToUpload: string;
|
||||||
|
upload_url: string;
|
||||||
|
upload_params: { [key: string]: string };
|
||||||
|
}) => {
|
||||||
try {
|
try {
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
|
|
||||||
@@ -89,6 +93,7 @@ export const uploadToCanvasPart2 = async (
|
|||||||
const redirectResponse = await axiosClient.get(redirectUrl);
|
const redirectResponse = await axiosClient.get(redirectUrl);
|
||||||
console.log("redirect response", redirectResponse.data);
|
console.log("redirect response", redirectResponse.data);
|
||||||
}
|
}
|
||||||
|
return response.data.url;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error uploading file to Canvas part 1:", error);
|
console.error("Error uploading file to Canvas part 1:", error);
|
||||||
throw error;
|
throw error;
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ export function convertImagesToCanvasImages(
|
|||||||
}
|
}
|
||||||
mutableHtml = mutableHtml.replaceAll(imageSrc, destinationUrl);
|
mutableHtml = mutableHtml.replaceAll(imageSrc, destinationUrl);
|
||||||
}
|
}
|
||||||
// console.log(imageSources, imageLookup, mutableHtml);
|
|
||||||
return mutableHtml;
|
return mutableHtml;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { createTrpcContext } from "../context";
|
import { createTrpcContext } from "../context";
|
||||||
import { createCallerFactory, router } from "../trpcSetup";
|
import { createCallerFactory, router } from "../trpcSetup";
|
||||||
import { assignmentRouter } from "./assignmentRouter";
|
import { assignmentRouter } from "./assignmentRouter";
|
||||||
|
import { canvasFileRouter } from "./canvasFileRouter";
|
||||||
import { directoriesRouter } from "./directoriesRouter";
|
import { directoriesRouter } from "./directoriesRouter";
|
||||||
import { lectureRouter } from "./lectureRouter";
|
import { lectureRouter } from "./lectureRouter";
|
||||||
import { moduleRouter } from "./moduleRouter";
|
import { moduleRouter } from "./moduleRouter";
|
||||||
@@ -16,6 +17,7 @@ export const trpcAppRouter = router({
|
|||||||
page: pageRouter,
|
page: pageRouter,
|
||||||
module: moduleRouter,
|
module: moduleRouter,
|
||||||
directories: directoriesRouter,
|
directories: directoriesRouter,
|
||||||
|
canvasFile: canvasFileRouter,
|
||||||
});
|
});
|
||||||
|
|
||||||
export const createCaller = createCallerFactory(trpcAppRouter);
|
export const createCaller = createCallerFactory(trpcAppRouter);
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
import publicProcedure from "../procedures/public";
|
||||||
|
import { z } from "zod";
|
||||||
|
import { router } from "../trpcSetup";
|
||||||
|
import {
|
||||||
|
downloadUrlToTempDirectory,
|
||||||
|
uploadToCanvasPart1,
|
||||||
|
uploadToCanvasPart2,
|
||||||
|
} from "@/services/canvas/files/canvasFileService";
|
||||||
|
|
||||||
|
export const canvasFileRouter = router({
|
||||||
|
getCanvasFileUrl: publicProcedure
|
||||||
|
.input(
|
||||||
|
z.object({
|
||||||
|
sourceUrl: z.string(),
|
||||||
|
canvasCourseId: z.number(),
|
||||||
|
})
|
||||||
|
)
|
||||||
|
.mutation(async ({ input: { sourceUrl, canvasCourseId } }) => {
|
||||||
|
const localTempFile = await downloadUrlToTempDirectory(sourceUrl);
|
||||||
|
const { upload_url, upload_params } = await uploadToCanvasPart1(
|
||||||
|
localTempFile,
|
||||||
|
canvasCourseId
|
||||||
|
);
|
||||||
|
const canvasUrl = await uploadToCanvasPart2({
|
||||||
|
pathToUpload: localTempFile,
|
||||||
|
upload_url,
|
||||||
|
upload_params,
|
||||||
|
});
|
||||||
|
return canvasUrl;
|
||||||
|
}),
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user