item-api.js 2.69 KB
/**
 * 商品基本信息
 * @author: yyq<yanqing.yang@yoho.cn>
 * @date: 2016/7/11
 */
'use strict';

const api = global.yoho.API;
const SingleAPI = global.yoho.SingleAPI;

/**
 * 获取商品基础数据API
 * @function getProductBaseAsync
 * @param { number } productId 商品id
 * @param { number } uid 用户uid
 * @param { number } skn 商品skn
 * @return { Object } 商品信息
 */
const getProductBaseAsync = (productId, uid, skn) => {
    let params = {
        method: 'app.product.data',
        product_id: productId
    };

    if (uid) {
        params.uid = uid;
    }

    if (skn) {
        params.product_skn = skn;
    }

    return api.get('', params, { cache: true });
};

/**
 * 获取用户商品收藏状态API
 * @function getUserIsFav
 * @param { number } uid 用户uid
 * @param { number } productId 商品id
 * @return { Object } 收藏状态
 */
const getUserIsFav = (uid, productId) => {
    return SingleAPI.get('/favorite', {
        method: 'app.favorite.isFavoriteNew',
        id: productId,
        uid: uid,
        type: 'product'
    }, { cache: true });
};

/**
 * 获取商品尺码信息API
 * @function getsizeInfoAsync
 * @param { number } skn 商品skn
 * @return { Object } 商品尺码信息
 */
const getsizeInfoAsync = (skn) => {
    return api.get('', {
        method: 'h5.product.intro',
        productskn: skn
    }, { cache: true });
};

/**
 * 获取商品材料信息API
 * @function getComfortAsync
 * @param { number } productId 商品id
 * @return { Object } 商品材料信息
 */
const getComfortAsync = productId => {
    return api.get('', {
        method: 'web.productComfort.data',
        product_id: productId
    }, {
        cache: true,
        code: 200
    });
};

/**
 * 获取商品模特试穿信息API
 * @function getProductBaseAsync
 * @param { number } skn 商品skn
 * @return { Object } 商品模特试穿信息
 */
const getModelTryAsync = skn => {
    return api.get('', {
        method: 'web.productModelTry.data',
        product_skn: skn
    }, {
        cache: true,
        code: 200
    });
};

/**
 * 获取品牌Banner API
 * @function getBrandBannerAsync
 * @param { number } brandId 品牌id
 * @return { Object } banner信息
 */
const getBrandBannerAsync = brandId => {
    return api.get('', {
        method: 'web.brand.banner',
        brand_id: brandId
    }, {
        cache: true,
        code: 200
    });
};

module.exports = {
    getProductBaseAsync, // 获取商品基本信息
    getUserIsFav, // 获取商品用户收藏信息
    getsizeInfoAsync, // 获取商品尺码信息
    getComfortAsync, // 获取商品材质信息
    getModelTryAsync, // 获取商品模特试穿信息
    getBrandBannerAsync // 获取品牌Banner信息
};