39 lines
1.6 KiB
TypeScript
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");
|
|
}
|
|
};
|