randomIdeas/backend/routes/ideas.js

78 lines
1.9 KiB
JavaScript

const express = require('express');
const router = express.Router();
const Idea = require('../models/Idea');
//get all ideas
router.get('/', async (req, res) => {
try {
const ideas = await Idea.find();
res.json({ success: true, data_base: ideas });
} catch (error) {
res.status(500).json({ success: false, error: 'Something went wrong' });
}
});
//get one idea
router.get('/:id', async (req, res) => {
try {
const idea = await Idea.findById(req.params.id);
res.json({ success: true, data_base: idea });
} catch (error) {
console.log(error);
res.status(500).json({ message: false, error: 'Something went wrong' });
}
res.json({ success: true, data_base: idea });
});
//add an idea
router.post('/', async (req, res) => {
const idea = new Idea({
text: req.body.text,
tag: req.body.tag,
username: req.body.username,
});
try {
const savedIdea = await idea.save();
res.json({ success: true, data_base: savedIdea });
} catch (error) {
res.status(500).json({ success: false, error: 'Something went wrong' });
}
});
//update idea
router.put('/:id', async (req, res) => {
try {
const updatedIdea = await Idea.findByIdAndUpdate(
req.params.id,
{
$set: {
text: req.body.text,
tag: req.body.tag,
},
},
{
new: true, //if the id doesn't exist, a new record will be created
}
);
res.json({ successs: true, data_base: updatedIdea });
} catch (error) {
console.loh(error);
res.status(500).json({ success: false, error: 'Something went wrong' });
}
});
//delete an idea
router.delete('/:id', async (req, res) => {
try {
await Idea.findByIdAndDelete(req.params.id);
res.json({ sucess: true, data: {} });
} catch (error) {
console.log(error);
res.status(500).json({ success: false, error: 'Something went wrong' });
}
});
module.exports = router;