import {
  DAVINCI_CLOUDFLARE_NUMBER_OF_RETRIES_KEY,
  DAVINCI_CLOUDFLARE_LAST_RETRY_DATE_KEY,
} from '../constants'
import { getItem, setItem } from '../utils/local-storage'

export const getNumberOfRetries = () => {
  const storageValue = getItem(DAVINCI_CLOUDFLARE_NUMBER_OF_RETRIES_KEY)

  if (!storageValue) {
    return 0
  }

  const numberValue = Number(storageValue)

  if (isNaN(numberValue)) {
    return 0
  }

  return numberValue
}

export const getLastRetryDate = () => {
  const storageValue = getItem(DAVINCI_CLOUDFLARE_LAST_RETRY_DATE_KEY)

  if (!storageValue) {
    return new Date(0)
  }

  const dateValue = new Date(Number(storageValue))

  if (isNaN(dateValue.getTime())) {
    return new Date(0)
  }

  return dateValue
}

export const setNumberOfRetries = (value: number) => {
  setItem(DAVINCI_CLOUDFLARE_NUMBER_OF_RETRIES_KEY, String(value))
}

export const setLastRetryDate = (value: Date) => {
  setItem(DAVINCI_CLOUDFLARE_LAST_RETRY_DATE_KEY, String(value.getTime()))
}
