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; };