From 3756f88cc71b958514378fb0f89a643a7b75ebd3 Mon Sep 17 00:00:00 2001 From: Arjun Patel Date: Fri, 12 Apr 2019 13:36:26 -0700 Subject: [PATCH] getting all the status updates route --- app/controllers/post.controller.js | 27 ++++++++++++++++++++++++--- app/routes/public.route.js | 9 ++++++++- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/app/controllers/post.controller.js b/app/controllers/post.controller.js index 89e8800..bcd28d6 100644 --- a/app/controllers/post.controller.js +++ b/app/controllers/post.controller.js @@ -4,6 +4,27 @@ const db = require('../../models'), const { Post, sequelize } = db; +// gets all posts for a charity +exports.getStatusUpdatesByOrg = async (req, res, next) => { + const { organization_id } = req.params; + + try { + const posts = await sequelize.query( + ` + SELECT * FROM posts + WHERE organization_id = :organization_id`, + { + type: db.Sequelize.QueryTypes.SELECT, + replacements: { organization_id } + } + ); + + return res.status(200).json({ posts, total: posts.length }); + } catch (error) { + next(error); + } +}; + exports.createStatusUpdate = async (req, res, next) => { const { text } = req.body; @@ -45,9 +66,9 @@ exports.addRibbon = async (req, res, next) => { } ); - return res - .status(200) - .json({ message: 'Successfully added ribbon to post!' }); + return res.status(200).json({ + message: 'Successfully added ribbon to post!' + }); } catch (error) { next(error); } diff --git a/app/routes/public.route.js b/app/routes/public.route.js index 81d21bf..2b3ed5e 100644 --- a/app/routes/public.route.js +++ b/app/routes/public.route.js @@ -6,7 +6,8 @@ const { cause, region, organization, - user + user, + post } = require('../controllers'); // Retrieve all causes @@ -21,6 +22,12 @@ router.get('/organizations', organization.getAllOrganizations); // Retrieve organization by id router.get('/organization/:charityId', organization.getOrganizationById); +// get all posts for an organization +router.get( + '/organizations/statusupdates/:organization_id', + post.getStatusUpdatesByOrg +); + // Retrieve charities based on inputted search // TODO: fix sql injection attack router.get('/organizations/:search', organization.searchOrganizations);