function buildHttpError()

in public/lib/http-session-service.js [68:113]


    function buildHttpError(err) {

        if (err instanceof Error) {
            return err;
        }

        var requestConfig = err.config || {},
        requestParams = requestConfig.params &&
            Object.keys(requestConfig.params)
                .filter((param, idx, params) => requestConfig.params[param] !== undefined && requestConfig.params[param] !== null)
                .map((param) => `${param}=${requestConfig.params[param]}`),
        error, errorMessage;

        if (err.status) {
            errorMessage = [
                'Request error:',
                err.status || '?',
                err.statusText || 'Unknown',
                'from',
                requestConfig.method || '',
                (requestConfig.url || '') + (requestParams && requestParams.length > 0 ? '?' + requestParams.join('&') : '')
            ];
        } else {
            errorMessage = [
                'Request error with no status: ',
                'http error object: ',
                JSON.stringify(err),
                'from',
                requestConfig.method || '',
                (requestConfig.url || '') + (requestParams && requestParams.length > 0 ? '?' + requestParams.join('&') : '')
            ];
        }

        error = new Error(errorMessage.join(' '));

        // Append to error object Workflow API JSON error conventions
        if(err.data && err.data.error) {
            error.friendlyMessage = err.data.error.friendlyMessage;
            error.data = err.data.error.data || {};
        } else {
            err.data = {};
        }

        error.status = err.status;
        return error;
    }