Added Endpoints for Countries and Region/Country by ID

This commit is contained in:
Timo John 2020-06-16 10:48:54 +02:00
parent 3783684c2e
commit 6fce605add
7 changed files with 67 additions and 1 deletions

View File

@ -13,6 +13,7 @@ const port = process.env.PORT
// Router
const search = require("./routes/search");
const regions = require("./routes/regions");
const countries = require("./routes/countries");
const climate = require("./routes/climate");
const app = express();
@ -29,6 +30,7 @@ const app = express();
// Express routes
app.use(search(dbConn));
app.use(regions(dbConn));
app.use(countries(dbConn));
app.use(climate(dbConn));
app.use((err, req, res, next) => {

View File

@ -0,0 +1,11 @@
module.exports = async (dbConn) => {
const countries = await dbConn.query(
`SELECT countries.id AS country_id,
countries.country AS name,
countries.description,
countries.preview_img
FROM countries`
);
return countries;
};

View File

@ -0,0 +1,13 @@
module.exports = async (dbConn, id) => {
const country = await dbConn.query(
`SELECT countries.id AS country_id,
countries.country AS name,
countries.description,
countries.preview_img
FROM countries
WHERE countries.id = ?`,
[id]
);
return country;
};

View File

@ -0,0 +1,18 @@
module.exports = async (dbConn, id) => {
const region = await dbConn.query(
`SELECT regions.id AS region_id,
regions.region AS name,
regions.description,
regions.preview_img,
regions.country_id AS country_id,
countries.country AS country,
regions.meteostat_id AS meteostat_id
FROM regions
JOIN countries
ON regions.country_id = countries.id
WHERE regions.id = ?`,
[id]
);
return region;
};

View File

@ -1,7 +1,9 @@
module.exports = async (dbConn, lat, long, radius) => {
module.exports = async (dbConn) => {
const regions = await dbConn.query(
`SELECT regions.id AS region_id,
regions.region AS name,
regions.description,
regions.preview_img,
regions.country_id AS country_id,
countries.country AS country,
regions.meteostat_id AS meteostat_id

View File

@ -0,0 +1,15 @@
const router = require("express").Router();
const getCountries = require("../models/getCountries.js");
const getCountryById = require("../models/getCountryById.js");
module.exports = dbConn => {
router.get("/api/v1/countries", async (req, res) => {
res.json(await getCountries(dbConn));
});
router.get("/api/v1/countries/:id", async (req, res) => {
const id = req.params.id;
res.json(await getCountryById(dbConn, id))
});
return router;
};

View File

@ -1,10 +1,15 @@
const router = require("express").Router();
const getRegions = require("../models/getRegions.js");
const getRegionById = require("../models/getRegionById.js");
module.exports = dbConn => {
router.get("/api/v1/regions", async (req, res) => {
res.json(await getRegions(dbConn));
});
router.get("/api/v1/regions/:id", async (req, res) => {
const id = req.params.id;
res.json(await getRegionById(dbConn, id))
});
return router;
};