Took 46 minutes
This commit is contained in:
2023-02-03 13:55:21 +01:00
parent de1a2641f7
commit f4da186fb7
6 changed files with 234 additions and 212 deletions

View File

@ -18,6 +18,7 @@ import {ContainerHelper} from "../../ContainerHelper";
import * as os from "os";
import {promisify} from "util";
import Drink from "../../database/Drink";
import path from "path";
const exec = promisify(require('child_process').exec)
@ -57,14 +58,13 @@ router.ws('/', async (ws, req, next) => {
let i = 0;
for (let c of data) {
let container : IContainer | null = null;
let container: IContainer | null = null;
if( c.id )
{
container = await Container.findOne( {_id: c.id } );
if (c.id) {
container = await Container.findOne({_id: c.id});
}
if( !container )
if (!container)
container = new Container();
@ -80,14 +80,13 @@ router.ws('/', async (ws, req, next) => {
i++;
}
let containers : IContainer[] = await Container.find();
for( let c of containers )
{
let find = data.find( (e) => {
let containers: IContainer[] = await Container.find();
for (let c of containers) {
let find = data.find((e) => {
return c._id == e.id;
} );
if( !find )
await Container.deleteOne({_id: c._id });
});
if (!find)
await Container.deleteOne({_id: c._id});
}
break;
@ -215,8 +214,7 @@ router.ws('/', async (ws, req, next) => {
if (conf["arduino_proxy_enabled"]) {
try {
await ArduinoProxy.disconnect();
} catch( e )
{
} catch (e) {
}
try {
@ -246,7 +244,7 @@ router.ws('/', async (ws, req, next) => {
}
}
return WebSocketHandler.answerRequest(msg.data["type"] as RequestType, content);
WebSocketHandler.answerRequest(msg.data["type"] as RequestType, content);
break;
}
case RequestType.TARE: {
@ -272,7 +270,6 @@ router.ws('/', async (ws, req, next) => {
}
}
} catch (e) {
// { success: boolean, msg: string }
WebSocketHandler.answerRequest(type, {success: false, msg: e});
success = false;
for (let t of timeouts)
@ -301,45 +298,49 @@ router.ws('/', async (ws, req, next) => {
}
case RequestType.UPDATE: {
if( !iTender.internetConnection )
if (!iTender.internetConnection)
return WebSocketHandler.answerRequest(msg.data["type"] as RequestType, false);
WebSocketHandler.answerRequest(msg.data["type"] as RequestType, true);
try {
let result = await exec("/home/itender/itender/update.sh");
if( result.stderr )
let result = await exec(path.join(global.appRoot, "/update.sh"));
if (result.stderr)
await WebSocketHandler.send(new WebSocketPayload(WebSocketEvent.ERROR, "Der iTender konnte das Update nicht installieren.<br>Möglicherweise ist die Internetverbindung nicht ausreichend oder das Update enthält Fehler.<br>"));
} catch( e )
{
await WebSocketHandler.send(new WebSocketPayload(WebSocketEvent.ERROR, "Der iTender konnte das Update nicht installieren.<br>Möglicherweise ist die Internetverbindung nicht ausreichend oder das Update enthält Fehler.<br>"));
}
} catch (e ) {
console.error(e);
let error = e as {code: number, killed: boolean, cmd: string};
let msg = "";
if(error.code == 127 )
msg = "Beim Ausführen ist ein unbekanntes Problem aufgetreten.";
else if ( error.code == 1 )
msg = "Die Internetverbindung ist nicht ausreichend, um iTender zu aktualisieren.";
await WebSocketHandler.send(new WebSocketPayload(WebSocketEvent.ERROR, "Der iTender konnte das Update nicht installieren.<br><br>" + msg ));
log("Could not execute update.sh" );
}
break;
}
case RequestType.INFO: {
let nets = os.networkInterfaces();
let net = nets["wlan0"];
if(!net)
if (!net)
net = nets["wlp0s20f3"];
let ipAddr : string = "";
if( net )
for( let addr of net )
{
if( addr.family == "IPv4" && addr.address && addr.address !== "127.0.0.1" )
let ipAddr: string = "";
if (net)
for (let addr of net) {
if (addr.family == "IPv4" && addr.address && addr.address !== "127.0.0.1")
ipAddr = addr.address;
}
let packageJson = require('../../../package.json');
let wifi = (await exec("iwgetid")).stdout
let data = {
"internet": iTender.internetConnection,
"ip": ipAddr,
"network": wifi.substring(wifi.indexOf('"')+1,wifi.length-2),
"network": wifi.substring(wifi.indexOf('"') + 1, wifi.length - 2),
"uptime": (await exec("uptime -p")).stdout.substring(3),
"version": packageJson.version,
"author": "Tobias Hopp",
@ -353,8 +354,7 @@ router.ws('/', async (ws, req, next) => {
case RequestType.CLEAR_DB: {
await Drink.deleteMany({});
await Ingredient.deleteMany({});
for( let c of (await Container.find()) )
{
for (let c of (await Container.find())) {
c.content = undefined;
c.save();
}
@ -373,7 +373,6 @@ router.ws('/', async (ws, req, next) => {
}
}
});
});
module.exports = router;