in pan-domain-auth-play/src/main/scala/com/gu/pandomainauth/service/OAuth.scala [24:33]
private def fetchDiscoveryDocument(): Future[DiscoveryDocument] =
ws.url(config.discoveryDocumentUrl).get().map(response => DiscoveryDocument.fromJson(response.json))
private def discoveryDocument: Future[DiscoveryDocument] =
discoveryDocumentHolder.updateAndGet(futureDiscoveryDocument =>
if (futureDiscoveryDocument.value.exists(_.isFailure)) {
fetchDiscoveryDocument()
} else {
futureDiscoveryDocument
}