def combineAppStoreVersionsResponseModels()

in src/main/scala/com/gu/appstoreconnectapi/Conversion.scala [39:56]


  def combineAppStoreVersionsResponseModels(appStoreVersionsResponse: AppStoreVersionsResponse): Try[List[LiveAppProduction]] = {
    val appStoreVersionsWithBuild = appStoreVersionsResponse.data.filter(_.relationships.build.data.isDefined)
    val appStoreVersionsIds = appStoreVersionsWithBuild.map(_.id)
    val buildDetailsIds = appStoreVersionsResponse.data.flatMap(_.relationships.build.data.map(_.id))
    if (appStoreVersionsIds.size != buildDetailsIds.size) {
      Failure(CombinedResponseException)
    } else {
      val productionVersions = appStoreVersionsWithBuild.map {
        appStoreVersion =>
          val buildDetails = appStoreVersionsResponse.included.find(_.id == appStoreVersion.relationships.build.data.map(_.id).get).get
          LiveAppProduction(
            appStoreVersion.attributes.versionString,
            buildDetails.attributes.version,
            appStoreVersion.attributes.appStoreState)
      }
      Success(productionVersions)
    }
  }