Files
lstV2/server/services/server/utils/moduleCheck.ts

39 lines
1.6 KiB
TypeScript

/**
* check if the modules are in and if not add them.
* this will only run on a server start up
*/
import {db} from "../../../../database/dbclient.js";
import {modules} from "../../../../database/schema/modules.js";
import {log} from "../../logger/logger.js";
// "view", "technician", "supervisor","manager", "admin", "systemAdmin"
const newModules = [
{name: "production", active: false, roles: ["viewer", "systemAdmin"]},
{name: "logistics", active: false, roles: ["viewer", "systemAdmin"]},
{name: "quality", active: false, roles: ["viewer", "manager", "systemAdmin"]},
{name: "forklift", active: false, roles: ["manager", "admin", "systemAdmin"]},
{name: "eom", active: false, roles: ["manager", "admin", "systemAdmin"]},
{name: "admin", active: false, roles: ["admin", "systemAdmin"]},
];
export const areModulesIn = async () => {
// get the roles
try {
const moduleCheck = await db.select().from(modules);
if (moduleCheck.length !== newModules.length) {
try {
const newRole = await db
.insert(modules)
.values(newModules)
.onConflictDoNothing() // this will only update the ones that are new :D
.returning({name: modules.name});
log.info(newRole, "Roles were just added due to missing them on server startup");
} catch (error) {
log.error(error, "There was an error adding new roles to the db");
}
}
} catch (error) {
log.error(error, "There was an error getting or adding new roles");
}
};