From ce1b146ecaaf349410f446a470972e07373c9c0c Mon Sep 17 00:00:00 2001 From: joseph le Date: Fri, 29 Sep 2023 08:55:02 +0700 Subject: [PATCH] update routes --- app/Controllers/Http/LogsController.ts | 115 ++++++++++++++++ app/Controllers/Http/ValuesController.ts | 40 ++++++ config/database.ts | 1 + start/routes.ts | 160 +---------------------- 4 files changed, 161 insertions(+), 155 deletions(-) create mode 100644 app/Controllers/Http/LogsController.ts create mode 100644 app/Controllers/Http/ValuesController.ts diff --git a/app/Controllers/Http/LogsController.ts b/app/Controllers/Http/LogsController.ts new file mode 100644 index 0000000..3679852 --- /dev/null +++ b/app/Controllers/Http/LogsController.ts @@ -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) {} +} diff --git a/app/Controllers/Http/ValuesController.ts b/app/Controllers/Http/ValuesController.ts new file mode 100644 index 0000000..b25372a --- /dev/null +++ b/app/Controllers/Http/ValuesController.ts @@ -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!"); + } + } +} diff --git a/config/database.ts b/config/database.ts index 133905f..72af843 100644 --- a/config/database.ts +++ b/config/database.ts @@ -51,6 +51,7 @@ const databaseConfig: DatabaseConfig = { migrations: { naturalSort: true, }, + healthCheck: false, debug: false, }, diff --git a/start/routes.ts b/start/routes.ts index 5bd265a..cd99fe5 100644 --- a/start/routes.ts +++ b/start/routes.ts @@ -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 {