jaymascarenas
8/9/2019 - 8:45 PM

sendXMLHttpRequest

/**
 * It handles the sending of a XHR requests with a javascript wrapper
 * @param {json} requestData
 * @param {url} url
 * @param {function} successFunction
 * @param {string} authKey
 * @param {string} method
 */

function sendSyncRequest(requestData, url, successFunction, authKey, contextId, method) {
    var request = new XMLHttpRequest()
    var params = JSON.stringify(requestData)
    request.open(method, url, false)
    request.setRequestHeader('Content-type', 'application/json')

    if (contextId && authKey) {
        request.setRequestHeader('Authorization', 'Bearer ' + authKey)
        request.setRequestHeader('ContextId', contextId)
    } else if (authKey) {
        request.setRequestHeader('Authorization', 'Bearer ' + authKey)
    }
    try {
        request.onreadystatechange = function() {
            if (request.readyState === 4) {
                if (request.status === 200) {
                    successFunction(request.responseText)
                } else {
                    successFunction(null)
                }
            }
        }
        request.onerror = function(e) {
            successFunction(null)
        }
        request.send(params)
    } catch (error) {
        console.log('Error: request.send failed... continuing')
        successFunction(null)
    }
}