コード例 #1
0
ファイル: restapi.js プロジェクト: Simarchhabra/coffice
router.post('/sensor', function(req,res){
	
	var sensorDate = new Date(req.body.value_ts);
	var sensorType = req.body.sensor_id.substring( 0, req.body.sensor_id.indexOf("_"));
	var quarterHour;
	var x = parseInt(dateFormat(sensorDate, "MM"));

	
	switch(true) {
		
	case (x <= 15):
		quarterHour = '0';
		break;
	case (x <= 30):
		quarterHour = '1';
		break;
	case (x <= 45):
		quarterHour = '2';
		break;
	case (x <= 60):
		quarterHour = '3';
		break;
	}
	
	var queries = [
		{	
		  query: "insert into sensor_last (sensor_type, sensor_id, value, value_ts) values('" + 
		 sensorType + 
		  "', '" + req.body.sensor_id + "', " + req.body.value + ", '" + dateFormat(sensorDate, "isoDateTime") + "')"
	   },
		{	
	  	  query: "insert into sensor_date (sensor_id, value_date, value_ts, value) values('" + req.body.sensor_id + 
	  	"', '" + dateFormat(sensorDate, "yyyymmdd") + "', '" + dateFormat(sensorDate, "isoDateTime") + "'," + req.body.value + ")"
   		},
        {
            query: "insert into sensor_48h (sensor_id, value, value_ts) values('" +
                 req.body.sensor_id + "', " + req.body.value + ", '" + dateFormat(sensorDate, "isoDateTime") + "')"
        }
		];

		var query3  = "update event_count_date set event_count = event_count + 1 where sensor_type = '" +
		  	  sensorType + "' and event_date = '" +
		  		dateFormat(sensorDate, "yyyymmdd") + "' and event_ts = '" + dateFormat(sensorDate, "isoDateTime") + "'"

		var query4  = "update event_count_date set event_count = event_count + 1 where sensor_type = 'all' and event_date = '" +
	  			dateFormat(sensorDate, "yyyymmdd") + "' and event_ts = '" + dateFormat(sensorDate, "isoDateTime") + "'"

		var query5  = "update sensor_hour_avg set hour_count = hour_count + 1, hour_total = hour_total + " + parseInt(req.body.value * 100) +
					" where sensor_id = '" + req.body.sensor_id + "' and event_date_hour = '" + dateFormat(sensorDate, "yyyymmddHH") + "'"

		var query6  = "update sensor_type_hour_avg set hour_count = hour_count + 1, hour_total = hour_total + " + parseInt(req.body.value * 100) +
					" where sensor_id = '" + req.body.sensor_id + "' and event_date_hour = '" +
					dateFormat(sensorDate, "yyyymmddHH") + "' and sensor_type = '" + sensorType + "'"

		var query7  = "update sensor_qtr_hour_avg set qtr_hour_count = qtr_hour_count + 1, qtr_hour_total = qtr_hour_total + " + parseInt(req.body.value * 100) +
					" where sensor_id = '" + req.body.sensor_id + "' and event_date_qtr_hour = '" + dateFormat(sensorDate, "yyyymmddHH") + quarterHour + "'"

		//var query5  = "update sensor_hour_avg set hour_count = hour_count + 1, hour_total = hour_total + ? where sensor_id = ? and event_date_hour = ?"

		//var params5 = [req.body.value, req.body.sensor_id, dateFormat(sensorDate, "yyyymmddHH")];
		
	var consistency = cql.types.consistencies.quorum;
	client.executeBatch(queries, consistency, function(err) {
	  if (err) {
		  console.log(err);
		  res.send(err);
	  }
	  else {
	  }
	});
  	client.execute(query3, consistency, function(err) {
	 if (err) {
		 console.log(err);
  		  res.send(err);
  	  }
  	});
  	client.execute(query4, consistency, function(err) {
	 if (err) {
		 console.log(err);
  		  res.send("4: " + err);
  	  }
  	});
  	client.execute(query5, consistency, function(err) {
	 if (err) {
		 console.log("5: " + err);
  		  res.send(err);
  	  }
  	});
  	client.execute(query6, consistency, function(err) {
	 if (err) {
		 console.log("6: " + err);
  		  res.send(err);
  	  }
  	});
  	client.execute(query7, consistency, function(err) {
	 if (err) {
		 console.log("7: " + err);
  		  res.send(err);
  	  }
  	});
	res.send(200);
})
コード例 #2
0
      helper.runInTransaction(agent, function transactionInScope(tx) {
        var transaction = agent.getTransaction()
        t.ok(transaction, "transaction should be visible")
        t.equal(tx, transaction, 'We got the same transaction')
        var colValArr = ['Jim', 'Bob', 'Joe']
        var pkValArr = [111, 222, 333]
        var insQuery = 'INSERT INTO ' + KS + '.' + FAM + ' (' + PK + ',' +  COL
        insQuery += ') VALUES(?, ?);'

        var insArr = [
          {
            query: insQuery,
            params: [pkValArr[0], colValArr[0]]
          },
          {
            query: insQuery,
            params: [pkValArr[1], colValArr[1]]
          },
          {
            query: insQuery,
            params: [pkValArr[2], colValArr[2]]
          },
        ]

        client.executeBatch(insArr, function (error, ok) {
          if (error) return t.fail(error)

          t.ok(agent.getTransaction(), "transaction should still be visible")
          t.ok(ok, "everything should be peachy after setting")

          var selQuery = 'SELECT * FROM ' + KS + '.' + FAM + ' WHERE '
          selQuery += PK + ' = 111;'
          client.execute(selQuery, function (error, value) {
            if (error) return t.fail(error)

            t.ok(agent.getTransaction(), "transaction should still still be visible")
            t.equals(value.rows[0][COL], colValArr[0], "Cassandra client should still work")

            var trace = transaction.trace
            t.ok(trace, "trace should exist")
            t.ok(trace.root, "root element should exist")
            t.equals(trace.root.children.length, 1,
                   "there should be only one child of the root")

            var setSegment = trace.root.children[0]
            t.ok(setSegment, "trace segment for insert should exist")
            t.equals(setSegment.name, "Datastore/operation/Cassandra/executeBatch",
                   "should register the executeBatch")
            t.ok(setSegment.children.length >= 2,
                   "set should have atleast a dns lookup and callback child")
            var getSegment = setSegment.children[1].children[0]
            t.ok(getSegment, "trace segment for select should exist")
            t.equals(getSegment.name, "Datastore/operation/Cassandra/execute",
                   "should register the execute")
            t.ok(getSegment.children.length >= 1,
                   "get should have a callback segment")
            t.ok(getSegment.timer.hrDuration, "trace segment should have ended")

            transaction.end(function() {
              t.end()
            })
          })
        })
      })
コード例 #3
0
ファイル: restapi.js プロジェクト: Simarchhabra/coffice
router.post('/netsensor', function(req,res){

    var sensorDate = new Date(req.body.rssi_ts);
    var sensorType = req.body.sensor_id.substring( 0, req.body.sensor_id.indexOf("_"));
    var quarterHour;
    var x = parseInt(dateFormat(sensorDate, "MM"));


    switch(true) {

        case (x <= 15):
            quarterHour = '0';
            break;
        case (x <= 30):
            quarterHour = '1';
            break;
        case (x <= 45):
            quarterHour = '2';
            break;
        case (x <= 60):
            quarterHour = '3';
            break;
    }

    var queries = [
        {
            query: "insert into netmon_date (sensor_id, rssi_date, rssi_ts, device_id, rssi) values('" +
             req.body.sensor_id + "', '" +  dateFormat(sensorDate, "yyyymmdd") + "','" +
                dateFormat(sensorDate, "isoDateTime") + "','" + req.body.device_id +
            "'," + req.body.rssi + ")"
        },
        {
            query: "insert into netmon_last (sensor_id, device_id, rssi) values('" +
                req.body.sensor_id + "', '" +  req.body.device_id +
                "'," + req.body.rssi + ")"
        },
        {
            query: "insert into device_date (sensor_id, rssi_date, rssi_ts, device_id, rssi) values('" +
                req.body.sensor_id + "', '" +  dateFormat(sensorDate, "yyyymmdd") + "','" +
                dateFormat(sensorDate, "isoDateTime") + "','" + req.body.device_id +
                "'," + req.body.rssi + ")"
        },
        {
            query: "insert into device_last (sensor_id, device_id, rssi) values('" +
                req.body.sensor_id + "', '" +  req.body.device_id +
                "'," + req.body.rssi + ")"
        }
    ];

    var consistency = cql.types.consistencies.quorum;
    client.executeBatch(queries, consistency, function(err) {
        if (err) {
            console.log(err);
            res.send(err);
        }
        else {
        }
    });

    res.send(200);
})