enable disable and enable monthly grant

This commit is contained in:
Arjun Patel
2019-04-21 23:25:21 -07:00
parent 663759f56b
commit 522a35b104
3 changed files with 72 additions and 39 deletions
+40 -13
View File
@@ -150,21 +150,48 @@ exports.getGrantsByDonorId = async (req, res, next) => {
}
};
exports.deleteGrant = (req, res, next) => {
const { grant_id } = req.body;
const user = req.user;
exports.cancelMonthlyGrant = async (req, res, next) => {
const { grant_id } = req.params;
Grant.destroy({ where: { id: grant_id, donor_id: user.id } })
.then(result => {
var message = 'Already Deleted';
if (result) {
message = 'Grant Deleted';
try {
await db.sequelize.query(
`
UPDATE grants
SET monthly = 0
WHERE Id = :grant_id`,
{
type: db.sequelize.QueryTypes.UPDATE,
replacements: { grant_id }
}
);
res.status(201).json({
result,
message
return res.status(200).json({
message: 'Successfully cancelled grant monthly payments'
});
})
.catch(error => next(error));
} catch (error) {
next(error);
}
};
exports.enableMonthlyGrant = async (req, res, next) => {
const { grant_id } = req.params;
try {
await db.sequelize.query(
`
UPDATE grants
SET monthly = 1
WHERE Id = :grant_id`,
{
type: db.sequelize.QueryTypes.UPDATE,
replacements: { grant_id }
}
);
return res.status(200).json({
message: 'Successfully enabled grant monthly payments'
});
} catch (error) {
next(error);
}
};
+21 -21
View File
@@ -65,31 +65,31 @@ exports.grantCharge = async ({
};
// Delete grant's stripe plan under subscription
exports.deleteGrant = async (req, res, next) => {
const { grant_id } = req.body;
// exports.deleteGrant = async (req, res, next) => {
// const { grant_id } = req.body;
try {
const paymentPlans = await PaymentPlan.findAll({ where: { grant_id } });
// try {
// const paymentPlans = await PaymentPlan.findAll({ where: { grant_id } });
// check if there are plans for that grant
if (!paymentPlans.length) {
return res.status(400).json({
message: 'Not a valid grant'
});
} else {
const plan = paymentPlans[0];
// // check if there are plans for that grant
// if (!paymentPlans.length) {
// return res.status(400).json({
// message: 'Not a valid grant'
// });
// } else {
// const plan = paymentPlans[0];
//delete the plan/grant under the subscription for the user
await stripe.subscriptionItems.del(plan.sub_item_id);
//delete the plan from the main product 'Grants'
await stripe.plans.del(plan.plan_id);
}
// //delete the plan/grant under the subscription for the user
// await stripe.subscriptionItems.del(plan.sub_item_id);
// //delete the plan from the main product 'Grants'
// await stripe.plans.del(plan.plan_id);
// }
next();
} catch (error) {
next(error);
}
};
// next();
// } catch (error) {
// next(error);
// }
// };
// allows the org to see their stripe account with their balance and payout to their bank
exports.getExpressUILink = async (req, res, next) => {
+10 -4
View File
@@ -28,12 +28,18 @@ router.get('/grants/', checkAuth(roles.DONOR), grant.getGrantsByDonorId);
* */
router.post('/grants/', checkAuth(roles.DONOR), grant.createGrant);
// DELETE a grant of a donor
// Cancel Monthly Payment for a grant of a donor
router.delete(
'/grants/',
'/grants/monthly/:grant_id',
checkAuth(roles.DONOR),
stripe.deleteGrant,
grant.deleteGrant
grant.cancelMonthlyGrant
);
// Enable Monthly Payment for a grant of a donor
router.post(
'/grants/monthly/:grant_id',
checkAuth(roles.DONOR),
grant.enableMonthlyGrant
);
// POST to get suggested organizations to distribute to