def nextVersion()

in common/src/main/scala/com/gu/sfl/model/model.scala [47:63]


  def nextVersion() = Instant.now().toEpochMilli.toString
  def apply(articles: List[SavedArticle]) : SavedArticles = SavedArticles(nextVersion(), articles)
  def apply(dirtySavedArticles: DirtySavedArticles) : SavedArticles = SavedArticles(dirtySavedArticles.version, buildArticlesWithDates(dirtySavedArticles))
  private def buildArticlesWithDates(dirtySavedArticles: DirtySavedArticles) = {
    val startingDate = dirtySavedArticles.articles.flatMap(_.date).headOption.map(_.minusDays(1)).getOrElse(oldDate)
    dirtySavedArticles.articles.foldLeft((startingDate, List.empty[SavedArticle])) {
      case ((lastGoodDate, clean), dirtySavedArticle) => {
        dirtySavedArticle match {
          case DirtySavedArticle(Some(id), Some(shortUrl), date, read) => {
            val thisDate = date.getOrElse(lastGoodDate.plusSeconds(1))
            (thisDate, SavedArticle(id, shortUrl, thisDate, read) :: clean)
          }
          case _ => (lastGoodDate, clean)
        }
      }
    }._2.reverse
  }