I have this class written in javascript but I have difficulty in obtaining the result from the axios request, below my situation to better explain the problem:
i have a file called vtiger.js in the classes directory in the project root
vtiger.js
const axios = require('axios');
var md5 = require('md5');
var qs = require('qs');
const https = require('https');
class vTiger {
    constructor() {
        this.url = process.env.VTIGER_URL;
        this.username = process.env.VTIGER_USERNAME;
        this.password = process.env.VTIGER_PASSWORD;
    }
    async getchallengeTokenVtiger() {
        var token;
        var tokenmd5 = false;
        var url = this.url + 'webservice.php?operation=getchallenge&username=' + this.username;
        axios.get(url,
            {
                headers: {
                    "content-type": "application/x-www-form-urlencoded"
                },
                httpsAgent: new https.Agent(
                {
                    rejectUnauthorized: false
                })
            }).then(response => {
            if (response.data.success) {
                token = response.data.result.token;
                tokenmd5 = md5(token + this.password);
                return tokenmd5;
            }
        });
    }
}
module.exports = vTiger
then I have a file called api.js in the controllers folder with this content:
const http = require('http');
const axios = require('axios');
var qs = require('qs');
const vTiger = require('../classes/vtiger');
exports.welcome = (req, res, next) => {
    const vtigerClass = new vTiger();
    console.log(vtigerClass.getchallengeTokenVtiger())
    res.status(200).json({
        data: vtigerClass.getchallengeTokenVtiger()
    });
}
from this file as an response I get:
{
    "data": {}
}
while from the console.log(vtigerClass.getchallengeTokenVtiger()) line I get this:
Promise { undefined }
Where am I doing wrong?
Thanks
 
    