create(middleware) validateobjectid middleware has been added

This commit is contained in:
Yusuf İpek
2021-07-24 00:27:18 +03:00
parent 5c6643d6ea
commit 84b60d6fb3
3 changed files with 25 additions and 6 deletions
+7
View File
@@ -0,0 +1,7 @@
const mongoose = require("mongoose");
module.exports = function (req, res, next) {
if (!mongoose.Types.ObjectId.isValid(req.params.id))
return res.status(404).send("Invalid ID");
next();
};
+10
View File
@@ -98,6 +98,15 @@ const personSchema = new mongoose.Schema({
message: "Max tag size is 6!", message: "Max tag size is 6!",
}, },
}, },
createdAt: {
type: String,
maxlength: 25,
},
editedAt: {
type: Date,
default: Date.now(),
required: true,
},
}); });
const Person = mongoose.model("Person", personSchema); const Person = mongoose.model("Person", personSchema);
@@ -125,6 +134,7 @@ function validatePerson(value) {
nextcontact: Joi.string().min(3).max(50), nextcontact: Joi.string().min(3).max(50),
notes: Joi.string().min(3).max(500), notes: Joi.string().min(3).max(500),
tags: Joi.array().max(6), tags: Joi.array().max(6),
createdAt: Joi.string().max(25),
}); });
return schema.validate(value); return schema.validate(value);
} }
+8 -6
View File
@@ -1,4 +1,5 @@
const { Person, validate } = require("../models/person-model"); const { Person, validate } = require("../models/person-model");
const validateObjectId = require("../middleware/validateObjectId");
const express = require("express"); const express = require("express");
const router = express.Router(); const router = express.Router();
@@ -7,11 +8,9 @@ router.get("/", async (req, res) => {
res.send(people); res.send(people);
}); });
router.get("/:id", async (req, res) => { router.get("/:id", validateObjectId, async (req, res) => {
// validate id
const person = await Person.findById(req.params.id); const person = await Person.findById(req.params.id);
if (person.length === 0) if (!person || person.length === 0)
return res.status(404).send("Person does not exist!"); return res.status(404).send("Person does not exist!");
res.send(person); res.send(person);
@@ -43,6 +42,8 @@ router.post("/", async (req, res) => {
nextcontact, nextcontact,
notes, notes,
tags, tags,
createdAt,
editedAt,
} = req.body; } = req.body;
const person = new Person({ const person = new Person({
@@ -58,14 +59,15 @@ router.post("/", async (req, res) => {
nextcontact, nextcontact,
notes, notes,
tags, tags,
createdAt,
editedAt,
}); });
await person.save(); await person.save();
res.send(person); res.send(person);
}); });
router.put("/:id", async (req, res) => { router.put("/:id", validateObjectId, async (req, res) => {
// validate id
const person = await Person.findById(req.params.id); const person = await Person.findById(req.params.id);
if (!person) return res.status(404).send("Person does not exist!"); if (!person) return res.status(404).send("Person does not exist!");