function processRequest()

in source/api/services/search/lib/index.js [99:191]


function processRequest(event, ticket, cb) {

    let _response = {};

    let INVALID_PATH_ERR = {
        Error: ['Invalid path request ', event.resource, ', ', event.httpMethod].join('')
    };

    let _metadata = new Metadata();
    let _accessLog = new AccessLog();
    let _operation = '';

    if (event.resource === '/search') {
        _operation = ['search data lake with terms [', event.queryStringParameters.term, ']'].join(' ');
        _metadata.search(event.queryStringParameters.term, ticket, function(err, data) {
            if (err) {
                console.log(err);
                _response = buildOutput(500, err);
                _accessLog.logEvent(event.requestContext.requestId, servicename, ticket.userid, _operation,
                    'failed/error',
                    function(err, resp) {
                        return cb(_response, null);
                    });
            } else {
                _response = buildOutput(200, data);
                _accessLog.logEvent(event.requestContext.requestId, servicename, ticket.userid, _operation,
                    'success',
                    function(err, resp) {
                        return cb(null, _response);
                    });
            }
        });

    } else if (event.resource === '/search/index' && event.httpMethod === 'POST') {
        _metadata.indexDocument(event.body, ticket, function(err, data) {
            if (err) {
                console.log(err);
                _response = buildOutput(500, err);
                return cb(_response, null);
            }

            _response = buildOutput(200, data);
            return cb(null, _response);
        });

    } else if (event.resource === '/search/index' && event.httpMethod === 'DELETE') {
        _operation = ['delete package', event.body.package_id, 'from search index'].join(' ');
        _metadata.deleteDocument(event, ticket, function(err, data) {
            if (err) {
                console.log(err);
                _response = buildOutput(500, err);
                _accessLog.logEvent(event.requestContext.requestId, servicename, ticket.userid, _operation,
                    'failed/error',
                    function(err, resp) {
                        return cb(_response, null);
                    });
            } else {
                _response = buildOutput(200, data);
                _accessLog.logEvent(event.requestContext.requestId, servicename, ticket.userid, _operation,
                    'success',
                    function(err, resp) {
                        return cb(null, _response);
                    });
            }
        });

    } else if  (event.resource === '/search/stats') {
        _operation = 'retrieve package stats';
        _metadata.stats(ticket, function(err, data) {
            if (err) {
                console.log(err);
                _response = buildOutput(500, err);
                _accessLog.logEvent(event.requestContext.requestId, servicename, ticket.userid, _operation,
                    'failed/error',
                    function(err, resp) {
                        return cb(_response, null);
                    });
            } else {
                _response = buildOutput(200, data);
                _accessLog.logEvent(event.requestContext.requestId, servicename, ticket.userid, _operation,
                    'success',
                    function(err, resp) {
                        return cb(null, _response);
                    });
            }
        });

    } else {
        _response = buildOutput(500, INVALID_PATH_ERR);
        return cb(_response, null);
    }

};