part 12 done

This commit is contained in:
QkoSad
2024-09-30 15:32:50 +03:00
parent 0a7a469d56
commit 33a5afd017
426 changed files with 46304 additions and 5 deletions
@@ -0,0 +1,19 @@
const express = require("express");
const router = express.Router();
const redis = require("../redis");
const configs = require("../util/config");
let visits = 0;
/* GET index data. */
router.get("/", async (req, res) => {
visits++;
res.send({
...configs,
visits,
});
});
module.exports = router;
@@ -0,0 +1,11 @@
const express = require("express");
const router = express.Router();
const { getAsync } = require("../redis/index");
/* GET todos listing. */
router.get("/", async (_, res) => {
const statistics = await getAsync("added_todos");
res.send(statistics);
});
module.exports = router;
@@ -0,0 +1,54 @@
const express = require("express");
const { Todo } = require("../mongo");
const router = express.Router();
const { getAsync, setAsync } = require("../redis/index");
/* GET todos listing. */
router.get("/", async (_, res) => {
const todos = await Todo.find({});
res.send(todos);
});
/* POST todo to listing. */
router.post("/", async (req, res) => {
const todo = await Todo.create({
text: req.body.text,
done: false,
});
const todoCounter = await getAsync("added_todos");
setAsync("added_todos", Number(todoCounter) + 1);
res.send(todo);
});
const singleRouter = express.Router();
const findByIdMiddleware = async (req, res, next) => {
const { id } = req.params;
req.todo = await Todo.findById(id);
if (!req.todo) return res.sendStatus(404);
next();
};
/* DELETE todo. */
singleRouter.delete("/", async (req, res) => {
await req.todo.delete();
res.sendStatus(200);
});
/* GET todo. */
singleRouter.get("/", async (req, res) => {
res.send(req.todo);
});
/* PUT todo. */
singleRouter.put("/", async (req, res) => {
const todo = await Todo.findByIdAndUpdate(req.todo._id, {
done: true,
});
res.send(todo);
});
router.use("/:id", findByIdMiddleware, singleRouter);
module.exports = router;