diff --git a/nodejs.setup b/nodejs.setup deleted file mode 100755 index a82a5b3..0000000 --- a/nodejs.setup +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -sudo apt install nodejs diff --git a/srv.setup b/srv.setup new file mode 100755 index 0000000..c900e34 --- /dev/null +++ b/srv.setup @@ -0,0 +1,4 @@ +#!/bin/bash +apt install nodejs +mkdir -p /var/log/consult +chgrp www-data /var/log/consult diff --git a/srv/srv.consult.js b/srv/srv.consult.js new file mode 100644 index 0000000..ea2d03a --- /dev/null +++ b/srv/srv.consult.js @@ -0,0 +1,89 @@ +let fs = require("fs"); +let http = require("http"); + +//let DST_DIR = "/var/log"; +let DST_DIR = "/tmp"; +let TEMPLATE_FILE_NAME = "%DIR%/consult_%UUID%"; +let URL_CONSULT = "/api/consult"; + +let srv = http.createServer((req, res) => { + // POST + if (req.method == "POST") { + var dat = ""; + req.on("data", (chunk) => { + dat += chunk; + }); + req.on("end", () => { + // /api/consult + if (isConsultationRequestValid(req, dat)) { + saveUserContacts(dat); + returnSuccess(res); + } else { + returnError(res); + } + }); + } else { + returnError(res); + } +}); + +function isConsultationRequestValid(req, dat) { + var json = {}; + try { + json = JSON.parse(dat); + } catch (e) { + //console.log("ERR isCRV error:", e); + } + + if ( + req.url == URL_CONSULT && + req.method == "POST" && + "name" in json && + "phone" in json + ) { + return true; + } + + return false; +} + +function returnError(res) { + res.writeHead(404, { "Content-Type": "text/html" }); + res.end(` +