search.js 1.7 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(',');
        }
    }

    if (obj.standard) {
        let standards = obj.standard.split(',');

        obj.standard_id = standards[0];
        obj.standard_value_id = standards[1];
    }

    return obj;
}

const Search = {

    /**
     * 搜索接口调用
     * @param params
     * @returns {*}
     */
    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.li',
            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(params) {
        return api.get('', _.assign({
            method: 'web.regular.groupsort'
        }, params), {code: 200});
    }
};

module.exports = Search;