travopti/backend/routes/regions.js
2020-06-24 11:47:15 +02:00

40 lines
1.4 KiB
JavaScript

const router = require("express").Router();
const getRegions = require("../models/getRegions.js");
const getRegionById = require("../models/getRegionById.js");
const getRegionNearbyById = require("../models/getRegionNearbyById.js")
const path = require("path");
const fs = require("fs");
const _ = require('lodash')
const sqlstring = require("sqlstring")
module.exports = dbConn => {
router.get("/api/v1/regions", async (req, res) => {
const data = await getRegions(dbConn)
if (req.query.randomize) {
const randomize = sqlstring.escape(req.query.randomize)
res.json(_.sampleSize(data, randomize))
} else {
res.json(data);
}
});
router.get("/api/v1/regions/:id", async (req, res) => {
const id = sqlstring.escape(req.params.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 = sqlstring.escape(req.params.id);
res.json(await getRegionNearbyById(dbConn,id))
});
return router;
};