search.js 1.52 KB
'use strict';

const _ = require('lodash');
const api = global.yoho.API;
const camelCase = global.yoho.camelCase;
const prettyFilter = require(`${global.utils}/beautify/filters`);
const processProductList = require(`${global.utils}/beautify/product`);

const search = {
    products(params) {
        if (params.hasOwnProperty('priceRange')) {
            params.price = params.priceRange;
            delete params.priceRange;
        }

        const data = _.merge({
            method: 'app.search.li'
        }, params);

        return api.get('', data, {
            cache: true,
            code: 200
        }).then(result => {
            result = result || {};
            if (result.data) {
                // java端不愿意将boys改为wen,所以没办法,只能在这边改了。
                if (result.data.filter) {
                    const gender = result.data.filter.gender || {};

                    for (let k in gender) {
                        if (k.indexOf('1') > -1) {
                            gender[k] = 'men';
                        } else if (k.indexOf('2') > -1) {
                            gender[k] = 'women';
                        }
                    }
                }

                prettyFilter(result.data.filter);
                result = camelCase(result);
                result.data.productList = processProductList(result.data.productList, {
                    gender: params.gender
                });
            }
            return result;
        });
    }
};

module.exports = search;