-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhandler.js
55 lines (53 loc) · 1.43 KB
/
handler.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
const axios = require('axios');
const newDriver = require('./aws/newDriver.js').newDriver;
const sendDeclinedDrivers = require('./aws/declinedDrivers.js')
.sendDeclinedDrivers;
const getWaitEstimate = require('./helpers/distance.js').getWaitEstimate;
const driverSelector = require('./helpers/driverSelector.js').driverSelector;
module.exports.dispatch = (event, context, callback) => {
const body = JSON.parse(event.body);
const driver = driverSelector(body.drivers);
const waitTime = getWaitEstimate(driver, body.rider_loc);
const query = {
ride_id: event.body.ride_id,
driver_loc: driver.driver_loc,
wait_time: waitTime
};
const response = {
statusCode: 200,
headers: {
my_head: 'hi'
},
body: JSON.stringify('hi'),
isBase64Encoded: false
};
axios
.post(process.env.RIDER_CLIENT, { query: query })
.then(res => {
const response = {
statusCode: 200,
body: JSON.stringify({
query: query
})
};
callback(null, response);
})
.catch(err => {
callback(err);
});
axios
.get(`${process.env.DB_ROUTE}dispatch`, {
data: {
ride_id: body.ride_id,
driver: driver,
rider_loc: body.rider_loc,
waitTime: waitTime
}
})
.catch(err => {
console.log('ERROR:', err);
});
sendDeclinedDrivers(body.drivers, driver);
newDriver();
callback(null, JSON.stringify(response));
};