mirror of
https://github.com/akyaiy/GoSally-mvp.git
synced 2026-01-03 04:52:26 +00:00
create fully functional get method
This commit is contained in:
@@ -0,0 +1,54 @@
|
|||||||
|
-- File com/Unit/Get.lua
|
||||||
|
--
|
||||||
|
-- Created at 2025-09-25 20:04
|
||||||
|
--
|
||||||
|
-- Updated at -
|
||||||
|
|
||||||
|
local log = require("internal.log")
|
||||||
|
local db = require("internal.database.sqlite").connect("db/unit.db", {log = true})
|
||||||
|
local session = require("internal.session")
|
||||||
|
|
||||||
|
local common = require("com/Unit/_common")
|
||||||
|
|
||||||
|
-- Preparing for first db query
|
||||||
|
local function close_db()
|
||||||
|
if db then
|
||||||
|
log.debug("Closing DB connection")
|
||||||
|
db:close()
|
||||||
|
db = nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local params = session.request.params.get()
|
||||||
|
|
||||||
|
local ok, mp = common.CheckMissingElement({"by", "value"}, params)
|
||||||
|
if not ok then
|
||||||
|
close_db()
|
||||||
|
session.response.send_error(-32602, "Missing params", mp)
|
||||||
|
end
|
||||||
|
|
||||||
|
if not (params.by == "email" or params.by == "username" or params.by == "user_id") then
|
||||||
|
close_db()
|
||||||
|
session.response.send_error(-32602, "Invalid 'by' param")
|
||||||
|
end
|
||||||
|
|
||||||
|
local unit, err = db:query_row(
|
||||||
|
"SELECT user_id, username, email, created_at, updated_at, deleted_at, entry_status FROM units WHERE "..params.by.." = ? AND deleted_at IS NULL LIMIT 1",
|
||||||
|
{
|
||||||
|
params.value
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
if err then
|
||||||
|
close_db()
|
||||||
|
log.error("DB query error: " .. tostring(err))
|
||||||
|
session.response.send_error("Database query failed")
|
||||||
|
end
|
||||||
|
|
||||||
|
if not unit then
|
||||||
|
close_db()
|
||||||
|
session.response.send_error(-32102, "Unit is not exists")
|
||||||
|
end
|
||||||
|
|
||||||
|
close_db()
|
||||||
|
session.response.send(unit)
|
||||||
Reference in New Issue
Block a user