Guest User

Untitled

a guest
Nov 16th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.27 KB | None | 0 0
  1. const formattedRespose = (leg) => {
  2. let result = {},
  3. legInfo = leg || response.routes[0].legs[0],
  4. basicInfo = {},
  5. resultantSteps = [],
  6. lastStep = {},
  7. nextPointInfo = {};
  8.  
  9. basicInfo = {
  10. startAddress: legInfo.start_address,
  11. endAddress: legInfo.end_address,
  12. distance: legInfo.distance.text,
  13. duration: legInfo.duration.text,
  14. startTime: legInfo.departure_time.text,
  15. endTime: legInfo.arrival_time.text,
  16. };
  17.  
  18. lastStep = {
  19. name: legInfo.end_address,
  20. time: legInfo.arrival_time.text,
  21. };
  22.  
  23. nextPointInfo = {
  24. name: legInfo.start_address,
  25. time: legInfo.departure_time.text,
  26. };
  27.  
  28.  
  29. legInfo.steps.map((step, index) => {
  30. let stepObj = {},
  31. innerStepsHTML = [],
  32. transitDetails;
  33.  
  34. stepObj.travelMode = step.travel_mode;
  35.  
  36. if (step.travel_mode === 'WALKING') {
  37. stepObj.distance = step.distance.text;
  38. stepObj.duration = step.duration.text;
  39.  
  40. stepObj.name = nextPointInfo.name;
  41. stepObj.time = nextPointInfo.time;
  42.  
  43. stepObj.headSign = 'Walk';
  44.  
  45. if (step.steps.length) {
  46. step.steps.map((innerStep, index) => {
  47. innerStepsHTML.push(innerStep.html_instructions);
  48. })
  49.  
  50. stepObj.innerSteps = innerStepsHTML;
  51. }
  52. } else if (step.travel_mode === 'TRANSIT') {
  53. transitDetails = step.transit_details;
  54.  
  55. stepObj.distance = step.distance.text;
  56. stepObj.duration = step.duration.text;
  57.  
  58. stepObj.name = transitDetails.departure_stop.name;
  59. stepObj.time = transitDetails.departure_time.text;
  60. stepObj.numOfSteps = transitDetails.num_stops;
  61.  
  62. stepObj.headSign = transitDetails.headsign;
  63. stepObj.lineInfo = transitDetails.line;
  64.  
  65. nextPointInfo.name = transitDetails.arrival_stop.name;
  66. nextPointInfo.time = transitDetails.arrival_time.text;
  67. }
  68.  
  69. resultantSteps[index] = stepObj;
  70. });
  71.  
  72. resultantSteps.push(lastStep);
  73.  
  74. return { steps: resultantSteps, basicInfo };
  75. };
  76.  
  77.  
  78. export default formattedRespose;
Add Comment
Please, Sign In to add comment