diff --git a/api/res/setup_sql.sql b/api/res/setup_sql.sql index 69e679c..0643262 100644 --- a/api/res/setup_sql.sql +++ b/api/res/setup_sql.sql @@ -39,9 +39,30 @@ CREATE TABLE `polygonPoints` ( FOREIGN KEY (polygonID) REFERENCES polygonArea(polygonID) ); +DELIMITER // +CREATE PROCEDURE getPolygonPoints +(IN id VARCHAR(6)) +BEGIN + SELECT * FROM `polygonPoints` + JOIN `polygonArea` ON + `polygonArea`.polygonID = polygonPoints.polygonID + JOIN (SELECT * FROM `userJoinedGames` WHERE gameID = id) AS userColour ON + `polygonArea`.userID = userColour.UserID + WHERE + polygonArea.gameID = id; +END // +DELIMITER ; + INSERT INTO `gameInstances` (gameID) VALUES ("samdum"); INSERT INTO `users` (userID, nickname) VALUES ("samded", "Lesmaux"); INSERT INTO `users` (userID, nickname) VALUES ("fanded", "Umbra Sheep"); +INSERT INTO `polygonArea` (gameID, polygonID, userID, area) VALUES +("samdum", "someuniqueid", "samded", 100000.1); +INSERT INTO `polygonPoints` (polygonID, lat, lng) VALUES +("someuniqueid", -43.5623, 172.5655), +("someuniqueid", -43.5623, 172.5650), +("someuniqueid", -43.5628, 172.5650), +("someuniqueid", -43.5628, 172.5655); -- TODO CREATE PROCEDURE FOR GENERATING GAME ID -- concat(substring('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', rand()*36+1, 1), -- substring('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', rand()*36+1, 1), diff --git a/api/routes/routes.js b/api/routes/routes.js index b31beec..e3411f7 100644 --- a/api/routes/routes.js +++ b/api/routes/routes.js @@ -6,7 +6,7 @@ module.exports = function (server) { server.get("/polygons", function (req, res, next) { if (versioner.currentVersion === 1) { - apiV1.getPolygons(res); + apiV1.getPolygons(req, res); return next(); } res.send(200); diff --git a/api/v1/api.js b/api/v1/api.js index 52e8e0b..61abef1 100644 --- a/api/v1/api.js +++ b/api/v1/api.js @@ -1,11 +1,17 @@ let db = require("../config/db.js"); module.exports = { - getPolygons : function (res) { - db.get().query("", function(err, rows){ - if (err) return res.send(400); - res.send(rows); - return; - }); + getPolygons : function (req, res) { + if (req.query.gameID != null) { + let query = "CALL getPolygonPoints(\"samdum\");"; + console.log("hi"); + db.get().query(query, function(err, rows){ + if (err) return res.send(400); + res.send(rows[0]); + return; + }); + } else { + res.send(500); + } } } \ No newline at end of file