search.js 1.41 KB
/**
 * 列表、搜索相关api调用
 */

'use strict';

const api = global.yoho.API;
const _ = require('lodash');

/**
 * 过滤空参数,不传给api
 * @param obj
 * @returns {*}
 * @private
 */
function _paramHanlde(obj) {
    _.keys(obj).forEach(k => {
        if (obj[k] === null || obj[k] === '') {
            _.unset(obj, k);
        }
    });

    if (obj.price) {
        let prices = obj.price.split(',');

        if (!prices[1]) {
            prices[1] = Number.MAX_SAFE_INTEGER;
            obj.price = prices.join(',');
        }
    }

    return obj;
}

const Search = {
    queryProduct(params) {

        let finalParams = {
            method: 'app.search.li',
            limit: 45
        };

        Object.assign(finalParams, _paramHanlde(params));

        return api.get('', finalParams);
    },
    queryProductOfBrand(params) {
        let finalParams = {
            method: 'app.search.brand',
            limit: 45
        };

        Object.assign(finalParams, _paramHanlde(params));

        return api.get('', finalParams);
    },
    queryNewProduct(params) {
        let finalParams = {
            method: 'app.search.newProduct',
            limit: 45
        };

        Object.assign(finalParams, _paramHanlde(params));

        return api.get('', finalParams);
    },
    queryAllSort() {
        return api.get('', {
            method: 'app.sort.get'
        });
    }
};

module.exports = Search;