Skip to content
Snippets Groups Projects
sympto-adapter.js 970 B
Newer Older
import getFertilityStatus from './sympto'
import cycleModule from './cycle'
Julia Friesel's avatar
Julia Friesel committed
import { fertilityStatus } from '../labels/labels'
const { getCycleDaysBeforeDay, getPreviousCycles } = cycleModule()

export default function (dateString) {
  const cycle = getCycleDaysBeforeDay(dateString)
Julia Friesel's avatar
Julia Friesel committed
  if (!cycle) return fertilityStatus.unknown

  const previousCycles = getPreviousCycles(cycle[0])

Julia Friesel's avatar
Julia Friesel committed
  const status = getFertilityStatus({
    cycle: formatCycleForSympto(cycle),
    previousCycles: previousCycles.map(formatCycleForSympto)
  })
  if (status.phases.postOvulatory) {
    const phase = status.phases.postOvulatory
    if (phase.start.date === dateString) {
      return fertilityStatus.fertileUntilEvening
    }
  }
Julia Friesel's avatar
Julia Friesel committed
  if (status.assumeFertility) {
    return fertilityStatus.fertile
  } else {
    return fertilityStatus.infertile
  }
Julia Friesel's avatar
Julia Friesel committed
}

function formatCycleForSympto(cycle) {
  // we get earliest last, but sympto wants earliest first
  cycle.reverse()
  return cycle