private def selectMainImage()

in src/main/scala/com/gu/mobile/content/notifications/lib/ContentAlertPayloadBuilder.scala [95:105]


  private def selectMainImage(content: Content, minWidth: Int): Option[String] = {
    def width(asset: Asset): Int = asset.assetWidth.flatMap { aw => Try(aw.toInt).toOption }.getOrElse(0)
    def sortedAssets(element: Element): Seq[Asset] = element.assets.sortBy(width).toSeq

    val elements = content.elements.getOrElse(Nil)
    val mainImage = elements.find {
      e => e.`type` == ElementType.Image && e.relation == "main"
    }
    val selectedAsset = mainImage.flatMap { image => sortedAssets(image).find(asset => width(asset) >= minWidth) }
    selectedAsset.flatMap(_.file)
  }