def links()

in api/src/main/scala/com/gu/adapters/http/Links.scala [7:23]


  def links(avatars: List[Avatar], url: Req, hasMore: Boolean, pageSize: Int): List[Link] = {
    val cursor = avatars.lift(pageSize - 1).map(_.lastModified)
    val first = avatars.headOption.map(_.lastModified)
    val query = url.filters

    val next = for (c <- cursor if hasMore || query.until.isDefined) yield {
      val fs = query.copy(since = Some(c), until = None)
      Link("next", s"${url.base}${url.path}${Filter.queryString(fs)}")
    }

    val prev = for (f <- first if query.since.isDefined || query.until.isDefined) yield {
      val fs = query.copy(until = Some(f), since = None)
      Link("prev", s"${url.base}${url.path}${Filter.queryString(fs)}")
    }

    List(prev, next).flatten
  }