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)
}
}