mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-26 15:48:32 -06:00
working on settings
This commit is contained in:
@@ -10,9 +10,11 @@ const baseCanvasUrl = "https://snow.instructure.com/api/v1";
|
||||
|
||||
const getAllTerms = async () => {
|
||||
const url = `${baseCanvasUrl}/accounts/10/terms`;
|
||||
const {data} = await axiosClient.get<{
|
||||
enrollment_terms: CanvasEnrollmentTermModel[];
|
||||
}[]>(url);
|
||||
const { data } = await axiosClient.get<
|
||||
{
|
||||
enrollment_terms: CanvasEnrollmentTermModel[];
|
||||
}[]
|
||||
>(url);
|
||||
const terms = data.flatMap((r) => r.enrollment_terms);
|
||||
return terms;
|
||||
};
|
||||
@@ -21,11 +23,12 @@ export const canvasService = {
|
||||
getAllTerms,
|
||||
async getCourses(termId: number) {
|
||||
const url = `${baseCanvasUrl}/courses`;
|
||||
const coursesResponse =
|
||||
await canvasServiceUtils.paginatedRequest<CanvasCourseModel>({ url });
|
||||
return coursesResponse
|
||||
.flat()
|
||||
const response = await axiosClient.get<CanvasCourseModel[][]>(url);
|
||||
const allCourses = response.data;
|
||||
const coursesInTerm = allCourses
|
||||
.flatMap((l) => l)
|
||||
.filter((c) => c.enrollment_term_id === termId);
|
||||
return coursesInTerm;
|
||||
},
|
||||
|
||||
async getCourse(courseId: number): Promise<CanvasCourseModel> {
|
||||
|
||||
@@ -32,17 +32,24 @@ export const fileStorageService = {
|
||||
const courseDirectories = await fs.readdir(basePath, {
|
||||
withFileTypes: true,
|
||||
});
|
||||
const coursePromises = courseDirectories
|
||||
.filter((dirent) => dirent.isDirectory())
|
||||
.filter(async (dirent) => {
|
||||
const coursePath = path.join(basePath, dirent.name);
|
||||
const settingsPath = path.join(coursePath, "settings.yml");
|
||||
return await directoryOrFileExists(settingsPath);
|
||||
});
|
||||
const courseNamesFromDirectories = (await Promise.all(coursePromises)).map(
|
||||
(c) => c.name
|
||||
const coursePromises = await Promise.all(
|
||||
courseDirectories
|
||||
.filter((dirent) => dirent.isDirectory())
|
||||
.map(async (dirent) => {
|
||||
const coursePath = path.join(basePath, dirent.name);
|
||||
const settingsPath = path.join(coursePath, "settings.yml");
|
||||
const hasSettings = await directoryOrFileExists(settingsPath);
|
||||
return {
|
||||
dirent,
|
||||
hasSettings,
|
||||
};
|
||||
})
|
||||
);
|
||||
|
||||
const courseNamesFromDirectories = coursePromises
|
||||
.filter(({ hasSettings }) => hasSettings)
|
||||
.map(({ dirent }) => dirent.name);
|
||||
|
||||
return courseNamesFromDirectories;
|
||||
},
|
||||
|
||||
@@ -256,10 +263,22 @@ export const fileStorageService = {
|
||||
}
|
||||
|
||||
const directories = await fs.readdir(basePath, { withFileTypes: true });
|
||||
const emptyDirectories = directories
|
||||
.filter((dirent) => dirent.isDirectory())
|
||||
.map((dirent) => path.join(basePath, dirent.name))
|
||||
.filter(async (dir) => !(await hasFileSystemEntries(dir)));
|
||||
console.log(directories);
|
||||
const emptyDirectories = (
|
||||
await Promise.all(
|
||||
directories
|
||||
.filter((dirent) => dirent.isDirectory())
|
||||
.map((dirent) => path.join(dirent.name))
|
||||
.map(async (directory) => {
|
||||
return {
|
||||
directory,
|
||||
files: await fs.readdir(path.join(basePath, directory)),
|
||||
};
|
||||
})
|
||||
)
|
||||
)
|
||||
.filter(({ files }) => files.length === 0)
|
||||
.map(({ directory }) => directory);
|
||||
|
||||
return emptyDirectories;
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user