46 lines
1.5 KiB
JavaScript
46 lines
1.5 KiB
JavaScript
const router = require("express").Router();
|
|
|
|
// Models
|
|
const getRegions = require("../models/getRegions.js");
|
|
const getRegionById = require("../models/getRegionById.js");
|
|
const getRegionNearbyById = require("../models/getRegionNearbyById.js")
|
|
|
|
// Utils
|
|
const path = require("path");
|
|
const fs = require("fs");
|
|
const _ = require('lodash')
|
|
const sqlSanitzer = require("../util/sqlstring_sanitizer.js")
|
|
|
|
module.exports = dbConn => {
|
|
router.get("/api/v1/regions", async (req, res) => {
|
|
const data = await getRegions(dbConn)
|
|
if (req.query.randomize) {
|
|
const randomize = sqlSanitzer(req.query.randomize)
|
|
res.json(_.sampleSize(data, randomize))
|
|
} else {
|
|
res.json(data);
|
|
}
|
|
});
|
|
|
|
router.get("/api/v1/regions/:id", async (req, res) => {
|
|
console.log(typeof req.params.id)
|
|
const id = sqlSanitzer(req.params.id);
|
|
console.log(id)
|
|
res.json(await getRegionById(dbConn, id))
|
|
});
|
|
|
|
router.get('/api/v1/regions/:id/image', (req, res) => {
|
|
if (fs.existsSync(path.join(__dirname, `../data/regions/images/${req.params.id}.jpg`))) {
|
|
res.sendFile(path.join(__dirname, `../data/regions/images/${req.params.id}.jpg`))
|
|
} else {
|
|
res.sendFile(path.join(__dirname, `../data/regions/images/x.png`))
|
|
}
|
|
})
|
|
|
|
router.get("/api/v1/regions/:id/nearby", async (req,res) => {
|
|
const id = sqlSanitzer(req.params.id);
|
|
res.json(await getRegionNearbyById(dbConn,id))
|
|
});
|
|
return router;
|
|
};
|