Updated the stats

This commit is contained in:
Tiago Ribeiro
2024-04-02 00:25:49 +01:00
parent bddb2ed18e
commit 46764cacfa
4 changed files with 47 additions and 17 deletions

View File

@@ -1,5 +1,8 @@
import {Module} from "@/interfaces";
import {Exercise} from "@/interfaces/exam";
import {Stat} from "@/interfaces/user";
import {uniq} from "lodash";
import {groupBySession} from "./stats";
export const MODULE_ARRAY: Module[] = ["reading", "listening", "writing", "speaking", "level"];
@@ -29,3 +32,30 @@ export const countExercises = (exercises: Exercise[]) => {
return lengthMap.reduce((accumulator, current) => accumulator + current, 0);
};
export const countFullExams = (stats: Stat[]) => {
const sessionExams = groupBySession(stats);
return Object.keys(sessionExams).filter((x) => {
const sessionStats = sessionExams[x as keyof typeof sessionExams];
const sessionModules = uniq(sessionStats.map((x) => x.module));
return (
sessionModules.includes("reading") &&
sessionModules.includes("listening") &&
sessionModules.includes("writing") &&
sessionModules.includes("speaking")
);
}).length;
};
export const countExamModules = (stats: Stat[]) => {
const sessionExams = groupBySession(stats);
const modulesPerSession = Object.keys(sessionExams).map((x) => {
const sessionStats = sessionExams[x as keyof typeof sessionExams];
const sessionModules = uniq(sessionStats.map((x) => x.module));
return sessionModules.length;
});
return modulesPerSession.reduce((acc, curr) => curr + acc, 0);
};