Select Git revision
api.js
-
Server (Shared Users) authoredServer (Shared Users) authored
api.js 5.52 KiB
var express = require('express');
var router = express.Router();
var uuidv1 = require('uuid/v1');
var User = require('../models/users');
var Tracking = require('../models/tracking');
var UserNode = require('../models/userNode');
var rpNode = require('../models/rpNodeData');
/*
var User = require('../models/users');
var user = new User({
name: "NodeJS Tutorialaaaaa",
token: "velopert",
uuid:"asdf"
});
user.save(function(err, user){
if(err) return console.error(err);
console.dir(user);
});
*/
console.log("aaaa")
/* POST CreateNewUser page. */
router.post('/CreateNewUser', function(req, res, next) {
var uuid = uuidv1()
console.log(uuid.toString().replace(/-/gi, ""))
var user = new User({
name: req.body.name,
aID: req.body.aID,
uuid: uuid.toString().replace(/-/gi, "")
});
user.save(function(err, user){
if(err) return console.error(err);
console.dir(user);
});
res.send({
name: req.body.name,
aID: req.body.aID,
uuid:uuid
});
});
/* Delete User page. */
router.post('/DeleteUser', function(req, res) {
aID = req.body.aID
User.deleteMany({ aID: req.body.aID }, function(err, output){
if(err) return res.status(500).json({ error: "database failure" });
// ( SINCE DELETE OPERATION IS IDEMPOTENT, NO NEED TO SPECIFY )
//if(!output.result.n) return res.status(404).json({ error: "user not found" });
//res.json({ message: "user deleted" });
res.json({message: output, res : req.body});
})
});
router.post('/findByUUID', function(req, res) {
uuid = req.body.uuid
Tracking.find({uuid:req.body.uuid}, function(err, output){
if(err) return res.status(500).json({ error: "database failure" });
// ( SINCE DELETE OPERATION IS IDEMPOTENT, NO NEED TO SPECIFY )
//if(!output.result.n) return res.status(404).json({ error: "user not found" });
//res.json({ message: "user deleted" });
res.json({message: output, res : req.body});
})
});
router.get('/findUserByUUID/:id', function(req, res, next) {
console.log("kkkk")
var userData=new Array();
var data =new Array();
var UserName = "";
var UserLocation =[];
var temp;
var rpNodeData=[];
(async () => {
try{
await User.find({uuid:req.params.id}, (err,output)=>{
//res.json(output);
//console.log(output[0].name)
UserName = output[0].name;
})
await User.find({uuid:req.params.id}, (err,output)=>{
//res.json(output);
//console.log(output[0].name)
UserName = output[0].name;
})
await UserNode.find({useruuid:req.params.id}, (err,output)=>{
//res.json(output);
//console.log("tt,",output[0].rp1)
try{
temp =[output[output.length-1].rp1,output[output.length-1].rp2,output[output.length-1].rp3];
UserLocation ={
x:output[output.length-1].x,
y:output[output.length-1].y,
r:10
}
}catch(exception){}
})
// await rpNode.find((err,output) =>{
// rpNodeData = output;
// console.log("tt",JSON.stringify(rpNodeData));
// })
for(i in temp){
console.log(i, temp[i].rpuuid)
await rpNode.find({'rpuuid': temp[i].rpuuid},(err,output)=>{
console.log(output)
if(output.length != 0)
rpNodeData.push({
rpuuid : temp[i].rpuuid,
x: output[0].x,
y: output[0].y,
r: temp[i].distance * 20
})
})
//console.log(rpNodeData,i)
}
}
catch(exception){
console.log(exception)
}
console.log(rpNodeData)
res.render('index',{title:'Express',UserName:UserName ,UserLocation: UserLocation, rpNodeData:JSON.stringify(rpNodeData)})
})();
});
router.get('/users', function(req, res, next) {
User.find((err,output) =>{
console.log(output);
res.render('users', { data: output });
})
});
router.get('/rpis', function(req, res, next) {
// User.find((err,output) =>{
// console.log(output);
// res.render('users', { data: output });
// })
Tracking.aggregate([
{
'$group': {
'_id': '$rpuuid'
}
}
],function(rr,ra){
if(ra){
console.log(ra);
res.render('rpis',{data:ra});
}
});
});
router.get('/aggregateByRPUUID/:id', function(req, res, next) {
// User.find((err,output) =>{
// console.log(output);
// res.render('users', { data: output });
// })
Tracking.findOne({rpuuid: req.params.id},(err, output) => {
console.log(output);
const lastUpdateTime = output.updateTime;
const lastUpdateTimeObject = new Date(Date(output.updateTime));
console.log(Date(lastUpdateTime));
console.log(output.distance)
Tracking.aggregate([
{
'$match': {
'rpuuid': output.rpuuid,
'updateTime': {
'$gt': lastUpdateTime - 600
},
distance: {'$lt': 1}
}
}, {
'$group': {
'_id': '$useruuid'
}
}
],function(rr,ra){
if(ra){
console.log(ra);
res.json({Date : lastUpdateTimeObject.toLocaleString('ko-KR', {
timeZone: 'Asia/Seoul'
}),count : ra.length,result: ra});
}
})
})
//res.json({});
});
router.post('/', function(req, res, next) {
console.log(req.body)
res.render('index', { title: 'Express' });
});
module.exports = router;