I have the following code on a file called utils.js:
class functions {
validateUser(userId, userKey, sessionKey, plId) {
let response = {
validated: false,
isAdmin: false,
isCorporate: false
}
sql.connect(process.env.DB_CONNSTRING, function (err) {
if (err) { msg.success = "0"; msg.message = "ERR_04: Could not connect to server."; res.json(msg); return; };
let sqlString = `SELECT userLevel FROM dbo.users WHERE (userId =@userId) AND (userKey = @userKey)
AND (sessionKey = @sessionKey) and (plId = @plId)`
let request = new sql.Request();
request.input('userId', sql.Int, userId);
request.input('userKey', sql.NVarChar, userKey);
request.input('sessionKey', sql.NVarChar, sessionKey);
request.input('plId', sql.Int, plId);
request.query(sqlString, function (err, results) {
if (err) { msg.success = "0"; msg.message = "ERR_07: Could not connect to server."; res.json(msg); return; };
if (results.rowsAffected[0] != 0) {
response.validated = true;
if (results.recordset[0].userLevel == 1 || results.recordset[0].userLevel == 10) {
response.isAdmin = true;
};
if (results.recordset[0].userLevel == 10) {
response.isCorporate = true;
};
return (response);
}
else {
return (response);
};
});
});
};
}
module.exports = { functions };
Which is basically to validate if the logged user has the right credentials.
From a second .js file, I am requiring this file:
const utils = require('../utils/utils')
const functions = new utils.functions;
and then, on the router.post Im calling validateUser like this:
let AuthUser = async () => {
const string = await functions.validateUser(payload.body.credentials.userId, payload.body.credentials.userKey, payload.body.credentials.sessionKey, payload.body.credentials.plId);
return string;
};
let isValid = AuthUser();
console.log(isValid)
But instead of getting the expected values on the console, I get
Promise { <pending> }
I tried making validateUser async but I still get the same results.
The idea is to continue running code after I get and process the results from validateUser
Any help will be appreciated.
Thanks.