device tracking
This commit is contained in:
@@ -43,6 +43,9 @@ Wwws.getwco = (wconame, ctx) => {
|
||||
//check in ctx.wcotribe if ctx.tribe_ctx.code exist in
|
||||
console.log("@todo don't forget to manage accessright to wco in Wwws");
|
||||
//check that all tpl, tpldata, ... are available for this pagename
|
||||
if (wconame=="tracker" && !fs.pathExistsSync(`../${ctx.tribe}/objects/wwws/cdn/log`)){
|
||||
fs.cpSync(`../adminapi/objects/wwws/cdn/log ../${ctx.tribe}/objects/wwws/cdn/`)
|
||||
}
|
||||
const webconf = `../${ctx.tribe}/objects/wwws/itm/${ctx.xapp}.json`;
|
||||
const webpageinit = {
|
||||
dns: [],
|
||||
@@ -77,6 +80,7 @@ Wwws.getwco = (wconame, ctx) => {
|
||||
ref: {},
|
||||
schema: [],
|
||||
tpldata: {},
|
||||
wco:{}
|
||||
};
|
||||
const wcoinfo = fs.readJSONSync(wcoconf);
|
||||
const webpage = fs.existsSync(webconf)
|
||||
|
@@ -10,7 +10,7 @@ const checkHeaders = require("../middlewares/checkHeaders.js");
|
||||
const isAuthenticated = require("../middlewares/isAuthenticated.js");
|
||||
|
||||
const conf = require(`../../../adminapi/objects/tribes/itm/adminapi.json`);
|
||||
const currentmod = "pagans";
|
||||
const currentmod = "Pagans";
|
||||
const log = conf.api.activelog.includes(currentmod);
|
||||
|
||||
const router = express.Router();
|
||||
|
@@ -3,6 +3,8 @@ const glob = require("glob");
|
||||
const fs = require("fs-extra");
|
||||
const path = require("path");
|
||||
const conf = require(`../../../adminapi/objects/tribes/itm/adminapi.json`);
|
||||
const currentmod="Trackings"
|
||||
const log = conf.api.activelog.includes(currentmod);
|
||||
const Odmdb = require("../models/Odmdb.js");
|
||||
// Middlewares
|
||||
const checkHeaders = require("../middlewares/checkHeaders");
|
||||
@@ -10,6 +12,68 @@ const isAuthenticated = require("../middlewares/isAuthenticated");
|
||||
const router = express.Router();
|
||||
|
||||
|
||||
/**
|
||||
* @api {post} adminapi/trackings/newdevice - Post new device
|
||||
* @apiName adddevice
|
||||
* @apiGroup Trackings
|
||||
* @apiDescription
|
||||
* Create a device from a xuuid wco tracker.js with information about the device. It is suppose to be a new device but if xuuid already exist then it will be update with new information
|
||||
* @apiBody {object} device see schema/adminapi/schema/device.json
|
||||
*
|
||||
* @apiError {json} objectNotfound the file does not exist
|
||||
* @apiErrorExample {json}
|
||||
* HTTP/1.1 406 Not Acceptable
|
||||
{"status":406,"ref":"Trackings","multimsg":{},"data":{body}}
|
||||
*
|
||||
* @apiSuccessExample {json} Success-create:
|
||||
* HTTP/1.1 200 OK
|
||||
* {"status":200, "ref":"Trackings", "msg":"successfullcreate", "data":{}}
|
||||
* @apiSuccessExample {json} Success-update:
|
||||
* HTTP/1.1 200 OK
|
||||
* {"status":200, "ref":"Trackings", "msg":"successfullupdate", "data":{}}
|
||||
*/
|
||||
router.post("/newdevice", checkHeaders, async (req, res) => {
|
||||
if (log) console.log(currentmod, "post new device with", req.body);
|
||||
const newdevice= {status: 200,
|
||||
ref: "Trackings",
|
||||
msg: "success",
|
||||
data: {},
|
||||
};
|
||||
const role = {
|
||||
xalias: req.session.header.xalias,
|
||||
xprofils: req.session.header.xprofils,
|
||||
};
|
||||
const devicepath=`../${req.session.header.xtribe}/objects/devices/itm/${req.session.header.xuuid}.json`;
|
||||
const device=req.body;
|
||||
device.xuuid=req.session.header.xuuid
|
||||
if (req.session.header.xalias!="anonymous"){
|
||||
device.alias=req.session.header.xalias
|
||||
}
|
||||
if (await fs.pathExists(devicepath)){
|
||||
const updatedevice=Odmdb.cud(`../${req.session.header.xtribe}/objects/devices`,"U",device,role);
|
||||
if (updatedevice.status==200){
|
||||
newdevice.msg="successfullupdate"
|
||||
}else{
|
||||
newdevice.status=updatedevice.status
|
||||
newdevice.msg=updatedevice.msg
|
||||
newdevice.data=updatedevice.data
|
||||
if (updatedevice.multimsg) newdevice.multimsg=updatedevice.multimsg
|
||||
}
|
||||
}else{
|
||||
const createdevice = Odmdb.cud(`../${req.session.header.xtribe}/objects/devices`,"C",device,role);
|
||||
console.log(createdevice)
|
||||
if (createdevice.status==200) {
|
||||
newdevice.msg="successfullcreate"
|
||||
}else{
|
||||
newdevice.status=createdevice.status
|
||||
newdevice.msg=createdevice.msg
|
||||
newdevice.data=createdevice.data
|
||||
if (createdevice.multimsg) newdevice.multimsg=createdevice.multimsg
|
||||
}
|
||||
}
|
||||
res.status(newdevice.status).json(newdevice);
|
||||
});
|
||||
|
||||
/**
|
||||
* @api {get} https://dns.xx/trk/pathtofile? - tracking system
|
||||
* @apiGroup Trackings
|
||||
@@ -26,8 +90,8 @@ const router = express.Router();
|
||||
*
|
||||
* where pathtofile is a ressource accessible from https://dns.xx/pathtofile
|
||||
* For dummy pathtofile for apxtri project, you have:<br>
|
||||
* /cdn/log/1x1.png (a 1pixel image 95 bytes )
|
||||
* /cdn/log/empty.json (an empty jason 2 bytes)
|
||||
* /cdn/trkret/1x1.png (a 1pixel image 95 bytes )
|
||||
* /cdn/trkret/empty.json (an empty jason 2 bytes)
|
||||
*
|
||||
* html usage to track a loading page or email when a picture is load
|
||||
* using apxwebapp in /src/ we got:
|
||||
@@ -35,10 +99,10 @@ const router = express.Router();
|
||||
*
|
||||
* in js action:
|
||||
*
|
||||
* <code> <a data-trksrckey="linktoblabla" href='https:..' onclick="apx.trackvisit("btnaction",1);actionfct();"></a></code>
|
||||
* <code> <a data-trksrckey="linktoblabla" href='https:..' onclick="apx.tracker.hit({srckey:"key name", anyusefull key:value});actionfct();"></a></code>
|
||||
*
|
||||
* To hit an eventlistener<br>
|
||||
* <code> axios.get("https://dns.xx/trk/cdn/empty.json?alias=anonymous&uuid=1b506f71-1bff-416c-9057-cb8b86296f60&srckey=btnregister&version=1");</code>
|
||||
* <code> axios.get("https://dns.xx/trk/cdn/trkret/empty.json?alias=anonymous&uuid=1b506f71-1bff-416c-9057-cb8b86296f60&srckey=btnregister&version=1");</code>
|
||||
*
|
||||
* If no js available (example:email or pdf document)<br>
|
||||
* <code> < img src="https://dns.xx/trk/static/img/photo.jpg?alias=anonymous&uuid=1b506f71-1bff-416c-9057-cb8b86296f60&srckey=loadpage&version=1"</code>
|
||||
@@ -69,6 +133,4 @@ const router = express.Router();
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
module.exports=router;
|
Reference in New Issue
Block a user