HEX
Server: nginx/1.24.0
System: Linux nowruzgan 6.8.0-57-generic #59-Ubuntu SMP PREEMPT_DYNAMIC Sat Mar 15 17:40:59 UTC 2025 x86_64
User: babak (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/dev/nowruzgan/cronus-log/routes/1.0/log.js
var express = require('express');
var api = require('express').Router();

api.post('/', async (req, res) => {
  if(!req.body.type || !req.body.event) return res.status(406).end();
  let conn = await req.app.locals.pool.getConnection().catch(() => false);

  let type = conn.escape(req.body.type);
  let event = conn.escape(req.body.event);

  let cols = 'site, type, event';
  let values = `${res.locals.site.id}, ${type}, ${event}`;

  if(req.body.originator){
    cols += ', originator';
    values += ', '+conn.escape(req.body.originator);
  }

  if(req.body.origin){
    cols += ', origin';
    values += ', '+conn.escape(req.body.origin);
  }

  if(req.body.seed){
    cols += ', seed';
    values += ', '+conn.escape(req.body.seed);
  }

  if(req.body.data_s1){
    cols += ', data_s1';
    values += ', '+conn.escape(req.body.data_s1);
  }
  if(req.body.data_s2){
    cols += ', data_s2';
    values += ', '+conn.escape(req.body.data_s2);
  }
  if(req.body.data_s3){
    cols += ', data_s3';
    values += ', '+conn.escape(req.body.data_s3);
  }
  if(req.body.data_s4){
    cols += ', data_s4';
    values += ', '+conn.escape(req.body.data_s4);
  }

  if(req.body.data_n1){
    cols += ', data_n1';
    values += ', '+parseFloat(req.body.data_n1);
  }
  if(req.body.data_n2){
    cols += ', data_n2';
    values += ', '+parseFloat(req.body.data_n2);
  }
  if(req.body.data_n3){
    cols += ', data_n3';
    values += ', '+parseFloat(req.body.data_n3);
  }
  if(req.body.data_n4){
    cols += ', data_n4';
    values += ', '+parseFloat(req.body.data_n4);
  }

  cols += ', occurrence';
  let occurrence = `'`+new Date().toISOString().slice(0, 19).replace('T', ' ')+`'`;
  if(req.body.occurrence)
    occurrence = conn.escape(req.body.occurrence);
  values += `, ${occurrence}`;

  let query = `insert into event_log (${cols}) values (${values});`;

  let result = await conn.query(query).catch(error => false);
  conn.release();
  res.send(!!result);
});

module.exports = api;