63 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| const http = require('http');
 | |
| const https = require('https');
 | |
| const express = require('express');
 | |
| const hbs = require('hbs');
 | |
| const router = require('../ivis-core/server/lib/router-async').create();
 | |
| const axios = require('axios');
 | |
| const fs = require('fs');
 | |
| const path = require('path');
 | |
| 
 | |
| const clientName = 'admin';
 | |
| 
 | |
| const port = 3000;
 | |
| 
 | |
| const app = express();
 | |
| app.set('port', port);
 | |
| app.set('views', path.join(__dirname, 'views'));
 | |
| app.set('view engine', 'hbs');
 | |
| 
 | |
| const agent = new https.Agent({
 | |
|     ca: fs.readFileSync('../server/certs/ca-crt.pem'),
 | |
|     key: fs.readFileSync('../server/certs/' + clientName + '-key.pem'),
 | |
|     cert: fs.readFileSync('../server/certs/' + clientName + '-crt.pem')
 | |
| });
 | |
| 
 | |
| 
 | |
| 
 | |
| const embedDist = path.join(__dirname, '..', 'ivis-core', 'embedding', 'dist', 'ivis.js');
 | |
| app.use('/ivis.js', express.static(embedDist));
 | |
| 
 | |
| router.getAsync('/favicon.ico', async (req, res) => {
 | |
|     res.status(404).send('Not found');
 | |
| });
 | |
| 
 | |
| router.getAsync('/:mtUserId/:panelId', async (req, res) => {
 | |
|     const mtUserId = Number.parseInt(req.params.mtUserId);
 | |
|     const panelId = Number.parseInt(req.params.panelId);
 | |
| 
 | |
|     const url = `https://localhost:8445/api/mt-embedded-panel/${mtUserId}/${panelId}`;
 | |
|     const resp = await axios.get(url, { httpsAgent: agent });
 | |
|     const panelInfo = resp.data;
 | |
| 
 | |
|     res.render('panel', {
 | |
|         token: panelInfo.token,
 | |
|         panelId: panelId,
 | |
|         ivisSandboxUrlBase: panelInfo.ivisSandboxUrlBase
 | |
|     });
 | |
| });
 | |
| 
 | |
| 
 | |
| app.use(router);
 | |
| 
 | |
| 
 | |
| const server = http.createServer(app);
 | |
| 
 | |
| server.on('listening', () => {
 | |
|     console.log('Express', `WWW server listening on HTTP port ${port}`);
 | |
| });
 | |
| 
 | |
| 
 | |
| server.listen(port, '0.0.0.0');
 | |
| 
 |