Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • gajesh24/cloudcomputing_act1
1 result
Show changes
Commits on Source (1)
Showing
with 57 additions and 27 deletions
File moved
File moved
File moved
File moved
File moved
File moved
const express = require('express');
const express = require("express");
const router = express.Router();
const Todo = require('../models/todo');
const Todo = require("../models/todo");
// Middleware to verify if the user is authenticated
function isAuthenticated(req, res, next) {
if (req.session.user) {
return next();
} else {
return res.status(401).json({ error: 'Unauthorized' });
return res.status(401).json({ error: "Unauthorized" });
}
}
// Route to logout
router.post('/logout', (req, res) => {
router.post("/logout", (req, res) => {
req.session.destroy((err) => {
if (err) {
console.error('Error al destruir la sesión:', err);
return res.status(500).json({ error: 'Error al cerrar sesión' });
console.error("Error al destruir la sesión:", err);
return res.status(500).json({ error: "Error al cerrar sesión" });
}
res.status(200).json({ message: 'Logout successful' });
res.status(200).json({ message: "Logout successful" });
});
});
// Route to obtain all tasks of authenticated user
router.get('/', isAuthenticated, async (req, res) => {
router.get("/", isAuthenticated, async (req, res) => {
try {
const todos = await Todo.find({ userId: req.session.user.id });
res.json(todos);
} catch (error) {
console.error(error);
res.status(500).json({ error: 'Server error' });
res.status(500).json({ error: "Server error" });
}
});
// Route to add a task
router.post('/', isAuthenticated, async (req, res) => {
router.post("/", isAuthenticated, async (req, res) => {
const { description } = req.body;
try {
const todo = new Todo({ description, userId: req.session.user.id });
await todo.save();
res.json(todo);
} catch (error) {
console.error(error);
res.status(500).json({ error: 'Server error' });
res.status(500).json({ error: "Server error" });
}
});
// Route to eliminate tasks
router.delete('/:id', isAuthenticated, async (req, res) => {
router.delete("/:id", isAuthenticated, async (req, res) => {
try {
const todo = await Todo.findById(req.params.id);
if (!todo || todo.userId.toString() !== req.session.user.id) {
return res.status(404).json({ error: 'Todo not found or unauthorized' });
return res.status(404).json({ error: "Todo not found or unauthorized" });
}
await todo.deleteOne();
await todo.deleteOne();
res.json({ success: true });
} catch (error) {
console.error(error);
res.status(500).json({ error: 'Server error' });
res.status(500).json({ error: "Server error" });
}
});
// Route to update the description of a task
router.put('/:id/description', isAuthenticated, async (req, res) => {
router.put("/:id/description", isAuthenticated, async (req, res) => {
const { description } = req.body;
try {
const todo = await Todo.findById(req.params.id);
if (!todo || todo.userId.toString() !== req.session.user.id) {
return res.status(404).json({ error: 'Todo not found or unauthorized' });
return res.status(404).json({ error: "Todo not found or unauthorized" });
}
todo.description = description;
......@@ -82,19 +81,19 @@ router.put('/:id/description', isAuthenticated, async (req, res) => {
res.json({ todo });
} catch (error) {
console.error(error);
res.status(500).json({ error: 'Server error' });
res.status(500).json({ error: "Server error" });
}
});
// Route to mark a task as completed
router.put('/:id/done', isAuthenticated, async (req, res) => {
router.put("/:id/done", isAuthenticated, async (req, res) => {
const { isDone } = req.body;
try {
const todo = await Todo.findById(req.params.id);
if (!todo || todo.userId.toString() !== req.session.user.id) {
return res.status(404).json({ error: 'Todo not found or unauthorized' });
return res.status(404).json({ error: "Todo not found or unauthorized" });
}
todo.isDone = isDone;
......@@ -103,8 +102,8 @@ router.put('/:id/done', isAuthenticated, async (req, res) => {
res.json({ todo });
} catch (error) {
console.error(error);
res.status(500).json({ error: 'Server error' });
res.status(500).json({ error: "Server error" });
}
});
module.exports = router;
\ No newline at end of file
module.exports = router;
File moved
const express = require('express');
const path = require('path');
const connectDB = require('./mongodb');
const session = require('express-session');
const express = require("express");
const path = require("path");
const connectDB = require("./mongodb");
const session = require("express-session");
const app = express();
// Middleware
app.use(express.json());
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, "public")));
// Session configuration
app.use(
session({
secret: 'session_secret',
secret: "session_secret",
resave: false,
saveUninitialized: false,
cookie: { secure: false }
cookie: { secure: false },
})
);
......@@ -23,8 +23,8 @@ app.use(
connectDB();
// Routes
app.use('/api/todos', require('./routes/todos'));
app.use('/api/users', require('./routes/users'));
app.use("/api/todos", require("./routes/todos"));
app.use("/api/users", require("./routes/users"));
// Initialize the server
const PORT = process.env.PORT || 3000;
......
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved
File moved