travopti/backend/routes/regions.js

62 lines
2.4 KiB
JavaScript

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