feat(silo): added in charts and historical data
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import {z, createRoute, OpenAPIHono} from "@hono/zod-openapi";
|
||||
import {modules} from "../../../../../database/schema/modules.js";
|
||||
import {db} from "../../../../../database/dbclient.js";
|
||||
import { z, createRoute, OpenAPIHono } from "@hono/zod-openapi";
|
||||
import { modules } from "../../../../../database/schema/modules.js";
|
||||
import { db } from "../../../../../database/dbclient.js";
|
||||
import { desc } from "drizzle-orm";
|
||||
|
||||
// Define the request body schema
|
||||
const requestSchema = z.object({
|
||||
@@ -13,10 +14,16 @@ const requestSchema = z.object({
|
||||
// Define the response schema
|
||||
const responseSchema = z.object({
|
||||
message: z.string().optional(),
|
||||
module_id: z.string().openapi({example: "6c922c6c-7de3-4ec4-acb0-f068abdc"}).optional(),
|
||||
name: z.string().openapi({example: "Production"}).optional(),
|
||||
active: z.boolean().openapi({example: true}).optional(),
|
||||
roles: z.string().openapi({example: `["viewer","technician"]`}).optional(),
|
||||
module_id: z
|
||||
.string()
|
||||
.openapi({ example: "6c922c6c-7de3-4ec4-acb0-f068abdc" })
|
||||
.optional(),
|
||||
name: z.string().openapi({ example: "Production" }).optional(),
|
||||
active: z.boolean().openapi({ example: true }).optional(),
|
||||
roles: z
|
||||
.string()
|
||||
.openapi({ example: `["viewer","technician"]` })
|
||||
.optional(),
|
||||
});
|
||||
|
||||
const app = new OpenAPIHono();
|
||||
@@ -30,7 +37,7 @@ app.openapi(
|
||||
responses: {
|
||||
200: {
|
||||
content: {
|
||||
"application/json": {schema: responseSchema},
|
||||
"application/json": { schema: responseSchema },
|
||||
},
|
||||
description: "Response message",
|
||||
},
|
||||
@@ -40,7 +47,7 @@ app.openapi(
|
||||
//console.log("system modules");
|
||||
let module: any = [];
|
||||
try {
|
||||
module = await db.select().from(modules); // .where(eq(modules.active, true));
|
||||
module = await db.select().from(modules).orderBy(modules.name); // .where(eq(modules.active, true));
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
module = [];
|
||||
@@ -49,7 +56,7 @@ app.openapi(
|
||||
// parse the roles
|
||||
const updateModules = module.map((m: any) => {
|
||||
if (m.roles) {
|
||||
return {...m, roles: m?.roles};
|
||||
return { ...m, roles: m?.roles };
|
||||
}
|
||||
return m;
|
||||
}); //JSON.parse(module[0]?.roles);
|
||||
|
||||
@@ -47,7 +47,10 @@ app.openapi(
|
||||
//console.log("system modules");
|
||||
let module: any = [];
|
||||
try {
|
||||
module = await db.select().from(subModules); // .where(eq(modules.active, true));
|
||||
module = await db
|
||||
.select()
|
||||
.from(subModules)
|
||||
.orderBy(subModules.name); // .where(eq(modules.active, true));
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
module = [];
|
||||
|
||||
@@ -3,42 +3,69 @@
|
||||
* this will only run on a server start up
|
||||
*/
|
||||
|
||||
import {db} from "../../../../database/dbclient.js";
|
||||
import {modules} from "../../../../database/schema/modules.js";
|
||||
import {createLog} from "../../logger/logger.js";
|
||||
import { db } from "../../../../database/dbclient.js";
|
||||
import { modules } from "../../../../database/schema/modules.js";
|
||||
import { createLog } from "../../logger/logger.js";
|
||||
// "view", "technician", "supervisor","manager", "admin", "systemAdmin"
|
||||
const newModules = [
|
||||
{name: "production", active: true, roles: ["viewer", "tester", "systemAdmin"]},
|
||||
{name: "logistics", active: false, roles: ["viewer", "tester", "systemAdmin"]},
|
||||
{name: "quality", active: false, roles: ["viewer", "manager", "tester", "systemAdmin"]},
|
||||
{name: "forklift", active: false, roles: ["manager", "admin", "tester", "systemAdmin"]},
|
||||
{name: "eom", active: false, roles: ["manager", "admin", "tester", "systemAdmin"]},
|
||||
{name: "admin", active: true, roles: ["admin", "systemAdmin"]},
|
||||
{name: "ocp", active: false, roles: ["viewer", "admin", "tester", "systemAdmin"]},
|
||||
const newModules: any = [
|
||||
{
|
||||
name: "production",
|
||||
active: true,
|
||||
roles: ["viewer", "tester", "systemAdmin"],
|
||||
},
|
||||
{
|
||||
name: "logistics",
|
||||
active: false,
|
||||
roles: ["viewer", "manager", "supervisor", "tester", "systemAdmin"],
|
||||
},
|
||||
{
|
||||
name: "quality",
|
||||
active: false,
|
||||
roles: ["viewer", "manager", "tester", "systemAdmin"],
|
||||
},
|
||||
{
|
||||
name: "forklift",
|
||||
active: false,
|
||||
roles: ["manager", "admin", "tester", "systemAdmin"],
|
||||
},
|
||||
{
|
||||
name: "eom",
|
||||
active: false,
|
||||
roles: ["manager", "admin", "tester", "systemAdmin"],
|
||||
},
|
||||
{ name: "admin", active: true, roles: ["admin", "systemAdmin"] },
|
||||
{
|
||||
name: "ocp",
|
||||
active: false,
|
||||
roles: ["viewer", "admin", "tester", "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
|
||||
for (let i = 0; i < newModules.length; i++) {
|
||||
try {
|
||||
const newRole = await db
|
||||
.insert(modules)
|
||||
.values(newModules)
|
||||
.onConflictDoNothing() // this will only update the ones that are new :D
|
||||
.returning({name: modules.name});
|
||||
createLog("info", "lst", "server", "Roles were just added due to missing them on server startup");
|
||||
} catch (error) {
|
||||
createLog("error", "lst", "server", "There was an error adding new roles to the db");
|
||||
}
|
||||
.values(newModules[i])
|
||||
.onConflictDoUpdate({
|
||||
target: modules.name,
|
||||
set: { roles: newModules[i].roles },
|
||||
}) // this will only update the ones that are new :D
|
||||
.returning({ name: modules.name });
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
createLog(
|
||||
"error",
|
||||
"lst",
|
||||
"server",
|
||||
"There was an error adding new modules to the db"
|
||||
);
|
||||
}
|
||||
} catch (error) {
|
||||
createLog(
|
||||
"error",
|
||||
"lst",
|
||||
"server",
|
||||
`Error: ${JSON.stringify(error)}"There was an error getting or adding new roles"`
|
||||
);
|
||||
}
|
||||
createLog(
|
||||
"info",
|
||||
"lst",
|
||||
"server",
|
||||
"Modules were just added due to missing them on server startup"
|
||||
);
|
||||
};
|
||||
|
||||
@@ -15,7 +15,7 @@ const newSubModules = [
|
||||
link: "/siloAdjustments",
|
||||
icon: "Cylinder",
|
||||
active: false,
|
||||
roles: ["tester", "systemAdmin"],
|
||||
roles: ["technician", "supervisor", "manager", "admin", "systemAdmin"],
|
||||
subSubModule: [],
|
||||
},
|
||||
{
|
||||
@@ -38,16 +38,6 @@ const newSubModules = [
|
||||
active: false,
|
||||
subSubModule: [],
|
||||
},
|
||||
{
|
||||
name: "Ocme cycle counts",
|
||||
moduleName: "logistics",
|
||||
description: "",
|
||||
link: "#",
|
||||
icon: "Package",
|
||||
role: ["technician", "supervisor", "manager", "admin", "systemAdmin"],
|
||||
active: false,
|
||||
subSubModule: [],
|
||||
},
|
||||
{
|
||||
name: "Material Helper",
|
||||
moduleName: "logistics",
|
||||
|
||||
Reference in New Issue
Block a user