WUT_Computer_Science/Programming/EGUI/lab3/api/routes/entries.js

110 lines
2.7 KiB
JavaScript

const router = require("express").Router();
const Entry = require("../models/Entry");
const bcrypt = require('bcrypt');
//Create Entry
router.post("/", async(request, response)=>{
const newEntry = new Entry(request.body);
try{
const savedEntry = newEntry.save();
response.status(200).json(savedEntry);
return;
}catch(err){
response.status(500).json(err);
return;
}
})
//Update Entry
router.put("/:id", async(request, response)=>{
console.log("test");
const newEntry = new Entry(request.body);
try{
const entry = await Entry.findById(request.params.id);
if(entry.login === request.body.login){
try{
const updatedEntry = await Entry.findByIdAndUpdate(
request.params.id,
{
$set: request.body,
},
{ new : true }
);
response.status(200).json(updatedEntry);
return;
}catch(err){
response.status(500).json(err);
return;
}
}else{
response.status(401).json("You can not update entry that is not yours")
return;
}
}catch(err){
response.status(500).json(err);
return;
}
})
//Delete Entry
router.delete("/:id", async(request, response)=>{
console.log("test");
const newEntry = new Entry(request.body);
try{
const entry = await Entry.findById(request.params.id);
if(entry.login === request.body.login){
try{
await entry.delete();
response.status(200).json("Entry deleted");
return;
}catch(err){
response.status(500).json(err);
return;
}
}else{
response.status(401).json("You can not delete entry that is not yours")
return;
}
}catch(err){
response.status(500).json(err);
return;
}
})
//Get Entry
router.get("/:id", async (request, response) => {
try {
const entry = await Entry.findById(request.params.id);
response.status(200).json(entry);
return;
} catch (err) {
response.status(500).json(err);
return;
}
})
//Get all entries
router.get("/", async (request, response) => {
const login = request.query.login;
try {
let entries;
if(login){
entries = await Entry.find({login});
} else {
entries = await Entry.find();
}
response.status(200).json(entries);
return;
} catch (err) {
response.status(500).json(err);
return;
}
})
module.exports = router;