update routes

This commit is contained in:
joseph le 2023-09-29 08:55:02 +07:00
parent aba12b380c
commit ce1b146eca
4 changed files with 161 additions and 155 deletions

View File

@ -0,0 +1,115 @@
import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
import Database from '@ioc:Adonis/Lucid/Database';
import KeyValue from 'App/Models/KeyValue';
import LogDetectFile from 'App/Models/LogDetectFile';
import axios from 'axios';
export default class LogsController {
public async showLog({request, response}: HttpContextContract) {
try {
// fghf
console.log(request.params().name);
let fileDetect = await LogDetectFile.findBy(
"file_name",
request.params().name
);
let logsDetect = await Database.rawQuery(
"select * from log_reports where id_file = " + fileDetect?.id_ldf
);
let modelSpecialDetected = [];
let issueSpecialDetected = [];
let listLine = logsDetect[0]
.map((obj) => obj.line)
.filter((value, index, self) => {
return self.indexOf(value) === index;
})
.sort((a, b) => a - b);
const content = await axios.get(
request.params().name.search("AUTO") !== -1
? "http://192.168.5.7:8080/AUTOlog/" + request.params().name
: "http://192.168.5.7:8080/" + request.params().name
);
let allValue = await KeyValue.all();
let listKeyValues = allValue.filter(
(i) =>
i.$original.key === "MODEL_SPECIAL" ||
i.$original.key === "CATCH_FAULTY"
);
let MODEL_SPECIAL = allValue
.filter((i) => i.$original.key === "MODEL_SPECIAL")
.map((obj) => obj.$original.value);
let listExcludeErr = allValue
.filter((i) => i.$original.key === "EXCLUDE_ERR")
.map((obj) => obj.$original.value);
let data = content.data.split("\n");
data.map((line, index) => {
data[index] = index + 1 + "|-|" + line;
listKeyValues
.map((obj) => obj.$original.value)
.map(async (value) => {
if (
line.search(value) !== -1 &&
listExcludeErr.filter((err) => line.includes(err)).length === 0
) {
data[index] =
data[index].slice(0, data[index].search(value)) +
"|-|" +
value +
"|-|" +
data[index].slice(data[index].search(value) + value.length);
// }
}
});
});
listLine.map((u) => {
if (
listExcludeErr.filter((err) => data[u - 1].includes(err)).length === 0
) {
if (MODEL_SPECIAL.filter((i) => data[u - 1].includes(i)).length > 0) {
modelSpecialDetected.push(data[u - 1]);
} else {
issueSpecialDetected.push(data[u - 1]);
}
}
});
let modelSpecial =
modelSpecialDetected.length > 0 ? modelSpecialDetected.join("\n") : "";
let issueItem =
issueSpecialDetected.length > 0 ? issueSpecialDetected.join("\n") : "";
response.status(200).send({
modelSpecial: modelSpecial,
issueItem: issueItem,
contentFile: data.join("\n"),
});
} catch (error) {
// console.error(error);
response.status(203).send("FILE NOT FOUND");
}
}
public async getAllLogDetect({request, response}: HttpContextContract) {
try {
let fileDetect = await LogDetectFile.all();
let listFiles = fileDetect.map((obj) => obj.file_name);
response.status(200).send(listFiles);
} catch (error) {
response.status(203).send("NO FILE");
}
}
public async store({}: HttpContextContract) {}
public async show({}: HttpContextContract) {}
public async edit({}: HttpContextContract) {}
public async update({}: HttpContextContract) {}
public async destroy({}: HttpContextContract) {}
}

View File

@ -0,0 +1,40 @@
import type { HttpContextContract } from "@ioc:Adonis/Core/HttpContext";
import KeyValue from "App/Models/KeyValue";
export default class ValuesController {
public async getKeyValue({ request, response }: HttpContextContract) {
let data = await KeyValue.all();
response.status(200).send(data);
}
public async create({ request, response }: HttpContextContract) {
try {
const value = await KeyValue.create({
key: request.all().key,
value: request.all().value,
model: "All",
});
response.status(200).send("ADD VALUE SUCCESS!");
} catch (error) {
response.status(500).send("ADD VALUE FAIL!");
}
}
public async store({}: HttpContextContract) {}
public async show({}: HttpContextContract) {}
public async edit({}: HttpContextContract) {}
public async update({}: HttpContextContract) {}
public async destroy({ request, response }: HttpContextContract) {
try {
const value = await KeyValue.findOrFail(request.all().id);
await value.delete();
response.status(200).send("DELETE VALUE SUCCESS!");
} catch (error) {
response.status(500).send("DELETE VALUE FAIL!");
}
}
}

View File

@ -51,6 +51,7 @@ const databaseConfig: DatabaseConfig = {
migrations: {
naturalSort: true,
},
healthCheck: false,
debug: false,
},

View File

@ -1,4 +1,3 @@
import fs from "fs";
import axios from "axios";
/*
|--------------------------------------------------------------------------
@ -21,17 +20,8 @@ import axios from "axios";
*/
import Route from "@ioc:Adonis/Core/Route";
import LogDetectFile from "App/Models/LogDetectFile";
import { runtimeCheckLogs } from "App/utils/runtimeCheckLogs";
import Env from "@ioc:Adonis/Core/Env";
import KeyValue from "App/Models/KeyValue";
import ErpsController from "App/Controllers/Http/ErpsController";
import LogReport from "App/Models/LogReport";
import Database from "@ioc:Adonis/Lucid/Database";
import { exec } from "child_process";
import ImagesController from "App/Controllers/Http/ImagesController";
import { uploadFileToZulip } from "App/utils/uploadFileZulip";
import { screenShot } from "App/utils/screenShot";
import { sendMessToZulip } from "App/utils/sendMessToZulip";
import moment from "moment";
import Product from "App/Models/Product";
@ -221,156 +211,16 @@ Route.post("/api/account/createUser", "UsersController.create");
Route.post("/api/account/checkLogin", "UsersController.checkLogin");
//Log
Route.get("/api/log/showLog/:name?", async ({ request, response }) => {
try {
// fghf
console.log(request.params().name);
let fileDetect = await LogDetectFile.findBy(
"file_name",
request.params().name
);
let logsDetect = await Database.rawQuery(
"select * from log_reports where id_file = " + fileDetect?.id_ldf
);
Route.get("/api/log/showLog/:name?", "LogsController.showLog");
let modelSpecialDetected = [];
let issueSpecialDetected = [];
let listLine = logsDetect[0]
.map((obj) => obj.line)
.filter((value, index, self) => {
return self.indexOf(value) === index;
})
.sort((a, b) => a - b);
Route.get("/api/getAllLogDetect", "LogsController.getAllLogDetect");
const content = await axios.get(
request.params().name.search("AUTO") !== -1
? "http://192.168.5.7:8080/AUTOlog/" + request.params().name
: "http://192.168.5.7:8080/" + request.params().name
);
let allValue = await KeyValue.all();
let listKeyValues = allValue.filter(
(i) =>
i.$original.key === "MODEL_SPECIAL" ||
i.$original.key === "CATCH_FAULTY"
);
let MODEL_SPECIAL = allValue
.filter((i) => i.$original.key === "MODEL_SPECIAL")
.map((obj) => obj.$original.value);
let listExcludeErr = allValue
.filter((i) => i.$original.key === "EXCLUDE_ERR")
.map((obj) => obj.$original.value);
let data = content.data.split("\n");
data.map((line, index) => {
data[index] = index + 1 + "|-|" + line;
listKeyValues
.map((obj) => obj.$original.value)
.map(async (value) => {
if (
line.search(value) !== -1 &&
listExcludeErr.filter((err) => line.includes(err)).length === 0
) {
data[index] =
data[index].slice(0, data[index].search(value)) +
"|-|" +
value +
"|-|" +
data[index].slice(data[index].search(value) + value.length);
// }
}
});
});
listLine.map((u) => {
if (
listExcludeErr.filter((err) => data[u - 1].includes(err)).length === 0
) {
if (MODEL_SPECIAL.filter((i) => data[u - 1].includes(i)).length > 0) {
modelSpecialDetected.push(data[u - 1]);
} else {
issueSpecialDetected.push(data[u - 1]);
}
}
});
let modelSpecial =
modelSpecialDetected.length > 0 ? modelSpecialDetected.join("\n") : "";
let issueItem =
issueSpecialDetected.length > 0 ? issueSpecialDetected.join("\n") : "";
response.status(200).send({
modelSpecial: modelSpecial,
issueItem: issueItem,
contentFile: data.join("\n"),
});
} catch (error) {
// console.error(error);
response.status(203).send("FILE NOT FOUND");
}
});
Route.get("/api/getAllLogDetect", async ({ request, response }) => {
try {
let fileDetect = await LogDetectFile.all();
let listFiles = fileDetect.map((obj) => obj.file_name);
response.status(200).send(listFiles);
} catch (error) {
response.status(203).send("NO FILE");
}
});
//Key-Value
Route.post("/api/getKeyValue", "ValuesController.getKeyValue");
Route.post("/api/getKeyValue", async ({ request, response }) => {
let data = await KeyValue.all();
response.status(200).send(data);
});
Route.post("/api/deleteValue", "ValuesController.destroy");
Route.post("/api/deleteValue", async ({ request, response }) => {
try {
const value = await KeyValue.findOrFail(request.all().id);
await value.delete();
response.status(200).send("DELETE VALUE SUCCESS!");
} catch (error) {
response.status(500).send("DELETE VALUE FAIL!");
}
});
Route.post("/api/addValue", async ({ request, response }) => {
try {
const value = await KeyValue.create({
key: request.all().key,
value: request.all().value,
model: "All",
});
response.status(200).send("ADD VALUE SUCCESS!");
} catch (error) {
response.status(500).send("ADD VALUE FAIL!");
}
});
Route.post("/api/gitea-webhook", ({ request, response }) => {
console.log("New event ---> ", request.header("x-gitea-event"));
exec(Env.get("URL_FILE_SHELL"), async (error, stdout, stderr) => {
if (error) {
console.error(`Error executing command: ${error}`);
return;
}
const res = await sendMessToZulip(
"private",
"joseph.le@apactech.io",
"none",
"** NEW EVENT -> " +
request.header("x-gitea-event") +
" **\n```\n" +
stdout +
"\n```"
);
console.log(res);
console.log(`Command output:\n${stdout}`);
});
});
Route.post("/api/addValue", "ValuesController.create");
Route.post("/api/backupProduct", async ({ request, response }) => {
try {