in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/FcmTransportJdkImpl.scala [94:104]
private[fcm] def handleResponse(response: HttpResponse[String]): Try[FcmResponse] = {
if (response.statusCode() == 200)
parseBody(response.body())
else
parseError(response.body()).flatMap(fcmError => fcmError.error.fcmErrorCode.getOrElse(fcmError.error.status) match {
case code if invalidTokenErrorCodes.contains(code) => Failure(InvalidTokenException(fcmError.error))
case code if internalServerErrorCodes.contains(code) => Failure(FcmServerException(fcmError.error))
case code if quotaExceededErrorCodes.contains(code) => Failure(QuotaExceededException(fcmError.error))
case _ => Failure(UnknownException(fcmError.error))
})
}