diff --git a/apps/fillForm/server/dbSetup.ts b/apps/fillForm/server/dbSetup.ts new file mode 100644 index 00000000..1b67e0ef --- /dev/null +++ b/apps/fillForm/server/dbSetup.ts @@ -0,0 +1,30 @@ +import {Tasks} from "/imports/model/tasks"; + + +export const setIndexes = () => { + Tasks.createIndex({ + "journal.lastSeen": 1, + "journal.submittedAt": 1, + "variables.assigneeSciper": 1, + "variables.phdStudentSciper": 1, + "variables.programAssistantSciper": 1, + "variables.doctoralProgramName": 1 + }, { + name: 'users listing their own tasks' + }) + + Tasks.createIndex({ + "journal.lastSeen": 1, + "variables.assigneeSciper": 1, + "journal.submittedAt": 1 + }, { + name: 'maybe admin listing all tasks' + }) + + Tasks.createIndex({ + "_id": 1, + "journal.submittedAt": 1 + }, { + name: 'to assert task for a user is not already submitted' + }) +} diff --git a/apps/fillForm/server/main.ts b/apps/fillForm/server/main.ts index bdd7de7f..b5290367 100644 --- a/apps/fillForm/server/main.ts +++ b/apps/fillForm/server/main.ts @@ -5,6 +5,7 @@ import './methods/ImportScipers' import './methods/TaskForm' import './methods/ZeebeProcessInstance' import './publish' +import {setIndexes} from "/server/dbSetup"; import WorkersClient from './zeebe_broker_connector' import { PrometheusSource } from '/server/prometheus' import Tequila from 'meteor/epfl:accounts-tequila' @@ -15,6 +16,7 @@ require("dotenv").config({path: findUpSync(".env")}) Meteor.startup(() => { + setIndexes(); // add custom methods for the devs if (Meteor.isDevelopment) {