in source/api/services/cart/lib/index.js [83:206]
function processRequest(event, ticket, cb) {
let INVALID_PATH_ERR = {
Error: ['Invalid path request ', event.resource, ', ', event.httpMethod].join('')
};
let _cart = new Cart();
let _accessLog = new AccessLog();
let _operation = '';
let _response = '';
let _accessValidator = new AccessValidator();
let _body = {};
if (event.body) {
_body = JSON.parse(event.body);
}
if (event.resource === '/cart' && event.httpMethod === 'GET') {
_operation = 'list items in the user\'s cart';
_cart.getCartByUserId(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 === '/cart/{item_id}' && event.httpMethod === 'GET') {
_operation = ['reading item', event.pathParameters.item_id, 'from user\'s cart'].join(' ');
_cart.getCartItem(event.pathParameters.item_id, 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 === '/cart/{item_id}' && event.httpMethod === 'DELETE') {
_operation = ['removing item', event.pathParameters.item_id, 'from user\'s cart'].join(' ');
_cart.deleteCartItem(event.pathParameters.item_id, 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 === '/cart/{item_id}' && event.httpMethod === 'POST') {
_operation = 'adding new item to the user\'s cart';
_cart.createCartItem(_body, 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 === '/cart' && event.httpMethod === 'POST') {
_operation = 'checking out user\'s cart';
let _authToken = _accessValidator.getAuthToken(event.headers);
_cart.checkout(_body, ticket, _authToken, 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);
}
};