@ -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;
|
||||
|
Reference in New Issue
Block a user