BoilerLiftUp / src / Api / Post.js
Post.js
Raw
const express = require('express');
const mongoose = require('mongoose');
const Post = require('../DB/Post')
const route = express.Router();

route.get('/:ComName', async(req,res)=>{
    const post = await Post.find({ComName: req.params.ComName}).sort({ _id: -1 })
    res.send(post)
});

route.post('/', async(req,res)=>{
    const post = req.body;
    const newPost = new Post(post)
    try {
        await newPost.save()
        res.status(200).json(newPost)
    } catch (error) {
        res.status(400).json({message: error.message})
    }
});

route.delete('/:PostID', async(req,res)=>{  
    Post.deleteOne({_id: req.params.PostID}).then(
        () => {
        res.status(200).json({
            message: 'Deleted!'
        });
        }
    ).catch(
        (error) => {
        res.status(400).json({
            message: error.message
        });
        }
    );
});

route.put('/pushlike/:PostID/:member', async(req,res)=>{  
    try{
        await Post.findOneAndUpdate(
            {_id: req.params.PostID},
            { $inc: { likes: 1} },
        );
        await Post.findOneAndUpdate(
            {_id: req.params.PostID},
            { $push: { like_users: req.params.member } }
        );
        return res.status(200).json("member added to likes")
    }
    catch(err){
        return res.status(400).json({err})
    }
});

route.put('/pulllike/:PostID/:member', async(req,res)=>{  
    try{
        await Post.findOneAndUpdate(
            {_id: req.params.PostID},
            { $inc: { likes: -1} }
        );    
        await Post.findOneAndUpdate(
            {_id: req.params.PostID},
            { $pull: { like_users: req.params.member } }
        );       
        return res.status(200).json("member removed from likes")
    }
    catch(err){
        return res.status(400).json({err})
    }
});

module.exports = route;