forked from apxtri/apxtri
133 lines
4.7 KiB
JavaScript
133 lines
4.7 KiB
JavaScript
const express = require("express");
|
|
const path = require("path");
|
|
|
|
// Classes
|
|
const Wwws = require("../models/Wwws.js");
|
|
// Middlewares
|
|
const checkHeaders = require("../middlewares/checkHeaders");
|
|
const isAuthenticated = require("../middlewares/isAuthenticated");
|
|
|
|
const router = express.Router();
|
|
// GET api/wwws/conf/:tribeId/:website
|
|
// if profils accessright return the nginx conf in ${conf.dirtown}/tribes/${req.param.tribeId}/www/nginx_${req.params.tribeId}_${req.params.website}.conf
|
|
router.get(
|
|
"/conf/:tribeId/:website",
|
|
checkHeaders,
|
|
isAuthenticated,
|
|
(req, res) => {
|
|
res.send(Www.configlist(req.params.tribeId));
|
|
}
|
|
);
|
|
router.post(
|
|
"/conf/:tribeId/:website",
|
|
checkHeaders,
|
|
isAuthenticated,
|
|
(req, res) => {
|
|
res.send(Wwws.create(req.params.tribeId));
|
|
}
|
|
);
|
|
|
|
|
|
/**
|
|
* @api {get} /adminapi/wwws/updatelocaldbanonymous/:tribe/:appname/:pagename/:version - Get app data model for anonymous only
|
|
* @apiGroup Wwws
|
|
* @apiName getappcontextforanonymous
|
|
* @apiDescription Get data base from backend to localstorage for anonymous (see Get app data model)
|
|
*
|
|
* @apiParams {string} tribe (adminapi,smatchit,..) to looking for
|
|
* @apiParams {string} appname agregate a full data referential to store localy
|
|
* @apiParams {string} pagename app page name
|
|
* @apiParams {interger} version the current version
|
|
*/
|
|
router.get(
|
|
"/updatelocaldbanonymous/:tribe/:appname/:pagename/:version",
|
|
checkHeaders,
|
|
(req, res) => {
|
|
console.log("pass localstorage anonymous", req.session.header.xalias);
|
|
req.session.header.xprofils = ["anonymous"];
|
|
console.log(req.session.header.xprofils);
|
|
//ajouter une detection de changement
|
|
const getlocal = Wwws.initlocaldata(
|
|
req.params.tribe,
|
|
req.params.appname,
|
|
req.params.pagename,
|
|
req.params.version,
|
|
req.session.header.xprofils,
|
|
req.session.header.xlang
|
|
);
|
|
res.status(getlocal.status).json(getlocal);
|
|
}
|
|
);
|
|
|
|
/**
|
|
* @api {get} /adminapi/wwws/updatelocaldb/:tribe/:appname/:pagename/:version - Get app data model
|
|
* @apiGroup Wwws
|
|
* @apiName getappcontext
|
|
* @apiDescription Get data base from backend to localstorage for authenticated user
|
|
*
|
|
* @apiParams {string} tribe (adminapi,smatchit,..) to looking for
|
|
* @apiParams {string} appname agregate a full data referential to store localy
|
|
* @apiParams {string} pagename app page name
|
|
* @apiParams {interger} version the current version
|
|
* @apiSuccess {object} contain new version data model for a local web app in a PWA logical in the language of the header or if no new version exist then return
|
|
* @apiSuccessExample {json} datamodelupdate
|
|
* {"status":200, "ref":"Wwws", "msg":"datamodelupdate", "data":{version,confpage,profils,schema,options,ref,tpl,tpldata}}
|
|
* @apiSuccessExample {json} datamodelnoupdate
|
|
* HTTP/1.1 200 OK
|
|
* {"status":200, "ref":"Wwws", "msg":"datamodelupdate", "data":{version,confpage,profils,schema,options,ref,tpl,tpldata}}
|
|
* @apiSuccessExample {json} pagedoesnotexist
|
|
* {status: 200,ref: "Wwws", msg: "pagedoesnotexist", data: { pagename } }
|
|
* @apiSuccessExample {json} forbidenaccess
|
|
* {status: 200,ref: "Wwws", msg: "forbidenaccess",data: { pagename, profils } }
|
|
*/
|
|
router.get(
|
|
"/updatelocaldb/:tribe/:appname/:pagename/:version",
|
|
checkHeaders, isAuthenticated,
|
|
(req, res) => {
|
|
console.log("pass localstorage", req.session.header.xalias);
|
|
console.log(req.session.header.xprofils);
|
|
//ajouter une detection de changement
|
|
const getlocal = Wwws.initlocaldata(
|
|
req.params.tribe,
|
|
req.params.appname,
|
|
req.params.pagename,
|
|
req.params.version,
|
|
req.session.header.xprofils,
|
|
req.session.header.xlang
|
|
);
|
|
res.status(getlocal.status).json(getlocal);
|
|
}
|
|
);
|
|
/**
|
|
* @api {get} /api/adminapi/wwws/buildpage/:tribe/:appname/:pagename - Create pagename
|
|
* @apiGroup Wwws
|
|
* @apiName createPagename
|
|
* @apiDescription Create a pagename from /appscreen/template/:pagename with
|
|
*
|
|
* @apiParams {string} tribe (adminapi,smatchit,..) to looking for
|
|
* @apiParams {string} appname agregate a full data referential to store localy
|
|
* @apiSuccess {object} contain cuurent version of the data model
|
|
* @apiSuccessExample {json} Success-Response:
|
|
* HTTP/1.1 200 OK
|
|
* {"status":200, "ref":"Odmdb", "msg":"datamodelversion", "data":{version}
|
|
*/
|
|
router.get("/buildpage/:tribe/:appname/:pagename", checkHeaders, (req, res) => {
|
|
console.log("pass get version localstorage");
|
|
const localdbf = `../../${req.params.tribe}/objects/wwws/itm/${req.params.appname}`;
|
|
if (!existsSync(localdbf)) {
|
|
return res
|
|
.status(404)
|
|
.json({ status: 404, ref: "Wwws", msg: "localdbnotfound", data: {} });
|
|
}
|
|
res
|
|
.status(200)
|
|
.json({
|
|
status: 200,
|
|
ref: "Wwws",
|
|
msg: "lastversion",
|
|
data: { version: fs.readJSONSync(localdbf).version },
|
|
});
|
|
});
|
|
|
|
module.exports = router;
|