diff --git a/libs/configuration.js b/libs/configuration.js index f945c5c..db423a2 100644 --- a/libs/configuration.js +++ b/libs/configuration.js @@ -6,4 +6,5 @@ module.exports = { password: process.env.DATABASE_PASSWORD, database: process.env.DATABASE_NAME, }, + registerPass: process.env.REGISTER_PASS, }; diff --git a/routes/ping.js b/routes/ping.js index 3e826cf..f065901 100644 --- a/routes/ping.js +++ b/routes/ping.js @@ -1,10 +1,12 @@ let express = require("express"); let ipaddr = require("ipaddr.js"); let moment = require("moment"); +let conf = require("../libs/configuration"); let db = require("../libs/Database").instance(); let router = express.Router(); const IP_TYPES = ["ipv4", "ipv6"]; +const REGISTER_PASS = conf.registerPass; function combineToList(a, b) { return a + "\n" + b; @@ -52,4 +54,17 @@ router.get("/:fqdn/:code", testIP, (req, res) => { }); }); +router.get("/:fqdn/:code/:pass", (req, res) => { + const pass = req.params.pass; + const fqdn = req.params.fqdn; + const code = req.params.code; + if (REGISTER_PASS === "" || pass !== REGISTER_PASS) return res.status(403).send("Invalid token"); + db.query("INSERT INTO addresses SET fqdn = ?, code = ? ON DUPLICATE KEY UPDATE code = ?", [fqdn, code, code], (e, d) => { + if (e) return res.status(400).send("Error"); + if (d.insertId <= 0) return res.send("Already registered"); + if (d.affectedRows >= 2) return res.send("Successful changed code"); + res.send("Successful registered"); + }) +}); + module.exports = router;