diff --git a/src/modules/api/api.ts b/src/modules/api/api.ts index a3faf5d..d8733eb 100644 --- a/src/modules/api/api.ts +++ b/src/modules/api/api.ts @@ -39,7 +39,7 @@ import { } from '../../utils/actions' import dbtools from '../../utils/dbtools' import auth from '../../middlewares/auth.middleware' -import { dataToString } from '../../utils/classes' +import { dataToString, getSubjNameWithoutYear } from '../../utils/classes' import { initWorkerPool, doALongTask, @@ -70,6 +70,7 @@ const todosFile = 'data/todos.json' const userScriptFile = 'submodules/moodle-test-userscript/stable.user.js' const rootRedirectToFile = 'data/apiRootRedirectTo' const recievedQuestionFile = 'stats/recievedQuestions' +const savedQuestionsFileName = 'savedQuestions.json' // other constants const line = '====================================================' // lol @@ -95,7 +96,6 @@ function GetApp(): ModuleType { // files in public dirs const questionDbsDir = publicDir + 'questionDbs' const dbsFile = publicDir + 'questionDbs.json' - const savedQuestionsFile = publicDir + 'savedQuestions.json' const savedQuestionsDir = publicDir + 'savedQuestions' const recivedFiles = publicDir + 'recivedfiles' const uloadFiles = publicDir + 'f' @@ -1050,7 +1050,9 @@ function GetApp(): ModuleType { } function saveQuestion(questions, subj, location, userid) { - const toWrite = { + // TODO: clear folder every now and then, check if saved questions exist + // TODO: group questions by suject + const questionsToSave = { questions: questions, subj: subj, userid: userid, @@ -1058,8 +1060,16 @@ function GetApp(): ModuleType { date: new Date(), } const fname = `${utils.GetDateString()}_${userid}_${location}.json` + const subject = getSubjNameWithoutYear(subj) + const subjPath = `${savedQuestionsDir}/${subject}` + const savedSubjQuestionsFilePath = `${subjPath}/${savedQuestionsFileName}` - const savedQuestions = utils.ReadJSON(savedQuestionsFile) + utils.CreatePath(subjPath, true) + if (!utils.FileExists(savedSubjQuestionsFilePath)) { + utils.WriteFile('[]', savedSubjQuestionsFilePath) + } + + const savedQuestions = utils.ReadJSON(savedSubjQuestionsFilePath) savedQuestions.push({ fname: fname, subj: subj, @@ -1067,9 +1077,9 @@ function GetApp(): ModuleType { location: location, date: new Date(), }) - utils.WriteFile(JSON.stringify(savedQuestions), savedQuestionsFile) + utils.WriteFile(JSON.stringify(savedQuestions), savedSubjQuestionsFilePath) - utils.WriteFile(JSON.stringify(toWrite), `${savedQuestionsDir}/${fname}`) + utils.WriteFile(JSON.stringify(questionsToSave), `${subjPath}/${fname}`) } app.post('/ask', function(req: Request, res) {