forked from apxtri/apxtrib
95 lines
4.3 KiB
JavaScript
Executable File
95 lines
4.3 KiB
JavaScript
Executable File
// Upload de file
|
|
const express = require( 'express' );
|
|
const glob = require( 'glob' );
|
|
const path = require( 'path' );
|
|
// Classes
|
|
const Referentials = require( '../models/Referentials' );
|
|
// Middlewares
|
|
const checkHeaders = require( '../middlewares/checkHeaders' );
|
|
const isAuthenticated = require( '../middlewares/isAuthenticated' );
|
|
const hasAccessrighton = require( '../middlewares/hasAccessrighton' );
|
|
const router = express.Router();
|
|
/*
|
|
* keylist = list of key at 1st level in clientconf.json separated by _
|
|
* we use header.xworkon
|
|
* To manage AccesRight obkect referentials does not follow the same logic than other object this is why
|
|
*/
|
|
router.get( '/clientconf/:keylist', checkHeaders, isAuthenticated, ( req, res ) => {
|
|
// retourne liste info (non sensible) du tribeid inside headers.xworkon sur keylist ="key1_key2"
|
|
/*
|
|
if (req.session.header.accessrights.data[ "Alltribeid" ] && req.session.header.accessrights.data[ "Alltribeid" ].referentials.includes('R') ;
|
|
*/
|
|
console.log( `get clientconf for ${req.session.header.xworkon} on ${req.params.keylist}` )
|
|
let dataref = {}
|
|
if( req.params.keylist.split( '_' )
|
|
.length > 0 ) {
|
|
const ref = Referentials.clientconf( req.session.header.xworkon, req.params.keylist.split( '_' ) )
|
|
if( ref.status == 200 ) {
|
|
dataref = ref.payload.data;
|
|
} else {
|
|
console.log( "erreur ", ref )
|
|
}
|
|
}
|
|
console.log( 'envoie en jsonp: dataref' )
|
|
res.jsonp( dataref )
|
|
} );
|
|
router.get( '/clientconfglob', checkHeaders, isAuthenticated, ( req, res ) => {
|
|
res.jsonp( Referentials.clientconfglob()
|
|
.payload.data );
|
|
} );
|
|
router.get( '/contentlist/:source', checkHeaders, isAuthenticated,
|
|
( req, res ) => {
|
|
const payload = [];
|
|
console.log( req.params.source, `${config.tribes}/${req.session.header.xworkon}/referentials/dataManagement/${req.params.source}/*.json` )
|
|
glob.sync( `${config.tribes}/${req.session.header.xworkon}/referentials/dataManagement/${req.params.source}/*.json` )
|
|
.forEach( f => {
|
|
payload.push( path.basename( f, '.json' ) );
|
|
} )
|
|
res.json( payload );
|
|
} );
|
|
router.get( '/contentfull/:source/:idref', checkHeaders, isAuthenticated,
|
|
( req, res ) => {
|
|
//only for data and object
|
|
console.log( 'route referentials get all language' + req.params.source + '-' + req.params.idref );
|
|
const getref = Referentials.getref( true, req.params.source, req.params.idref, req.session.header.xworkon, req.session.header.xlang );
|
|
// Return any status the data if any erreur return empty object
|
|
res.jsonp( getref.payload.data );
|
|
} );
|
|
router.get( '/content/:source/:idref', checkHeaders, isAuthenticated,
|
|
( req, res ) => {
|
|
console.log( 'route referentials get ' + req.params.source + '-' + req.params.idref );
|
|
const getref = Referentials.getref( false, req.params.source, req.params.idref, req.session.header.xworkon, req.session.header.xlang );
|
|
res.jsonp( getref.payload.data );
|
|
} );
|
|
// get with no authentification
|
|
router.get( '/contentnoauth/:source/:idref', checkHeaders,
|
|
( req, res ) => {
|
|
console.log( 'route referentials get ' + req.params.source + '-' + req.params.idref );
|
|
// @TODO check access right in clientconf before sending back json file
|
|
const getref = Referentials.getref( false, req.params.source, req.params.idref, req.session.header.xworkon, req.session.header.xlang );
|
|
res.jsonp( getref.payload.data );
|
|
} );
|
|
router.get( '/lg', ( req, res ) => {
|
|
console.log( req.headers[ "accept-language" ] )
|
|
let lg = '??';
|
|
if( req.headers[ "accept-language" ] && req.headers[ "accept-language" ].split( ',' )
|
|
.length > 0 ) {
|
|
lg = req.headers[ "accept-language" ].split( ',' )[ 0 ];
|
|
}
|
|
res.json( { lg } )
|
|
} );
|
|
router.put( '/content/:source/:idref', checkHeaders, isAuthenticated, ( req, res ) => {
|
|
console.log( `route put content for ${req.params.idref} that is a ${req.params.source}` );
|
|
const putref = Referentials.putref( req.params.source, req.params.idref, req.session.header.xworkon, req.body )
|
|
return res.status( putref.status )
|
|
.send( { payload: putref.payload } )
|
|
} );
|
|
//hasAccessrighton( 'referentials', 'U' )
|
|
router.get( '/updatefull', checkHeaders, isAuthenticated, hasAccessrighton( 'referentials', 'U' ), ( req, res ) => {
|
|
console.log( `route get to force update content updatefull is accessrighton` );
|
|
const updtref = Referentials.updatefull( req.session.header.xworkon )
|
|
return res.status( updtref.status )
|
|
.send( { payload: updtref.payload } )
|
|
} );
|
|
module.exports = router;
|