fetchData.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. window.fetchData = function(from, to){
  2. retrieveDates = [];
  3. //Compares dates to dates already stored and makes a list of those needed
  4. let fromCopy = new Date(from);
  5. for(let i = 0; i < data.dates.length; i+=2){
  6. if(to <= new Date(data.dates[0]) || fromCopy >= new Date(data.dates[data.dates.length - 1])){
  7. retrieveDates.push(fromCopy);
  8. retrieveDates.push(to);
  9. break;
  10. }
  11. let date0 = new Date(data.dates[i]);
  12. let date1 = new Date(data.dates[i+1]);
  13. if(fromCopy < date0){
  14. retrieveDates.push(fromCopy);
  15. retrieveDates.push(date0);
  16. fromCopy = date1;
  17. }else if(fromCopy > date0 && fromCopy < date1){
  18. fromCopy = date1;
  19. }
  20. }
  21. if(retrieveDates.length > 0){
  22. axios.post("/getData", {dates: retrieveDates})
  23. .then((response)=>{
  24. if(typeof(response.data) === "string"){
  25. banner.createError(response.data);
  26. }else{
  27. let mergedDates = [];
  28. let oldIndex = 0;
  29. let newIndex = 0;
  30. while(oldIndex + newIndex < retrieveDates.length + data.dates.length){
  31. let oldDateOne = new Date(data.dates[oldIndex]);
  32. let oldDateTwo = new Date(data.dates[oldIndex+1]);
  33. if(oldDateOne < retrieveDates[newIndex] || newIndex >= retrieveDates.length){
  34. console.log("thing doing one");
  35. if(mergedDates.length > 0 && oldDateOne.getTime() === mergedDates[mergedDates.length-1].getTime()){
  36. mergedDates[mergedDates.length-1] = oldDateTwo;
  37. console.log("one");
  38. console.log(mergedDates);
  39. console.log();
  40. }else{
  41. mergedDates.push(oldDateOne);
  42. mergedDates.push(oldDateTwo);
  43. console.log("two");
  44. console.log(mergedDates);
  45. console.log();
  46. }
  47. oldIndex += 2;
  48. }else{
  49. if(mergedDates.length > 0 && retrieveDates[newIndex].getTime() === mergedDates[mergedDates.length-1].getTime()){
  50. mergedDates[mergedDates.length-1] = retrieveDates[newIndex+1];
  51. console.log("three");
  52. console.log(mergedDates);
  53. console.log();
  54. }else{
  55. mergedDates.push(retrieveDates[newIndex]);
  56. mergedDates.push(retrieveDates[newIndex+1]);
  57. console.log("four");
  58. console.log(mergedDates);
  59. console.log();
  60. }
  61. newIndex += 2;
  62. }
  63. if(newIndex > 100 || oldIndex > 100){
  64. break;
  65. }
  66. }
  67. console.log(mergedDates);
  68. //change to/from in date list
  69. }
  70. })
  71. .catch((err)=>{});
  72. }
  73. }