Esempio n. 1
0
                order.update({ status: order.status, accept_users: order.accept_users }, function(err) {
                    if (err) return next(err);

                    if (order.type == 'request') {
                        createTransaction(order.uid, order.points * order.number, 'order/cancel', {
                            oid: order._id,
                            points: order.points,
                            number: order.number
                        })
                        .then(function () {
                            res.json({ status : 'canceled' });
                        })
                        .catch(function (err) {
                            next(err);
                        });
                    }
                    else if (order.type == 'offer') {
                        Promise.all(
                            acceptUsers.map((acceptUser) => createTransaction(acceptUser.uid, order.points, 'order/leave', {
                                oid: order._id,
                                points: order.points
                            }))
                        )
                        .then(function () {
                            res.json({ status : 'canceled' });
                        })
                        .catch(function (err) {
                            next(err);
                        });
                    }
                    else {
                        return res.json({ status : 'canceled' });
                    }
                });
Esempio n. 2
0
router.post('/:uid/balance/promotion/:promotion_code', function(req, res, next) {
    var user = res.locals.user;

    var increment = validatePromotionCode(req.params.promotion_code);
    if (increment > 0) {
        createTransaction(user._id, increment, "balance/promotion")
        .then(function (id) {
            return res.json({ increment: increment, balance: user.balance + increment });
        })
        .catch(function (err) {
            return next(err);
        });
    }
    else {
        return res.status(422).json({ error: "Invalid promotion code."});
    }
});
Esempio n. 3
0
 new Promise(function (resolve, reject) {
     if (order.type == "request") {
         createTransaction(order.uid, -delta, 'order/modify', {
             oid: order._id,
             points: order.points,
             number: order.number
         })
         .then(function () {
             resolve();
         })
         .catch(function (err) {
             if (err instanceof TransactionError) {
                 res.status(403).json({error: 'Insufficient balance.'});
                 reject();
             }
         });
     }
     else {
         resolve();
     }
 })
Esempio n. 4
0
 acceptUsers.map((acceptUser) => createTransaction(acceptUser.uid, order.points, 'order/request_complete', {
     oid: order._id,
     points: order.points
 }))
Esempio n. 5
0
 acceptUsers.map((acceptUser) => createTransaction(acceptUser.uid, order.points, 'order/leave', {
     oid: order._id,
     points: order.points
 }))