From cc27843bb3c852ae9593edc1798a298f56be83e7 Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 20 Aug 2025 10:12:44 +0300 Subject: [PATCH] add GetSoneInfo (not functional) --- com/Zones/GetZoneInfo.lua | 69 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 com/Zones/GetZoneInfo.lua diff --git a/com/Zones/GetZoneInfo.lua b/com/Zones/GetZoneInfo.lua new file mode 100644 index 0000000..841cc52 --- /dev/null +++ b/com/Zones/GetZoneInfo.lua @@ -0,0 +1,69 @@ +local session = require("internal.session") +local log = require("internal.log") +local jwt = require("internal.crypt.jwt") +local bc = require("internal.crypt.bcrypt") +local sha256 = require("internal.crypt.sha256") +local dbdriver = require("internal.database.sqlite") + +local db_root = dbdriver.connect("db/root.db", {log = true}) +local db_zone = nil + +local function close_db() + if db_root then + db_root:close() + db_root = nil + end + if db_zone then + db_zone:close() + db_zone = nil + end +end + +local token = session.request.headers.get("authorization") + +if not token or type(token) ~= "string" then + close_db() + session.response.send_error(-32050, "Access denied") +end + +local prefix = "Bearer " +if token:sub(1, #prefix) ~= prefix then + close_db() + session.response.send_error(-32052, "Invalid Authorization scheme") +end + +local access_token = token:sub(#prefix + 1) + +local err, data = jwt.decode(access_token, { secret = require("_config").token() }) + +if err or not data then + close_db() + session.response.send_error(-32053, "Cannod parse JWT", {err}) +end + +if data.master_id then + + +end + +local params = session.request.params.get() + +local function check_missing(arr, p) + local is_missing = {} + local ok = true + for _, key in ipairs(arr) do + if p[key] == nil then + table.insert(is_missing, key) + ok = false + end + end + return ok, is_missing +end + +local ok, mp = check_missing({"zone_name"}, params) +if not ok then + close_db() + session.response.send_error(-32602, "Missing params", mp) +end + +close_db() \ No newline at end of file