def findByBaseImage()

in app/data/Recipes.scala [131:158]


  def findByBaseImage(imageId: BaseImageId)(implicit
      dynamo: Dynamo
  ): Iterable[Recipe] = filteredList(_.baseImageId == imageId)

  def incrementAndGetBuildNumber(
      id: RecipeId
  )(implicit dynamo: Dynamo): Option[Int] = {
    val updateRequest = UpdateItemRequest
      .builder()
      .tableName(table.name)
      .key(Map("id" -> AttributeValue.builder.s(id.value).build()).asJava)
      .updateExpression("ADD nextBuildNumber :val1")
      .conditionExpression(
        "attribute_exists(id)"
      ) // to ensure the recipe exists in Dynamo
      .expressionAttributeValues(
        Map(":val1" -> AttributeValue.builder().n("1").build()).asJava
      )
      .returnValues(
        ReturnValue.UPDATED_NEW
      ) // TODO Scanamo doesn't support this
      .build
    val updateResult = dynamo.client.updateItem(updateRequest)
    if (updateResult.attributes.containsKey("nextBuildNumber"))
      Some(updateResult.attributes.get("nextBuildNumber").n.toInt)
    else
      None
  }