UNPKG

ringcentral-personal-chatbot

Version:
88 lines (68 loc) 2.5 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.jwtAuth = exports.initApp = void 0; var _express = _interopRequireDefault(require("express")); var _bodyParser = _interopRequireDefault(require("body-parser")); var _viewIndex = _interopRequireDefault(require("./routes/view-index")); var _webhook = _interopRequireDefault(require("./routes/webhook")); var _admin = require("./routes/admin"); var _oauth = _interopRequireDefault(require("./routes/oauth")); var _logout = _interopRequireDefault(require("./routes/logout")); var _api = _interopRequireDefault(require("./routes/api")); var _morgan = _interopRequireDefault(require("morgan")); var _path = require("path"); var _expressBasicAuth = _interopRequireDefault(require("express-basic-auth")); var _jwt = require("./common/jwt"); const jwtAuth = (0, _jwt.jwtCreate)('rcp'); exports.jwtAuth = jwtAuth; const { RINGCENTRAL_CHATBOT_ADMIN_USERNAME, RINGCENTRAL_CHATBOT_ADMIN_PASSWORD, SERVER_HOME = '/' } = process.env; const auth = (0, _expressBasicAuth.default)({ users: { [RINGCENTRAL_CHATBOT_ADMIN_USERNAME]: RINGCENTRAL_CHATBOT_ADMIN_PASSWORD } }); const app = (0, _express.default)(); const staticPath = (0, _path.resolve)(__dirname, '../../dist/static'); app.use(_express.default.static(staticPath)); app.use((0, _morgan.default)('tiny')); app.use(_bodyParser.default.urlencoded({ extended: false })); app.use(_bodyParser.default.json()); app.set('views', (0, _path.resolve)(__dirname, 'views')); app.set('view engine', 'pug'); app.get('/logout', _logout.default); app.get('/test', (req, res) => res.send('server running')); app.get('/rc/oauth', _oauth.default); app.use(function (err, req, res, next) { if (err.name === 'UnauthorizedError') { res.status(401).send('invalid token...'); } else { next(); } }); app.post('/api/action', jwtAuth, _jwt.errHandler, _api.default); app.put('/admin/setup-database', auth, _admin.initDb); app.get('/admin/view-database', auth, _admin.viewDb); app.put('/admin/renew', auth, _admin.renewToken); const initApp = conf => { app.get(SERVER_HOME, (0, _viewIndex.default)(conf)); app.post('/rc/webhook', (0, _webhook.default)(conf)); for (const skill of conf.skills) { if (skill.appExtend) { skill.appExtend(app); } } if (conf.appExtend) { conf.appExtend(app); } return app; }; exports.initApp = initApp;