in source/api/services/admin/lib/index.js [86:717]
function processRequest(event, ticket, cb) {
let INVALID_PATH_ERR = {
Error: ['Invalid path request ', event.resource, ', ', event.httpMethod].join('')
};
let _group = new Group();
let _user = new User();
let _setting = new Setting();
let _apikey = new ApiKey();
let _accessLog = new AccessLog();
let _response = {};
let _operation = '';
if (event.resource === '/admin/groups' && event.httpMethod === 'GET') {
_operation = 'list groups';
_group.listGroups(ticket, function(err, data) {
if (err) {
console.log(err);
_response = buildOutput(err.code, 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 === '/admin/groups/{group_name}' && event.httpMethod === 'PUT') {
_operation = 'create a new group';
let _body = JSON.parse(event.body);
_group.createGroup(decodeURI(event.pathParameters.group_name), _body.description, ticket, function(err, data) {
if (err) {
console.log(err);
_response = buildOutput(err.code, 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 === '/admin/groups/{group_name}' && event.httpMethod === 'POST') {
let groupName = decodeURI(event.pathParameters.group_name);
let _body = JSON.parse(event.body);
_operation = ['Update data lake group', groupName, _body.action].join(' ');
if (_body.action == 'updateGroup') {
_group.updateGroup(groupName, _body.description, ticket, function(err, data) {
if (err) {
console.log(err);
_response = buildOutput(err.code, 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 (_body.action == 'removeUserFromGroup') {
_group.removeUserFromGroup(_body.userId, groupName, ticket, function(err, data) {
if (err) {
console.log(err);
_response = buildOutput(err.code, 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 {
let err = {code: 400, message: `Invalid parameters. Check if you are setting action for update group infomation or user list.`};
_response = buildOutput(err.code, err);
_accessLog.logEvent(event.requestContext.requestId, servicename, ticket.userid, _operation,
'failed/error',
function(err, resp) {
return cb(_response, null);
});
}
} else if (event.resource === '/admin/groups/{group_name}' && event.httpMethod === 'GET') {
let groupName = decodeURI(event.pathParameters.group_name);
_operation = ['retrieve data lake group', groupName].join(' ');
_group.getGroup(groupName, ticket, function(err, data) {
if (err) {
console.log(err);
_response = buildOutput(err.code, 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 === '/admin/groups/{group_name}' && event.httpMethod === 'DELETE') {
let groupName = decodeURI(event.pathParameters.group_name);
_operation = ['delete data lake group', groupName].join(' ');
_group.deleteGroup(groupName, ticket, function(err, data) {
if (err) {
console.log(err);
_response = buildOutput(err.code, 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 === '/admin/groups/membership/{user_id}' && event.httpMethod === 'GET') {
event.pathParameters.user_id = decodeURI(event.pathParameters.user_id);
_operation = ['get ', event.pathParameters.user_id, ' groups'].join(' ');
_group.getUserGroups(event.pathParameters.user_id, ticket, function(err, data) {
if (err) {
console.log(err);
_response = buildOutput(err.code, 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 === '/admin/groups/membership/{user_id}' && event.httpMethod === 'POST') {
event.pathParameters.user_id = decodeURI(event.pathParameters.user_id);
_operation = ['update ', event.pathParameters.user_id, ' group membership'].join(' ');
let _body = JSON.parse(event.body);
_group.updateUserMembership(event.pathParameters.user_id, _body.groupSet, ticket, function(err, data) {
if (err) {
console.log(err);
_response = buildOutput(err.code, 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 === '/admin/invitations' && event.httpMethod === 'POST') {
_operation = 'create invitation for a new user';
_user.inviteUser(event.body, function(err, data) {
if (err) {
console.log(err);
_response = buildOutput(err.code, 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 === '/admin/users' && event.httpMethod === 'GET') {
_operation = 'list data lake users';
_user.getUsers(function(err, data) {
if (err) {
console.log(err);
_response = buildOutput(err.code, 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 === '/admin/users/{user_id}' && event.httpMethod === 'GET') {
event.pathParameters.user_id = decodeURI(event.pathParameters.user_id);
_operation = ['retrieve data lake user', event.pathParameters.user_id].join(' ');
_user.getUser(event.pathParameters.user_id, ticket, function(err, data) {
if (err) {
console.log(err);
_response = buildOutput(err.code, 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 === '/admin/users/{user_id}' && event.httpMethod === 'DELETE') {
event.pathParameters.user_id = decodeURI(event.pathParameters.user_id);
_operation = ['delete data lake user', event.pathParameters.user_id].join(' ');
_user.deleteUser(event.pathParameters.user_id, function(err, data) {
if (err) {
console.log(err);
_response = buildOutput(err.code, 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 === '/admin/users/{user_id}' && event.httpMethod === 'PUT') {
event.pathParameters.user_id = decodeURI(event.pathParameters.user_id);
let _body = JSON.parse(event.body);
if (_body.operation === 'update') {
_operation = ['update data lake user', event.pathParameters.user_id].join(' ');
_user.updateUser(event.pathParameters.user_id, _body.user, function(err, data) {
if (err) {
console.log(err);
_response = buildOutput(err.code, 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 (_body.operation === 'disable') {
event.pathParameters.user_id = decodeURI(event.pathParameters.user_id);
_operation = ['disable data lake user', event.pathParameters.user_id].join(' ');
_user.disableUser(event.pathParameters.user_id, function(err, data) {
if (err) {
console.log(err);
_response = buildOutput(err.code, 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 (_body.operation === 'enable') {
event.pathParameters.user_id = decodeURI(event.pathParameters.user_id);
_operation = ['enable data lake user', event.pathParameters.user_id].join(' ');
_user.enableUser(event.pathParameters.user_id, function(err, data) {
if (err) {
console.log(err);
_response = buildOutput(err.code, 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(401, 'Invalid user operation requested.');
return cb(_response, null);
}
} else if (event.resource === '/admin/users/{user_id}/forgotPassword' && event.httpMethod === 'POST') {
event.pathParameters.user_id = decodeURI(event.pathParameters.user_id);
_operation = ['forgot password ', event.pathParameters.user_id].join(' ');
_user.forgotPassword(event.pathParameters.user_id, function(err, data) {
if (err) {
_response = buildOutput(err.code, 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 === '/admin/settings/config' && event.httpMethod === 'GET') {
_operation = 'list data lake configuration settings';
_setting.getAppSettings(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 === '/admin/settings/config' && event.httpMethod === 'PUT') {
_operation = 'update data lake configuration settings';
_setting.updateAppSettings(event.body, 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 === '/admin/settings/governance' && event.httpMethod === 'GET') {
_operation = 'retrieve data lake governance settings';
_setting.getGovernanceSettings(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 === '/admin/settings/governance/{setting_id}' && event.httpMethod === 'GET') {
_operation = ['retrieve data lake governance setting', event.pathParameters.setting_id].join(' ');
_setting.getGovernanceSetting(event.pathParameters.setting_id, 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 === '/admin/settings/governance/{setting_id}' && event.httpMethod === 'DELETE') {
_operation = ['delete data lake governance setting', event.pathParameters.setting_id].join(' ');
_setting.deleteGovernanceSetting(event.pathParameters.setting_id, 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 === '/admin/settings/governance/{setting_id}' && event.httpMethod === 'POST') {
_operation = 'create new governance setting';
_setting.createGovernanceSetting(event.body, 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 === '/admin/settings/governance/{setting_id}' && event.httpMethod === 'PUT') {
_operation = ['update data lake governance setting', event.pathParameters.setting_id].join(' ');
_setting.updateGovernanceSetting(event.pathParameters.setting_id, event.body, 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 === '/admin/apikeys' && event.httpMethod === 'GET') {
event.queryStringParameters.user_id = decodeURI(event.queryStringParameters.user_id);
_operation = ['retrieve api access key for user', event.queryStringParameters.user_id].join(' ');
_apikey.getApiKeyByUserid(event.queryStringParameters.user_id, 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 === '/admin/apikeys/{access_key_id}' && event.httpMethod === 'GET') {
_operation = ['retrieve api access key', event.pathParameters.access_key_id].join(' ');
_apikey.getApiKey(event.pathParameters.access_key_id, 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 === '/admin/apikeys/{access_key_id}' && event.httpMethod === 'DELETE') {
event.queryStringParameters.user_id = decodeURI(event.queryStringParameters.user_id);
_operation = ['delete api access key', event.pathParameters.access_key_id, 'for user',
event.queryStringParameters.user_id
].join(' ');
_apikey.deleteApiKey(event.pathParameters.access_key_id, event.queryStringParameters.user_id,
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 === '/admin/apikeys/{access_key_id}' && event.httpMethod === 'POST') {
event.queryStringParameters.user_id = decodeURI(event.queryStringParameters.user_id);
_operation = ['create an api access key for user', event.queryStringParameters.user_id].join(' ');
_apikey.createApiKey(event.queryStringParameters.user_id, 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 === '/admin/apikeys/{access_key_id}' && event.httpMethod === 'PUT') {
_operation = ['update api access key', event.pathParameters.access_key_id].join(' ');
_apikey.updateApiKey(event.pathParameters.access_key_id, event.body, 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);
}
}