in source/services/vehicle/lib/index.js [53:150]
function processRequest(event, cb) {
// set the claims ticket
let _ticket = event.requestContext.authorizer.claims;
// catch error if proxied API path sent to service is not processed by available logic
let INVALID_PATH_ERR = {
Error: ['Invalid path request ', event.resource, ', ', event.httpMethod].join('')
};
// instantiate service modules
let _vehicle = new Vehicle();
let _dtc = new Dtc();
let _trip = new Trip();
let _anomaly = new Anomaly();
let _healthreport = new HealthReport();
let _response = '';
let _body = {};
let _operation = '';
if (event.body) {
_body = JSON.parse(event.body);
}
// set logic for proxied API path
if (event.resource === '/vehicles' && event.httpMethod === 'GET') {
_operation = 'retrieving vehicles for user';
_vehicle.listVehicles(_ticket, function(err, data) {
processResponse(err, data, _operation, event.requestContext.requestId, _ticket['cognito:username'], cb);
});
} else if (event.resource === '/vehicles' && event.httpMethod === 'POST') {
_operation = 'registering vehicle for owner'; // set a description of the operation for logging
_vehicle.createVehicle(_ticket, _body, function(err, data) {
processResponse(err, data, _operation, event.requestContext.requestId, _ticket['cognito:username'], cb);
});
} else if (event.resource === '/vehicles/{vin}' && event.httpMethod === 'GET') {
_operation = 'retrieving vehicle for user';
_vehicle.getVehicle(_ticket, event.pathParameters.vin, function(err, data) {
processResponse(err, data, _operation, event.requestContext.requestId, _ticket['cognito:username'], cb);
});
} else if (event.resource === '/vehicles/{vin}/dtc' && event.httpMethod === 'GET') {
_operation = 'retrieving dtc records of vehicle for user';
_dtc.listDtcByVehicle(_ticket, event.pathParameters.vin, function(err, data) {
processResponse(err, data, _operation, event.requestContext.requestId, _ticket['cognito:username'], cb);
});
} else if (event.resource === '/vehicles/{vin}/dtc/{dtc_id}' && event.httpMethod === 'GET') {
_operation = 'retrieving dtc record of vehicle for user';
_dtc.getVehicleDtc(_ticket, event.pathParameters.vin, event.pathParameters.dtc_id, function(err, data) {
processResponse(err, data, _operation, event.requestContext.requestId, _ticket['cognito:username'], cb);
});
} else if (event.resource === '/vehicles/{vin}/dtc/{dtc_id}/acknowledge' && event.httpMethod === 'PUT') {
_operation = 'acknowledge dtc record of vehicle for user';
_dtc.acknowledgeVehicleDtc(_ticket, event.pathParameters.vin, event.pathParameters.dtc_id, function(err, data) {
processResponse(err, data, _operation, event.requestContext.requestId, _ticket['cognito:username'], cb);
});
} else if (event.resource === '/vehicles/{vin}/anomalies' && event.httpMethod === 'GET') {
_operation = 'retrieving anomaly records of vehicle for user';
_anomaly.listAnomaliesByVehicle(_ticket, event.pathParameters.vin, function(err, data) {
processResponse(err, data, _operation, event.requestContext.requestId, _ticket['cognito:username'], cb);
});
} else if (event.resource === '/vehicles/{vin}/anomalies/{anomaly_id}' && event.httpMethod === 'GET') {
_operation = 'retrieving anomaly record of vehicle for user';
_anomaly.getVehicleAnomaly(_ticket, event.pathParameters.vin, event.pathParameters.anomaly_id, function(err, data) {
processResponse(err, data, _operation, event.requestContext.requestId, _ticket['cognito:username'], cb);
});
} else if (event.resource === '/vehicles/{vin}/anomalies/{anomaly_id}/acknowledge' && event.httpMethod === 'PUT') {
_operation = 'acknowledge anomaly record of vehicle for user';
_anomaly.acknowledgeVehicleAnomaly(_ticket, event.pathParameters.vin, event.pathParameters.anomaly_id, function(err,
data) {
processResponse(err, data, _operation, event.requestContext.requestId, _ticket['cognito:username'], cb);
});
} else if (event.resource === '/vehicles/{vin}/trips' && event.httpMethod === 'GET') {
_operation = 'retrieving trip records of vehicle for user';
_trip.listTripsByVehicle(_ticket, event.pathParameters.vin, function(err, data) {
processResponse(err, data, _operation, event.requestContext.requestId, _ticket['cognito:username'], cb);
});
} else if (event.resource === '/vehicles/{vin}/trips/{trip_id}' && event.httpMethod === 'GET') {
_operation = 'retrieving trip record of vehicle for user';
_trip.getVehicleTrip(_ticket, event.pathParameters.vin, event.pathParameters.trip_id, function(err, data) {
processResponse(err, data, _operation, event.requestContext.requestId, _ticket['cognito:username'], cb);
});
} else if (event.resource === '/vehicles/{vin}/healthreports' && event.httpMethod === 'GET') {
_operation = 'retrieving health report records of vehicle for user';
_healthreport.listHealthReportsByVehicle(_ticket, event.pathParameters.vin, function(err, data) {
processResponse(err, data, _operation, event.requestContext.requestId, _ticket['cognito:username'], cb);
});
} else if (event.resource === '/vehicles/{vin}/healthreports/{report_id}' && event.httpMethod === 'GET') {
_operation = 'retrieving health report record of vehicle for user';
_healthreport.getVehicleHealthReport(_ticket, event.pathParameters.vin, event.pathParameters.report_id, function(err,
data) {
processResponse(err, data, _operation, event.requestContext.requestId, _ticket['cognito:username'], cb);
});
} else {
_response = buildOutput(500, INVALID_PATH_ERR);
return cb(_response, null);
}
};