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 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)) }); return router; };