55 lines
1.9 KiB
JavaScript
55 lines
1.9 KiB
JavaScript
const express = require("express")
|
|
const router = express.Router()
|
|
const { requireAuth } = require('./../../middleware/authmiddleware')
|
|
const User = require('./../../model/user.js')
|
|
const bodyParser = require('body-parser')
|
|
|
|
router.use(bodyParser.json())
|
|
|
|
router.post("/share",requireAuth,async (req, res) => {
|
|
let { sharevalue } = req.body
|
|
if (!sharevalue || typeof sharevalue !== 'string'){
|
|
return res.json({status: "error", error: "Share value not sent!"})
|
|
}
|
|
if (sharevalue.length > 100){
|
|
return res.json({status: "error", error: "Share value too long!"})
|
|
}
|
|
const date = new Date().getTime()
|
|
if (date - req.userdocument?.lastfeedsharetime < 3600000){
|
|
return res.json({status: "error", error: "You can only share once an hour!"})
|
|
}
|
|
|
|
let posterid = req.userdocument.userid
|
|
User.updateOne({userid: req.userdocument.userid}, {
|
|
$push: {
|
|
feed: {posterid, content: sharevalue, date, moderated: false}
|
|
},
|
|
$set: {
|
|
lastfeedsharetime: date
|
|
}
|
|
},
|
|
function(err, doc) {
|
|
})
|
|
res.json({status: "success", message: "Done!"}) // the next operation could take some time and we wouldn't want the client to cancel during that!!
|
|
|
|
if (req.userdocument.friends){
|
|
//console.log(req.userdocument.friends)
|
|
for (let item of req.userdocument.friends) {
|
|
User.updateOne({userid: item.userid}, {
|
|
$push: {
|
|
feed: {posterid, content: sharevalue, date, moderated: false}
|
|
}
|
|
},
|
|
function(err, doc) {
|
|
})
|
|
}
|
|
}
|
|
|
|
})
|
|
|
|
router.post("/fetch",requireAuth,async (req, res) => {
|
|
let feed = await User.findOne({userid: req.userdocument.userid}).lean().populate({path: "feed.userdata",select: ["username"]}).select('feed')
|
|
return res.json({status: "success", data: feed.feed})
|
|
})
|
|
|
|
module.exports = router |