All files / helpers/date filter.js

100% Statements 45/45
100% Branches 34/34
100% Functions 1/1
100% Lines 45/45

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77    151x 30x 30x 30x 30x 30x 30x 30x 30x 30x     30x 1x 1x 1x     29x 1x 1x 1x     28x 8x       8x 8x     20x 1x   20x 4x   20x 1x   20x 2x   20x 3x       20x 4x 4x 4x     16x 1x 1x 1x     15x 1x 1x 1x     14x            
import moment from 'moment-timezone';
 
const filterDatesWithTime = (dateValue) => {
  const userInputDate = moment(dateValue, 'L LTS').toDate();
  let translatedDay = userInputDate.getUTCDate();
  let translatedMonth = userInputDate.getUTCMonth() + 1;
  const translatedYear = userInputDate.getUTCFullYear();
  let translatedHours = userInputDate.getUTCHours();
  let translatedMinuts = userInputDate.getUTCMinutes();
  let translatedSeconds = userInputDate.getUTCSeconds();
  let filteredDates = '';
  let typeFilter = '';
 
  // 08/xx/xxxx xx:xx:xx
  if (dateValue && dateValue.slice(3, 5) === '') {
    filteredDates = `%____-__-${dateValue.slice(0, 2)}%`;
    typeFilter = 'dateTime';
    return { filteredDates, typeFilter };
  }
  // 14/09/xxxx xx:xx:xx
  if (dateValue && dateValue.slice(6, 10) === '') {
    filteredDates = `%____-${dateValue.slice(3, 5)}-${dateValue.slice(0, 2)}%`;
    typeFilter = 'dateTime';
    return { filteredDates, typeFilter };
  }
  // 14/09/2021 xx:xx:xx
  if (dateValue && dateValue.slice(10, 19) === '') {
    filteredDates = `%${dateValue.slice(6, 10)}-${dateValue.slice(
      3,
      5
    )}-${dateValue.slice(0, 2)}%`;
    typeFilter = 'dateTime';
    return { filteredDates, typeFilter };
  }
 
  if (translatedDay < 10) {
    translatedDay = `0${translatedDay}`;
  }
  if (translatedMonth < 10) {
    translatedMonth = `0${translatedMonth}`;
  }
  if (translatedHours < 10) {
    translatedHours = `0${translatedHours}`;
  }
  if (translatedMinuts < 10) {
    translatedMinuts = `0${translatedMinuts}`;
  }
  if (translatedSeconds < 10) {
    translatedSeconds = `0${translatedSeconds}`;
  }
 
  // 13/05/2021 15:xx:xx
  if (dateValue && dateValue.slice(15, 17) === '') {
    filteredDates = `%${translatedYear}-${translatedMonth}-${translatedDay} ${translatedHours}%`;
    typeFilter = 'timeStamp';
    return { filteredDates, typeFilter };
  }
  // 13/05/2021 15:25:xx
  if (dateValue && dateValue.slice(18, 20) === '') {
    filteredDates = `%${translatedYear}-${translatedMonth}-${translatedDay} ${translatedHours}:${translatedMinuts}%`;
    typeFilter = 'timeStamp';
    return { filteredDates, typeFilter };
  }
  // 13/05/2021 15:25:41
  if (dateValue && dateValue.slice(18, 20) !== '') {
    filteredDates = `%${translatedYear}-${translatedMonth}-${translatedDay} ${translatedHours}:${translatedMinuts}:${translatedSeconds}%`;
    typeFilter = 'timeStamp';
    return { filteredDates, typeFilter };
  }
 
  return {};
};
 
export default {
  filterDatesWithTime,
};