Compare commits

...

2 Commits

10 changed files with 213 additions and 117 deletions

View File

@@ -5,17 +5,16 @@ meta {
} }
post { post {
url: {{url}}/lst/api/admin/users url: {{url}}/lst/api/admin/users/new
body: none body: json
auth: inherit auth: inherit
} }
body:json { body:json {
{ {
"username":"matthes01", "username":"hardin001",
"name":"blake", "email":"ryan.hardin@alpla.com",
"email":"blake.matthes@alpla.com", "password":"Alpla2025!"
"password":"nova0511"
} }
} }

View File

@@ -0,0 +1,27 @@
meta {
name: Get roles
type: http
seq: 7
}
patch {
url: {{url}}/lst/api/admin/users/:userID/grant
body: json
auth: inherit
}
params:path {
userID: 0hlO48C7Jw1J804FxrCnonKjQ2zh48R6
}
body:json {
{
"module":"siloAdjustments",
"role":"viewer"
}
}
settings {
encodeUrl: true
timeout: 0
}

View File

@@ -1,5 +1,5 @@
vars { vars {
url: https://usiow2prod.alpla.net url: http://localhost:4200
session_cookie: session_cookie:
urlv2: http://localhost:3000 urlv2: http://localhost:3000
jwtV2: jwtV2:

View File

@@ -9,6 +9,7 @@ import morgan from "morgan";
import os from "os"; import os from "os";
import { dirname, join } from "path"; import { dirname, join } from "path";
import { fileURLToPath } from "url"; import { fileURLToPath } from "url";
import { userMigrate } from "./src/internal/auth/controller/userMigrate.js";
import { schedulerManager } from "./src/internal/logistics/controller/schedulerManager.js"; import { schedulerManager } from "./src/internal/logistics/controller/schedulerManager.js";
import { printers } from "./src/internal/ocp/printers/printers.js"; import { printers } from "./src/internal/ocp/printers/printers.js";
import { setupRoutes } from "./src/internal/routerHandler/routeHandler.js"; import { setupRoutes } from "./src/internal/routerHandler/routeHandler.js";
@@ -188,6 +189,7 @@ const main = async () => {
// start up the v1listener // start up the v1listener
v1Listener(); v1Listener();
userMigrate();
}, 5 * 1000); }, 5 * 1000);
// start the server up // start the server up

View File

@@ -0,0 +1,34 @@
import { Client } from "pg";
import { auth } from "../../../pkg/auth/auth.js";
import { createLogger } from "../../../pkg/logger/logger.js";
export const userMigrate = async () => {
const log = createLogger({ module: "admin", subModule: "migrate users" });
const client = new Client({
connectionString: process.env.DATABASE_URL_V1,
});
await client.connect();
const res = await client.query(`
SELECT username, email
FROM users
`);
for (const u of res.rows) {
log.info({}, `${u.username}, being transferred`);
try {
await auth.api.signUpEmail({
body: {
username: u.username,
name: u.username,
email: u.email,
password: "Alpla2025!",
},
});
log.info({}, `${u.username}, transferred`);
} catch (e) {
log.info({}, `${u.username}, already existed`);
}
}
};

View File

@@ -53,7 +53,7 @@ router.post("/", async (req: Request, res: Response) => {
} }
if (err instanceof APIError) { if (err instanceof APIError) {
return res.status(400).json({ return res.status(200).json({
success: false, success: false,
message: err.message, message: err.message,
error: err.status, error: err.status,

View File

@@ -0,0 +1,10 @@
import { readFileSync } from "fs";
import path from "path";
import { fileURLToPath } from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
export const baseModules = async () => {
const modulePath = path.resolve(__dirname, "./modules.json");
};

View File

@@ -0,0 +1,30 @@
[
{
"name": "plantToken",
"value": "test3",
"description": "The plant token for the plant IE: test3 or usday1",
"moduleName": "system",
"roles": ["systemAdmin"]
},
{
"name": "dbServer",
"value": "usmcd1vms036",
"description": "What is the db server",
"moduleName": "system",
"roles": ["systemAdmin"]
},
{
"name": "v1Server",
"value": "localhost",
"description": "What is the port the v1app is on",
"moduleName": "system",
"roles": ["systemAdmin"]
},
{
"name": "v1Port",
"value": "3000",
"description": "What is the port the v1app is on",
"moduleName": "system",
"roles": ["systemAdmin"]
}
]

View File

@@ -1,16 +1,17 @@
import { OpenAPIHono } from "@hono/zod-openapi"; import { OpenAPIHono } from "@hono/zod-openapi";
import login from "./routes/login.js"; import login from "./routes/login.js";
import register from "./routes/register.js"; import register from "./routes/register.js";
import session from "./routes/session.js"; import session from "./routes/session.js";
import getAccess from "./routes/user/getUserRoles.js"; import getAccess from "./routes/user/getUserRoles.js";
import setAccess from "./routes/userAdmin/setUserRoles.js";
import profile from "./routes/user/profileUpdate.js"; import profile from "./routes/user/profileUpdate.js";
import { areRolesIn } from "./utils/roleCheck.js";
import createUser from "./routes/userAdmin/createUser.js"; import createUser from "./routes/userAdmin/createUser.js";
import allUsers from "./routes/userAdmin/getUsers.js";
import updateUser from "./routes/userAdmin/updateUser.js";
import allUserRoles from "./routes/userAdmin/getAllUserRoles.js"; import allUserRoles from "./routes/userAdmin/getAllUserRoles.js";
import allUsers from "./routes/userAdmin/getUsers.js";
import setAccess from "./routes/userAdmin/setUserRoles.js";
import updateUser from "./routes/userAdmin/updateUser.js";
import { massAccountCreation } from "./utils/DefaultAccountCreation.js"; import { massAccountCreation } from "./utils/DefaultAccountCreation.js";
import { areRolesIn } from "./utils/roleCheck.js";
const app = new OpenAPIHono(); const app = new OpenAPIHono();

View File

@@ -1,19 +1,19 @@
import { format } from "date-fns-tz";
import { sql } from "drizzle-orm"; import { sql } from "drizzle-orm";
import { db } from "../../../../database/dbclient.js"; import { db } from "../../../../database/dbclient.js";
import { invHistoricalData } from "../../../../database/schema/historicalINV.js"; import { invHistoricalData } from "../../../../database/schema/historicalINV.js";
import { tryCatch } from "../../../globalUtils/tryCatch.js"; import { tryCatch } from "../../../globalUtils/tryCatch.js";
import { createLog } from "../../logger/logger.js"; import { createLog } from "../../logger/logger.js";
import { query } from "../../sqlServer/prodSqlServer.js";
import { totalInvNoRn } from "../../sqlServer/querys/dataMart/totalINV.js";
import { format } from "date-fns-tz";
import { serverSettings } from "../../server/controller/settings/getSettings.js"; import { serverSettings } from "../../server/controller/settings/getSettings.js";
import { deleteHistory } from "./removeHistorical.js"; import { query } from "../../sqlServer/prodSqlServer.js";
import { activeArticle } from "../../sqlServer/querys/dataMart/article.js"; import { activeArticle } from "../../sqlServer/querys/dataMart/article.js";
import { totalInvNoRn } from "../../sqlServer/querys/dataMart/totalINV.js";
import { deleteHistory } from "./removeHistorical.js";
export const historicalInvIMmport = async () => { export const historicalInvIMmport = async () => {
const plantToken = serverSettings.filter((n) => n.name === "plantToken"); const plantToken = serverSettings.filter((n) => n.name === "plantToken");
const { data, error } = (await tryCatch( const { data, error } = (await tryCatch(
db.select().from(invHistoricalData) db.select().from(invHistoricalData),
)) as any; )) as any;
if (error) { if (error) {
@@ -21,7 +21,7 @@ export const historicalInvIMmport = async () => {
"error", "error",
"eom", "eom",
"eom", "eom",
`There was an error getting the historical data` `There was an error getting the historical data`,
); );
} }
// check if we have data already for today this way we dont duplicate anything. // check if we have data already for today this way we dont duplicate anything.
@@ -29,13 +29,13 @@ export const historicalInvIMmport = async () => {
//today.setDate(today.getDate() - 1); //today.setDate(today.getDate() - 1);
const dateCheck = data?.filter( const dateCheck = data?.filter(
(i: any) => i.histDate === format(today, "yyyy-MM-dd") (i: any) => i.histDate === format(today, "yyyy-MM-dd"),
); );
if (dateCheck.length === 0) { if (dateCheck.length === 0) {
// get the historical data from the sql // get the historical data from the sql
const { data: inv, error: invError } = (await tryCatch( const { data: inv, error: invError } = (await tryCatch(
query(totalInvNoRn, "eom historical data") query(totalInvNoRn.replace("(6, 1)", "(6)"), "eom historical data"),
)) as any; )) as any;
if (invError) { if (invError) {
@@ -43,7 +43,7 @@ export const historicalInvIMmport = async () => {
"error", "error",
"eom", "eom",
"eom", "eom",
`There was an error getting the sql data` `There was an error getting the sql data`,
); );
return; return;
} }
@@ -54,7 +54,7 @@ export const historicalInvIMmport = async () => {
} }
const { data: articles, error: avError } = (await tryCatch( const { data: articles, error: avError } = (await tryCatch(
query(activeArticle, "Get active articles") query(activeArticle, "Get active articles"),
)) as any; )) as any;
const av = articles.data.length > 0 ? articles.data : ([] as any); const av = articles.data.length > 0 ? articles.data : ([] as any);
@@ -68,11 +68,9 @@ export const historicalInvIMmport = async () => {
article: i.av, article: i.av,
articleDescription: i.Alias, articleDescription: i.Alias,
materialType: materialType:
av.filter((a: any) => a.IdArtikelvarianten === i.av) av.filter((a: any) => a.IdArtikelvarianten === i.av).length > 0
.length > 0 ? av.filter((a: any) => a.IdArtikelvarianten === i.av)[0]
? av.filter( ?.TypeOfMaterial
(a: any) => a.IdArtikelvarianten === i.av
)[0]?.TypeOfMaterial
: "Item not defined", : "Item not defined",
total_QTY: i.Total_PalletQTY, total_QTY: i.Total_PalletQTY,
avaliable_QTY: i.Avaliable_PalletQTY, avaliable_QTY: i.Avaliable_PalletQTY,
@@ -84,7 +82,7 @@ export const historicalInvIMmport = async () => {
}); });
const { data: dataImport, error: errorImport } = await tryCatch( const { data: dataImport, error: errorImport } = await tryCatch(
db.insert(invHistoricalData).values(eomImportData) db.insert(invHistoricalData).values(eomImportData),
); );
if (errorImport) { if (errorImport) {
@@ -92,18 +90,13 @@ export const historicalInvIMmport = async () => {
"error", "error",
"eom", "eom",
"eom", "eom",
`There was an error importing all the inventory data.` `There was an error importing all the inventory data.`,
); );
return; return;
} }
if (dataImport) { if (dataImport) {
createLog( createLog("info", "eom", "eom", `All data was imported succefully.`);
"info",
"eom",
"eom",
`All data was imported succefully.`
);
return; return;
} }
} else { } else {