const { User } = require("./utils/user"); const genToken = require("./utils/gen-token"); function verifyParams(req) { return ( typeof req.username === "string" && typeof req.password === "string" && (req.gtf === undefined || typeof req.gtf === "boolean") ); } module.exports = async function (con, req, cb) { if (!verifyParams(req)) return cb({ error: "Invalid params. Params username and password must be a string and exists, gtf must be a boolean", trace_id: req.trace_id, ended: true, }); const invalidData = () => cb({ error: "Invalid login or password", trace_id: req.trace_id, ended: true, }); const ok = (userdata, token = null) => cb({ result: { ...userdata, token }, trace_id: req.trace_id, ended: true }); // At develop! cb({ warning: "Method at develop", trace_id: req.trace_id, ended: false }); if ( !!global.config.rootuser?.activated && req.username === global.config.rootuser.login ) { if (req.password === global.config.rootuser.password) { const user = await User.getUserByName(req.username); if (user === null) { console.error("Root user object is null"); return cb({ error: "Unknown error", trace_id: req.trace_id, ended: true, }); } global.authed.set(con, user); if (!req.gtf) return ok(user.getUserForAPI(true)); return ok(user.getUserForAPI(true), genToken.registerToken(user)); } return invalidData(); } return cb({ error: "Method at develop", trace_id: req.trace_id, ended: true, }); // (!) Добавить чтение из БД };