feat(labels): added listener for old app to push all labels to the new app
This commit is contained in:
@@ -1,12 +0,0 @@
|
||||
CREATE OR REPLACE FUNCTION notify_new_log()
|
||||
RETURNS trigger AS $$
|
||||
BEGIN
|
||||
PERFORM pg_notify('logs_channel', row_to_json(NEW)::text);
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
CREATE TRIGGER logs_notify_trigger
|
||||
AFTER INSERT ON logs
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION notify_new_log();
|
||||
28
lstV2/database/migrations/0073_bumpy_dust.sql
Normal file
28
lstV2/database/migrations/0073_bumpy_dust.sql
Normal file
@@ -0,0 +1,28 @@
|
||||
ALTER TABLE "printerData" ADD COLUMN "print_delay_override" boolean DEFAULT false;
|
||||
--> statement-breakpoint
|
||||
CREATE OR REPLACE FUNCTION notify_new_log()
|
||||
RETURNS trigger AS $$
|
||||
BEGIN
|
||||
PERFORM pg_notify('logs_channel', row_to_json(NEW)::text);
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
CREATE TRIGGER logs_notify_trigger
|
||||
AFTER INSERT ON logs
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION notify_new_log();
|
||||
|
||||
--> statement-breakpoint
|
||||
CREATE OR REPLACE FUNCTION notify_new_label()
|
||||
RETURNS trigger AS $$
|
||||
BEGIN
|
||||
PERFORM pg_notify('label_channel', row_to_json(NEW)::text);
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
CREATE TRIGGER label_notify_trigger
|
||||
AFTER INSERT ON prodlabels
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION notify_new_label();
|
||||
2259
lstV2/database/migrations/meta/0073_snapshot.json
Normal file
2259
lstV2/database/migrations/meta/0073_snapshot.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -512,6 +512,13 @@
|
||||
"when": 1757167736042,
|
||||
"tag": "0072_round_black_knight",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 73,
|
||||
"version": "7",
|
||||
"when": 1760708711258,
|
||||
"tag": "0073_bumpy_dust",
|
||||
"breakpoints": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,89 +1,88 @@
|
||||
import axios from "axios";
|
||||
import { printerData } from "../../../../../database/schema/printers.js";
|
||||
import { sql } from "drizzle-orm";
|
||||
import { db } from "../../../../../database/dbclient.js";
|
||||
import { printerData } from "../../../../../database/schema/printers.js";
|
||||
import { prodEndpointCreation } from "../../../../globalUtils/createUrl.js";
|
||||
import { tryCatch } from "../../../../globalUtils/tryCatch.js";
|
||||
import { lstAuth } from "../../../../index.js";
|
||||
import { db } from "../../../../../database/dbclient.js";
|
||||
import { createLog } from "../../../logger/logger.js";
|
||||
import { assignedPrinters } from "../../utils/checkAssignments.js";
|
||||
|
||||
export const updatePrinters = async () => {
|
||||
const currentTime = new Date(Date.now());
|
||||
const currentTime = new Date(Date.now());
|
||||
|
||||
// get the printers from prod
|
||||
let url = await prodEndpointCreation(
|
||||
"/public/v1.0/Administration/Printers"
|
||||
);
|
||||
// get the printers from prod
|
||||
let url = await prodEndpointCreation("/public/v1.0/Administration/Printers");
|
||||
|
||||
const { data: prodPrinters, error: prodError } = await tryCatch(
|
||||
axios.get(url, {
|
||||
headers: {
|
||||
Authorization: `Basic ${lstAuth}`,
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
})
|
||||
);
|
||||
const { data: prodPrinters, error: prodError } = await tryCatch(
|
||||
axios.get(url, {
|
||||
headers: {
|
||||
Authorization: `Basic ${lstAuth}`,
|
||||
"Content-Type": "application/json",
|
||||
},
|
||||
}),
|
||||
);
|
||||
|
||||
if (prodError || prodPrinters?.data.length > 10000) {
|
||||
//console.log(prodError);
|
||||
return {
|
||||
success: false,
|
||||
message: "there was an error getting the printers.",
|
||||
data: prodError,
|
||||
};
|
||||
}
|
||||
if (prodError || prodPrinters?.data.length > 10000) {
|
||||
//console.log(prodError);
|
||||
return {
|
||||
success: false,
|
||||
message: "there was an error getting the printers.",
|
||||
data: prodError,
|
||||
};
|
||||
}
|
||||
|
||||
// do the printer update into our db
|
||||
const prodPrinterInfo = prodPrinters?.data;
|
||||
// do the printer update into our db
|
||||
const prodPrinterInfo = prodPrinters?.data;
|
||||
|
||||
for (let i = 0; i < prodPrinterInfo.length; i++) {
|
||||
const printerStuff: any = {
|
||||
humanReadableId: prodPrinterInfo[i].humanReadableId,
|
||||
name: prodPrinterInfo[i].name,
|
||||
ipAddress: prodPrinterInfo[i].ipAddress,
|
||||
port: prodPrinterInfo[i].port,
|
||||
remark: prodPrinterInfo[i].remark,
|
||||
processes: prodPrinterInfo[i].processes,
|
||||
};
|
||||
const { data, error } = await tryCatch(
|
||||
db
|
||||
.insert(printerData)
|
||||
.values(printerStuff)
|
||||
.onConflictDoUpdate({
|
||||
target: printerData.humanReadableId,
|
||||
set: {
|
||||
//humanReadableId: prodPrinterInfo[i].humanReadableId,
|
||||
name: prodPrinterInfo[i].name,
|
||||
ipAddress: prodPrinterInfo[i].ipAddress,
|
||||
port: prodPrinterInfo[i].port,
|
||||
remark: prodPrinterInfo[i].remark,
|
||||
processes: prodPrinterInfo[i].processes,
|
||||
upd_date: sql`NOW()`,
|
||||
//printDelay: "90", // need to remove in a couple weeks
|
||||
},
|
||||
})
|
||||
);
|
||||
for (let i = 0; i < prodPrinterInfo.length; i++) {
|
||||
const printerStuff: any = {
|
||||
humanReadableId: prodPrinterInfo[i].humanReadableId,
|
||||
name: prodPrinterInfo[i].name,
|
||||
ipAddress: prodPrinterInfo[i].ipAddress,
|
||||
port: prodPrinterInfo[i].port,
|
||||
remark: prodPrinterInfo[i].remark,
|
||||
processes: prodPrinterInfo[i].processes,
|
||||
};
|
||||
const { data, error } = await tryCatch(
|
||||
db
|
||||
.insert(printerData)
|
||||
.values(printerStuff)
|
||||
.onConflictDoUpdate({
|
||||
target: printerData.humanReadableId,
|
||||
set: {
|
||||
//humanReadableId: prodPrinterInfo[i].humanReadableId,
|
||||
name: prodPrinterInfo[i].name,
|
||||
ipAddress: prodPrinterInfo[i].ipAddress,
|
||||
port: prodPrinterInfo[i].port,
|
||||
remark: prodPrinterInfo[i].remark,
|
||||
processes: prodPrinterInfo[i].processes,
|
||||
upd_date: sql`NOW()`,
|
||||
//printDelay: "90", // need to remove in a couple weeks
|
||||
},
|
||||
}),
|
||||
);
|
||||
|
||||
if (error) {
|
||||
createLog(
|
||||
"error",
|
||||
"lst",
|
||||
"ocp",
|
||||
`${
|
||||
prodPrinterInfo[i].name
|
||||
} encoutered and error adding/updating ${JSON.stringify(error)}`
|
||||
);
|
||||
}
|
||||
createLog(
|
||||
"debug",
|
||||
"lst",
|
||||
"ocp",
|
||||
`${prodPrinterInfo[i].name} were just added/updated.`
|
||||
);
|
||||
}
|
||||
if (error) {
|
||||
createLog(
|
||||
"error",
|
||||
"lst",
|
||||
"ocp",
|
||||
`${
|
||||
prodPrinterInfo[i].name
|
||||
} encoutered and error adding/updating ${JSON.stringify(error)}`,
|
||||
);
|
||||
continue;
|
||||
}
|
||||
createLog(
|
||||
"debug",
|
||||
"lst",
|
||||
"ocp",
|
||||
`${prodPrinterInfo[i].name} were just added/updated.`,
|
||||
);
|
||||
}
|
||||
|
||||
await assignedPrinters();
|
||||
//await assignedPrinters();
|
||||
|
||||
return { success: true, message: "Printers were just added or updated." };
|
||||
return { success: true, message: "Printers were just added or updated." };
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user