67 lines
1.6 KiB
JavaScript
67 lines
1.6 KiB
JavaScript
const express = require("express"),
|
|
router = express.Router(),
|
|
checkAuth = require("../middleware/check-auth"),
|
|
roles = require("../helpers/roles");
|
|
|
|
const {
|
|
donor,
|
|
grant,
|
|
stripe,
|
|
organization,
|
|
charge
|
|
} = require("../controllers");
|
|
|
|
// POST donor signup
|
|
router.post("/", donor.createDonor);
|
|
|
|
// GET all Donors
|
|
router.get("/", checkAuth(roles.ADMIN), donor.getAllDonors);
|
|
|
|
// GET grants with causes, regions, charities by donor_id
|
|
router.get("/grants/", checkAuth(roles.DONOR), grant.findGrantsByDonorId);
|
|
|
|
/** POST Create grants with following body:
|
|
* - List of id's of selected causes, regions, charities
|
|
* - Monthly: true or false
|
|
* - donor_id
|
|
* */
|
|
router.post("/grants/", checkAuth(roles.DONOR), grant.createGrant);
|
|
|
|
// DELETE a grant of a donor
|
|
router.delete(
|
|
"/grants/",
|
|
checkAuth(roles.DONOR),
|
|
stripe.deleteGrant,
|
|
grant.deleteGrant
|
|
);
|
|
|
|
// POST to get suggested organizations to distribute to
|
|
// running "the algorithm"
|
|
router.post(
|
|
"/organizations/",
|
|
checkAuth(roles.DONOR),
|
|
organization.findSuggestedCharities
|
|
);
|
|
|
|
// GET min and optimal amount to choose
|
|
router.get(
|
|
"/organizations/amounts",
|
|
checkAuth(roles.DONOR),
|
|
organization.findOptimalBundleAmounts
|
|
);
|
|
|
|
router.get("/dashboard", checkAuth(roles.DONOR), donor.getDashboardData);
|
|
|
|
router.get("/charges", checkAuth(roles.DONOR), charge.getAllCharges);
|
|
|
|
// // Retrieve a single Donor by Id
|
|
// router.get('/:donor_id', donor.findById);
|
|
|
|
// // Delete a Donor with Id
|
|
// router.delete('/:donor_id', donor.delete);
|
|
|
|
// // Update a Donor with Id
|
|
// router.put('/api/donors/:donor_id', donor.update);
|
|
|
|
module.exports = router;
|