favorite.js 2.19 KB
/**
 * Created by TaoHuang on 2016/6/13.
 */
'use strict';

const helpers = global.yoho.helpers;
const brandService = require('../models/favorite-brand-service');
const productService = require('../models/favorite-product-service');

/**
 * 收藏品牌ajax请求
 */
const changeFavoriteBrand = (req, res, next) => {
    let uid = req.user.uid || '';
    let brandId = req.body.brandId;

    if (uid && brandId) {
        brandService.changeAsync(uid, brandId).then(result => {
            res.json(result);
        }).catch(next);
    } else if (!uid) {
        res.json({
            code: 403,
            message: '用户ID不存在',
            data: {
                url: helpers.urlFormat('/signin')
            }
        });
    } else {
        res.json({
            code: 400,
            message: '操作失败'
        });
    }
};

const collectProduct = (req, res, next) => {
    let uid = req.user.uid || '';
    let pid = req.body.productId;
    let type = req.body.type || 'add';

    if (uid && pid) {
        switch (type) {
            case 'add':
            {
                productService.createAsync(uid, pid)
                    .then(result => {
                        if (result.code === 413) {
                            result.message = '该商品已经收藏';
                        }

                        res.json(result);
                    })
                    .catch(next);
                break;
            }
            case 'cancel':
            {
                productService.deleteAsync(uid, pid)
                    .then(result => res.json(result))
                    .catch(next);
                break;
            }
            default:
            {
                res.json({
                    code: 400,
                    message: '错误类型'
                });
            }
        }
    } else if (!uid) {
        res.json({
            code: 403,
            message: '用户没有登录',
            data: {
                url: helpers.urlFormat('/signin')
            }
        });
    } else {
        res.json({
            code: 400,
            message: '收藏失败'
        });
    }
};

module.exports = {
    changeFavoriteBrand,
    collectProduct
};