hotfix.js 1.54 KB
/**
 *
 * @author: jiangfeng<jeff.jiang@yoho.cn>
 * @date: 16/8/22
 */

'use strict';

const http = require('http');
const logger = global.yoho.logger;
const env = process.env.NODE_ENV || 'development';

const hotfix = {
    v1(req, res) {
        let clientType = req.body.client_type || '';
        let version = req.body.app_version || '';

        let apiFile = `http://cdn.yoho.cn/app-hotfix2/${env}/yohobuy/`;

        if (clientType.toLowerCase() === 'ios' && version) {
            apiFile += `ios/${version}/api.json?_=` + (new Date()).getTime();
        } else if (clientType.toLowerCase() === 'android' && version) {
            apiFile += `android/${version}/api.json?_=` + (new Date()).getTime();
        } else {
            return res.json({
                code: 400,
                message: 'client_type or app_version error',
                data: {}
            });
        }

        http.get(apiFile, response => {
            res.setHeader('Content-Type', 'application/json');

            if (response.statusCode === 200) {
                response.pipe(res);
            } else {
                return res.json({
                    code: 400,
                    message: 'client_type or app_version error',
                    data: {}
                });
            }

        }).on('error', err => {
            logger.error('hot fix v1 error:', err);
            return res.json({
                code: 400,
                message: 'read api file fail',
                data: {}
            });
        });
    }
};

module.exports = hotfix;