valence-connect
Version:
Connect to Valence for requests coming from applications running in the Valence Portal
54 lines (46 loc) • 1.28 kB
JavaScript
/**
* Valence Router
*/
const express = require('express'),
cors = require('cors'),
corsWhiteList = ['VBASEURL'],
corsOptions = {
origin : (origin, callback) => {
if (typeof origin === 'undefined' ||
corsWhiteList.indexOf(origin) !== -1) {
callback(null, true);
} else {
callback(new Error('Not allowed by CORS'));
}
},
},
router = express.Router(),
valenceConnect = require('valence-connect'),
customers = require(global.__api + 'customers');
// Initialize Valence Connect using valence.json
//
valenceConnect.init();
// Allow Cross Origin
//
router.all('*', cors(corsOptions));
/**
* Check if the request session is authenticated
* @param {IncomingMessage} req http request
* @param {ServerResponse} res http response
* @param {callback} next continue
*/
const valenceCheck = (req, res, next) => {
valenceConnect.isAuthenticated(req, res)
.then(() => {
next();
});
};
// Always check before proceeding that the session is valid for all Valence requests
//
router.use(valenceCheck);
// Routes
//
// Example Valence Route "query customers"
//
router.all('/customers/queryAll', customers.queryAll.bind(customers));
module.exports = router;