116 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
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) {}
 | 
						|
}
 |