104 lines
2.8 KiB
JavaScript
104 lines
2.8 KiB
JavaScript
var express = require('express')
|
|
var router = express.Router()
|
|
|
|
const DB = require("./../mongoDB.js");
|
|
const Post = require("./../def/post.js");
|
|
|
|
const getUserId = function(req){
|
|
const user_sid = req.cookies.user_sid || req.query.user_sid || req.body.user_sid;
|
|
return user_sid
|
|
}
|
|
|
|
DB.getDB.then((DB)=>{
|
|
|
|
router.get("/", async (req, res) => {
|
|
let posts = await DB.getPosts();
|
|
return res.json(posts)
|
|
});
|
|
|
|
router.get("/usr/:id", async (req, res) => {
|
|
const userid = req.params.id;
|
|
const posts = await DB.getPosts(userid);
|
|
return res.json(posts)
|
|
});
|
|
|
|
router.get("/new", async (req, res) => {
|
|
let post = {
|
|
userid: getUserId(req),
|
|
content: req.query.content
|
|
}
|
|
let postObj = new Post(post);
|
|
let dbr = await DB.newPost(postObj)
|
|
post = postObj.toObj();
|
|
post._id = dbr.insertedId;
|
|
return res.json({
|
|
status: "ok",
|
|
...post
|
|
})
|
|
});
|
|
|
|
router.get("/newComment", async (req, res) => {
|
|
let userid = getUserId(req);
|
|
let postid = req.query.postid;
|
|
let content = req.query.content;
|
|
let comment = {
|
|
userid: userid,
|
|
content: content,
|
|
createdAt: new Date(),
|
|
lastUpdated: new Date(),
|
|
reactions: {}
|
|
}
|
|
console.log("comment", postid, comment);
|
|
r = await DB.newComment(postid, comment);
|
|
console.log(r)
|
|
return res.json({
|
|
status: "ok",
|
|
...comment
|
|
})
|
|
});
|
|
|
|
router.get("/react", async (req, res) => {
|
|
let userid = getUserId(req);
|
|
let postid = req.query.postid;
|
|
let reaction = {
|
|
type: "like",
|
|
createdAt: new Date()
|
|
};
|
|
console.log("reaction". postid, reaction);
|
|
r = await DB.newReaction(postid, userid, reaction);
|
|
console.log(r);
|
|
return res.json({
|
|
status: "ok"
|
|
});
|
|
})
|
|
|
|
router.get("/unreact", async (req, res) => {
|
|
let userid = getUserId(req);
|
|
let postid = req.query.postid;
|
|
r = await DB.removeReaction(postid, userid);
|
|
console.log(r)
|
|
return res.json({
|
|
status: "ok"
|
|
})
|
|
});
|
|
|
|
router.get("/comment/react", async (req, res) => {
|
|
let userid = getUserId(req);
|
|
let postid = req.query.postid;
|
|
let commentDate = new Date(req.query.commentDate);
|
|
let reaction = {
|
|
type: "like",
|
|
createdAt: new Date()
|
|
};
|
|
console.log(req.query)
|
|
console.log("comment reaction", postid, commentDate, reaction);
|
|
r = await DB.newCommentReaction(postid, commentDate, userid, reaction);
|
|
console.log(r)
|
|
return res.json({
|
|
status: "ok"
|
|
})
|
|
});
|
|
|
|
});
|
|
|
|
module.exports = router |