working on settings

This commit is contained in:
2024-09-11 21:33:35 -06:00
parent f42f631fad
commit 32b59b3975
7 changed files with 131 additions and 34 deletions

View File

@@ -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> {

View File

@@ -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;
},