in src/main/scala/com/gu/appstoreconnectapi/AppStoreConnectApi.scala [106:150]
def distributeToExternalTesters(token: String, buildId: String, externalTesterConfig: ExternalTesterConfig): Try[Unit] = {
val url = s"$appStoreConnectBaseUrl/builds/$buildId/relationships/betaGroups"
val body = s"""
|{
| "data": [
| {
| "id": "${externalTesterConfig.group1.id}",
| "type": "betaGroups"
| },
| {
| "id": "${externalTesterConfig.group2.id}",
| "type": "betaGroups"
| },
| {
| "id": "${externalTesterConfig.group3.id}",
| "type": "betaGroups"
| },
| {
| "id": "${externalTesterConfig.group4.id}",
| "type": "betaGroups"
| },
| {
| "id": "${externalTesterConfig.group5.id}",
| "type": "betaGroups"
| },
| {
| "id": "${externalTesterConfig.group6.id}",
| "type": "betaGroups"
| }
| ]
|}
|""".stripMargin
val request = new Request.Builder()
.url(url)
.addHeader("Authorization", s"Bearer $token")
.post(RequestBody.create(body, MediaType.get("application/json; charset=utf-8")))
.build
for {
httpResponse <- Try(SharedClient.client.newCall(request).execute)
_ <- SharedClient.getResponseBodyIfSuccessful("App Store Connect API", httpResponse)
} yield {
logger.info(s"Successfully distributed build to ${externalTesterConfig.group1}, ${externalTesterConfig.group2}, " +
s"${externalTesterConfig.group3}, ${externalTesterConfig.group4}, ${externalTesterConfig.group5}, and ${externalTesterConfig.group6}")
}
}