favorite.js 2.99 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');
const fav = require('../models/favorite');

/**
 * 收藏品牌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: '收藏失败'
        });
    }
};

const collectShop = (req, res, next) => {
    let uid = req.user.uid || '';
    let shopId = req.body.shopId;
    let isadd = req.body.isFavorite;

    // needColloect 说明刚登录状态 是cookie传的值
    if (req.body.needColloect * 1 === 1) {
        isadd = true;
    }

    if (!uid) {
        res.json({
            code: 401,
            message: '用户没有登录',
            data: {url: helpers.urlFormat('/signin')}
        });
    } else if (!shopId) {
        res.json({
            code: 400,
            message: '收藏失败'
        });
    } else {
        fav.toggleFavShop(shopId, uid, isadd).then(result => {
            res.json(result);
        }).catch(next);
    }
};

module.exports = {
    changeFavoriteBrand,
    collectProduct,
    collectShop
};