update sendDeviceInfo follow model special and RAM, flash

This commit is contained in:
joseph le 2023-10-12 10:10:20 +07:00
parent ae8c0dea08
commit 2a33901778
1 changed files with 258 additions and 276 deletions

View File

@ -14,10 +14,11 @@ export const sendDeviceInfora = async () => {
const regexVersion = /sh.*? ver.*/;
const regexMemory = /(\d+)K/g;
const date = moment(Date.now()).format("YYYYMMDD");
const memDefault = (await KeyValue.all())
const allKeyValue = await KeyValue.all();
const memDefault = allKeyValue
.filter((i) => i.$attributes.key === "MEMORY_DEFAULT")
.map((obj) => obj.$attributes.value);
const listInformation = [];
let listInformation = [];
let dataFile = await LogDetectFile.all();
let html = "";
@ -38,7 +39,8 @@ export const sendDeviceInfora = async () => {
});
//Read file in listFile
await listFile.map(async (file) => {
const filePromises = listFile.map((file, index) => {
return new Promise((resolve, reject) => {
fs.readFile(
Env.get("FOLDER_LOGS") + "/" + file,
"utf8",
@ -162,7 +164,6 @@ export const sendDeviceInfora = async () => {
?.replace(/,/g, "")
.trim();
const SN = u?.split("SN:")[1]?.replace(/,/g, "").trim();
// let memory =
if (index > 0) {
if (PID !== "" && SN !== "") {
listInformation.push({
@ -173,13 +174,6 @@ export const sendDeviceInfora = async () => {
flash: "",
extra_item: "yes",
});
html += `<tr><td>${PID}</td>
<td>${VID}</td>
<td>${SN}</td>
<td></td>
<td></td>
<td>yes</td></tr>`;
}
} else {
if (PID !== "" && SN !== "") {
@ -206,7 +200,9 @@ export const sendDeviceInfora = async () => {
.filter(
(line) =>
line.includes("bytes of memory") ||
line.includes("bytes of physical memory")
line.includes(
"bytes of physical memory"
)
)
.join("<br>")
.match(regexMemory)[0]
@ -242,24 +238,6 @@ export const sendDeviceInfora = async () => {
: "",
extra_item: "no",
});
html += `<tr style='background-color:${backgroundColor}'><td>${PID}</td>
<td>${VID}</td>
<td>${SN}</td>
<td>${RAM}</td>
<td>${
flash.match(regexMemory) !== null
? (
parseInt(flash.match(regexMemory)[0]) /
1024 /
1024
).toFixed(2) +
"G (D: " +
memDefaultForPID.split(":")[2] +
")"
: ""
}</td>
<td>no</td></tr>`;
}
}
});
@ -288,13 +266,6 @@ export const sendDeviceInfora = async () => {
flash: "",
extra_item: "yes",
});
html += `<tr><td>${PID}</td>
<td>${VID}</td>
<td>${SN}</td>
<td></td>
<td></td>
<td>yes</td></tr>`;
}
} else {
if (PID !== "" && SN !== "") {
@ -306,29 +277,42 @@ export const sendDeviceInfora = async () => {
flash: "",
extra_item: "no",
});
html += `<tr style='background-color:${backgroundColor}'><td>${PID}</td>
<td>${VID}</td>
<td>${SN}</td>
<td></td>
<td></td>
<td>no</td></tr>`;
}
}
});
}
});
}
resolve(0);
}
);
});
});
setTimeout(async () => {
await Promise.all(filePromises);
if (listInformation.length > 0) {
console.log(listInformation);
let specialModel = allKeyValue
.filter((i) => i.key === "MODEL_SPECIAL")
.map((obj) => obj.$attributes.value);
listInformation = listInformation.filter(
(i) =>
i.RAM !== "" ||
i.flash !== "" ||
specialModel.filter((m) => i.PID.includes(m)).length > 0
);
listInformation.map((inf) => {
html += `<tr><td>${inf.PID}</td>
<td>${inf.VID}</td>
<td>${inf.SN}</td>
<td>${inf.RAM}</td>
<td>${inf.flash}</td>
<td>${inf.extra_item}</td></tr>`;
});
const options = {
from: "admin@apactech.io",
to: "joseph@apactech.io, ips@ipsupply.com.au",
// to: "joseph@apactech.io",
subject: "(AUTO-REPORT) SERIAL NUMBER",
html:
"<table border='1'>\
@ -348,10 +332,8 @@ export const sendDeviceInfora = async () => {
</table>",
};
transporter.sendMail(options);
await InfoDevice.createMany(listInformation);
}
}, 5000);
} catch (error) {
console.log(error);
}