import fs from 'fs'; import axios from "axios"; /* |-------------------------------------------------------------------------- | Routes |-------------------------------------------------------------------------- | | This file is dedicated for defining HTTP routes. A single file is enough | for majority of projects, however you can define routes in different | files and just make sure to import them inside this file. For example | | Define routes in following two files | ├── start/routes/cart.ts | ├── start/routes/customer.ts | | and then import them inside `start/routes.ts` as follows | | import './routes/cart' | import './routes/customer' | */ 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'; runtimeCheckLogs(Env.get("FOLDER_LOGS")); //ERP get index serial number Route.post( "/api/getIndexSerialNumber", "ErpsController.getIndexSerialNumber" ).middleware("checkToken"); Route.post("/api/getParagraph", "ErpsController.getParagraph").middleware( "checkToken" ); //Users 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 ); 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( "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", async ({ request, response }) => { let data = await KeyValue.all(); response.status(200).send(data); }); 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 }) => { // Kiểm tra xem đó có phải sự kiện bạn muốn xử lý không // if (request.headers['x-gitlab-event'] === 'push') { // // Lấy dữ liệu sự kiện từ req.body // const eventData = req.body; // // Xử lý dữ liệu sự kiện ở đây // console.log('Received push event from GitLab:'); // console.log(JSON.stringify(eventData, null, 2)); // } console.log("New event ---> ", request.header("x-gitea-event")); exec( Env.get("URL_FILE_SHELL"), (error, stdout, stderr) => { if (error) { console.error(`Error executing command: ${error}`); return; } console.log(`Command output:\n${stdout}`); } ); }); Route.get('/api/images/:filename', "ImagesController.getImage"); Route.get('/api/test', async ({ request, response }) => { await screenShot("20230915-HELEN1-Session.US2-11-3-127.0.0.1.log") const test = await uploadFileToZulip(); // setTimeout(() => { console.log(test) // }, 10000); });