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"; runtimeCheckLogs(Env.get("FOLDER_LOGS")); // Route.get("/api/list", async () => { // const a = await LogDetectFile.all(); // return a; // }); //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?"\n\nExtra items:\n" + modelSpecialDetected.join("\n") + "\n":"\n" let issueItem = issueSpecialDetected.length>0?"\nIssue found:\n" + issueSpecialDetected.join("\n")+"\n\n":"\n"; // response.send( // "\ // \ //
"+request.params().name+"" + modelSpecial + issueItem // + // data.join("\n") + // "
\ // \ // " // ); response.status(200).send({modelSpecial:modelSpecial, issueItem:issueItem, contentFile: data.join("\n")}) } catch (error) { console.error(error); response.send("

-------------- File not found --------------

"); } }); //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(request.headers()); console.log(request.all()); console.log("first3215423"); console.log("New event ---> ", request.header("x-gitea-event")); // exec( // "/home/joseph/adonis-gitlab-webhook/gitea.sh", // (error, stdout, stderr) => { // if (error) { // console.error(`Error executing command: ${error}`); // return; // } // console.log(`Command output:\n${stdout}`); // } // ); });