passport-helper.js 2.77 KB
/**
 * Created by TaoHuang on 2016/6/20.
 */
'use strict';

const Promise = require('bluebird');
const co = Promise.coroutine;
const _ = require('lodash');

const helpers = global.yoho.helpers;
const indexService = require('./index-service');

/**
 * 获得图片
 */
const getLeftBannerAsync = (resourceCode) => {
    const DEFAULT_VALUE = {
        img: 'https://img12.static.yhbimg.com/' +
        'yhb-img01/2015/12/01/07/020a0b6e7ff908d0c2bc4045b4fef42b9f.png?imageView/2/w/252/h/190',
        url: ''
    };

    return co(function* () {
        let resource = yield indexService.getResourceAsync(resourceCode);

        if (_.isEmpty(resource)) {
            return DEFAULT_VALUE;
        }

        let value = {};

        // 有点问题 // passport model 58
        value.img = helpers.image(resource[0].data[0].src, 252, 190);
        value.url = resource[0].data[0].url;

        return value;
    })();
};

/**
 * 国家数据
 */
const getCountry = () => {
    return [
        {
            areaCode: '+61',
            selected: false,
            name: '澳大利亚'
        },
        {
            areaCode: '+82',
            selected: false,
            name: '韩国'
        },
        {
            areaCode: '+1',
            selected: false,
            name: '加拿大'
        },
        {
            areaCode: '+60',
            selected: false,
            name: '马来西亚'
        },
        {
            areaCode: '+1',
            selected: false,
            name: '美国'
        },
        {
            areaCode: '+81',
            selected: false,
            name: '日本'
        },
        {
            areaCode: '+65',
            selected: false,
            name: '新加坡'
        },
        {
            areaCode: '+44',
            selected: false,
            name: '英国'
        },
        {
            areaCode: '+86',
            selected: true,
            name: '中国'
        },
        {
            areaCode: '+853',
            selected: false,
            name: '中国澳门'
        },
        {
            areaCode: '+886',
            selected: false,
            name: '中国台湾'
        },
        {
            areaCode: '+852',
            selected: false,
            name: '中国香港'
        }
    ];
};

/**
 * 验证国际手机号是否合法
 */
const isMobile = _.toNumber;

/**
 * 验证邮箱是否合法
 */
const isEmail = email => _.includes(email, '@');

/**
 * 密码是否合法
 */
const isPassword = pwd => {
    if (!pwd) {
        return false;
    }

    let pwdRegexp = /^([a-zA-Z0-9\-\+_!@\#$%\^&\*\(\)\:\;\.=\[\]\\\',\?]){6,20}$/;

    return pwdRegexp.test(_.trim(pwd));
};


module.exports = {
    validator: {
        isMobile,
        isEmail,
        isPassword
    },
    getCountry,
    getLeftBannerAsync
};