UNPKG

3.17 kBJavaScriptView Raw
1var express = require('express');
2var router = express.Router();
3var Promise = require('bluebird');
4var AppError = require('../core/app-error');
5var middleware = require('../core/middleware');
6var ClientManager = require('../core/services/client-manager');
7var _ = require('lodash');
8var log4js = require('log4js');
9var log = log4js.getLogger("cps:index");
10
11router.get('/', (req, res, next) => {
12 res.render('index', { title: 'CodePushServer' });
13});
14
15router.get('/README.md', (req, res, next) => {
16 var MarkdownIt = require('markdown-it');
17 const path = require('path');
18 const fs = require('fs');
19 const readFile = Promise.promisify(fs.readFile);
20 const README = path.join(__dirname, '../README.md');
21 readFile(README, { encoding: 'utf8' })
22 .then(source => {
23 var md = new MarkdownIt();
24 res.send(md.render(source));
25 })
26 .catch(e=>{
27 if (e instanceof AppError.AppError) {
28 res.send(e.message);
29 } else {
30 next(e);
31 }
32 });
33});
34
35router.get('/tokens', (req, res) => {
36 res.render('tokens', { title: '获取token' });
37});
38
39router.get('/updateCheck', (req, res, next) => {
40 var deploymentKey = _.get(req, "query.deploymentKey");
41 var appVersion = _.get(req, "query.appVersion");
42 var label = _.get(req, "query.label");
43 var packageHash = _.get(req, "query.packageHash")
44 var clientUniqueId = _.get(req, "query.clientUniqueId")
45 var clientManager = new ClientManager();
46 log.debug('req.query', req.query);
47 clientManager.updateCheckFromCache(deploymentKey, appVersion, label, packageHash, clientUniqueId)
48 .then((rs) => {
49 //灰度检测
50 return clientManager.chosenMan(rs.rollout, deploymentKey, appVersion, clientUniqueId)
51 .then((data)=>{
52 if (!data) {
53 rs.isAvailable = false;
54 return rs;
55 }
56 return rs;
57 });
58 })
59 .then((rs) => {
60 delete rs.rollout;
61 res.send({"updateInfo":rs});
62 })
63 .catch((e) => {
64 if (e instanceof AppError.AppError) {
65 res.status(404).send(e.message);
66 } else {
67 next(e);
68 }
69 });
70});
71
72router.post('/reportStatus/download', (req, res) => {
73 log.debug('req.body', req.body);
74 var clientUniqueId = _.get(req, "body.clientUniqueId");
75 var label = _.get(req, "body.label");
76 var deploymentKey = _.get(req, "body.deploymentKey");
77 var clientManager = new ClientManager();
78 clientManager.reportStatusDownload(deploymentKey, label, clientUniqueId)
79 .catch((err) => {
80 if (!err instanceof AppError.AppError) {
81 console.error(err.stack)
82 }
83 });
84 res.send('OK');
85});
86
87router.post('/reportStatus/deploy', (req, res) => {
88 log.debug('req.body', req.body);
89 var clientUniqueId = _.get(req, "body.clientUniqueId");
90 var label = _.get(req, "body.label");
91 var deploymentKey = _.get(req, "body.deploymentKey");
92 var clientManager = new ClientManager();
93 clientManager.reportStatusDeploy(deploymentKey, label, clientUniqueId, req.body)
94 .catch((err) => {
95 if (!err instanceof AppError.AppError) {
96 console.error(err.stack)
97 }
98 });
99 res.send('OK');
100});
101
102router.get('/authenticated', middleware.checkToken, (req, res) => {
103 return res.send({authenticated: true});
104})
105
106module.exports = router;