Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
var router = require("express").Router();
const { celebrate, Joi } = require("celebrate");
// Corresopnds to a GET request to /api/sample/
router.get(
"/",
celebrate({
body: Joi.object().keys({
name: Joi.string().required(),
age: Joi.number().integer(),
role: Joi.string().default("admin")
})
}),
function(req, res) {
console.log("HI");
res.send("Hello world!");
}
);
router.post(
"/signup",
celebrate({
body: Joi.object().keys({
name: Joi.string().required(),
age: Joi.number().integer(),
role: Joi.string().default("admin")
const resources = await Resource.find({});
res.json({
code: 200,
result: resources,
success: true
});
})
);
// get list of resources filtered by location radius
router.get(
"/filter",
requireVolunteerStatus,
celebrate({
query: {
radius: Joi.number(),
address: Joi.string(),
keyword: Joi.string(),
customWeights: Joi.array(),
tag: Joi.string()
}
}),
errorWrap(async (req, res) => {
const { radius, address, keyword, customWeights, tag } = req.query;
let resources = await Resource.find({});
const latlng = await resourceUtils.addressToLatLong(address);
const lat = latlng.lat;
const long = latlng.lng;
if (radius && lat && long) {
const radiusOfEarth = 3963.2; // in miles
router.put(
"/:resource_id",
requireAdminStatus,
celebrate({
body: Joi.object().keys({
companyName: Joi.string(),
contactName: Joi.string(),
contactPhone: Joi.string(),
contactEmail: Joi.string(),
description: Joi.string(),
address: Joi.string(),
location: Joi.object({
type: Joi.string().default("Point"),
coordinates: Joi.array()
.length(2)
.items(Joi.number())
}),
notes: Joi.string(),
tags: Joi.array().items(Joi.string())
}),
params: {
resource_id: Joi.objectId().required()
}
}),
errorWrap(async (req, res) => {
const data = req.body;
const resourceId = req.params.resource_id;
const resource = await Resource.findByIdAndUpdate(
resourceId,
{ $set: data },
{ new: true }