feat(server): settings and module crud added in
This commit is contained in:
38
server/services/server/utils/moduleCheck.ts
Normal file
38
server/services/server/utils/moduleCheck.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
/**
|
||||
* 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");
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user