ericahagle / fitlit

Turing FE Mod 2 Group Project
https://fitlit-seven.vercel.app
0 stars 2 forks source link

Explore: How can we DRY up some of our functions? #108

Open ericahagle opened 11 months ago

ericahagle commented 11 months ago

From Jeremiah's feedback:


// these two functions could leverage a third parameter
function getSleepQualityFor7Days(currentUser, endDate) {
  let endDateObj = new Date(endDate);

  let startDateObj = new Date(endDateObj);
  startDateObj.setDate(endDateObj.getDate() -6  );
  return currentUser.sleepData
    .filter((entry) => {
      let entryDateObj = new Date(entry.date);
      return entryDateObj >= startDateObj && entryDateObj <= endDateObj;
    })
    .map((entry) => {
      return {
        date: entry.date,
        sleepQuality: entry.sleepQuality
      };
    });
}

function getSleepFor7Days(currentUser, endDate) {
  let endDateObj = new Date(endDate);

  let startDateObj = new Date(endDateObj);
  startDateObj.setDate(endDateObj.getDate() -6  );
  return currentUser.sleepData.filter((entry) => {
      let entryDateObj = new Date(entry.date);
      return entryDateObj >= startDateObj && entryDateObj <= endDateObj;
     })
        .map((entry) => {
          return {
            date: entry.date,
            hoursSlept: entry.hoursSlept
          };
        });
    }

// potential refactor
function getWeekSleepData(currentUser, endDate, dataPoint) {
  let endDateObj = new Date(endDate);

  let startDateObj = new Date(endDateObj);
  startDateObj.setDate(endDateObj.getDate() -6  );
  return currentUser.sleepData.filter((entry) => {
      let entryDateObj = new Date(entry.date);
      return entryDateObj >= startDateObj && entryDateObj <= endDateObj;
     })
        .map((entry) => {
                    let sleepObj = {
            date: entry.date,
          };
                    sleepObj[dataPoint] = entry[dataPoint]
                    return sleepObj
        });
    }

// then invoke with either "hoursSlept" or "sleepQuality" as the argument for