simplified backend get/remove topic function

This commit is contained in:
Leon Liang 2019-11-21 20:20:54 -05:00
parent 4e817c9647
commit 6a78d74930

View File

@ -2,23 +2,28 @@ const { admin, db } = require("../util/admin");
exports.putTopic = (req, res) => { exports.putTopic = (req, res) => {
let new_following = []; let new_following = [];
let userRef = db.doc(`/users/${req.userData.handle}`); let userRef = db.doc(`/users/${req.userData.handle}`);
userRef.get().then(doc => { userRef
new_following = doc.data().followedTopics; .get()
new_following.push(req.body.following); .then(doc => {
new_following = doc.data().followedTopics;
new_following.push(req.body.following);
// add stuff // add stuff
userRef userRef
.set({ followedTopics: new_following }, { merge: true }) .set({ followedTopics: new_following }, { merge: true })
.then(doc => { .then(doc => {
return res return res
.status(201) .status(201)
.json({ message: `Following ${req.body.following}` }); .json({ message: `Following ${req.body.following}` });
}) })
.catch(err => { .catch(err => {
return res.status(500).json({ err }); return res.status(500).json({ err });
}); });
return res.status(200).json({ message: "OK" }); return res.status(200).json({ message: "OK" });
}); })
.catch(err => {
return res.status(500).json({ err });
});
}; };
exports.getAllTopics = (req, res) => { exports.getAllTopics = (req, res) => {
@ -45,48 +50,34 @@ exports.getAllTopics = (req, res) => {
exports.deleteTopic = (req, res) => { exports.deleteTopic = (req, res) => {
let new_following = []; let new_following = [];
let userRef = db.doc(`/users/${req.userData.handle}`); let userRef = db.doc(`/users/${req.userData.handle}`);
userRef.get().then(doc => { userRef
new_following = doc.data().followedTopics; .get()
// remove username from array .then(doc => {
new_following.forEach(function(follower, index) { new_following = doc.data().followedTopics;
if (follower === `${req.body.unfollow}`) { // remove username from array
new_following.splice(index, 1); new_following.forEach(function(follower, index) {
} if (follower === `${req.body.unfollow}`) {
}); new_following.splice(index, 1);
}
// update database
userRef
.set({ followedTopics: new_following }, { merge: true })
.then(doc => {
return res
.status(202)
.json({ message: `Successfully unfollow ${req.body.unfollow}` });
})
.catch(err => {
return res.status(500).json({ err });
}); });
return res.status(200).json({ message: "ok" });
});
};
// const topic = db.doc(`/topics/${req.params.topicId}`); // update database
// topic userRef
// .get() .set({ followedTopics: new_following }, { merge: true })
// .then(doc => { .then(doc => {
// if (!doc.exists) { return res
// return res.status(404).json({ error: "Topic not found" }); .status(202)
// } else { .json({ message: `Successfully unfollow ${req.body.unfollow}` });
// return topic.delete(); })
// } .catch(err => {
// }) return res.status(500).json({ err });
// .then(() => { });
// return res.json({ message: "Topic successfully deleted!" }); return res.status(200).json({ message: "ok" });
// }) })
// .catch(err => { .catch(err => {
// console.error(err); return res.status(500).json({ err });
// return res.status(500).json({ error: "Failed to delete topic." }); });
// }); };
// };
exports.getUserTopics = (req, res) => { exports.getUserTopics = (req, res) => {
let data = []; let data = [];