in src/main/scala/payment_failure_comms/SalesforceConnector.scala [206:229]
private def logResponse(logger: LambdaLogger, response: Response, body: String): Unit =
Log.response(logger)(
service = Log.Service.Salesforce,
url = response.request().url().toString,
method = response.request().method(),
responseCode = response.code(),
body = Some(body)
)
def handleRequestResult[T: Decoder](logger: LambdaLogger)(result: Either[Throwable, Response]): Either[Failure, T] =
result
.left.map(i => SalesforceRequestFailure(s"Attempt to contact Salesforce failed with error: ${i.toString}"))
.flatMap(response => {
val body = response.body().string()
logResponse(logger, response, body)
if (response.isSuccessful) {
decode[T](body)
.left.map(decodeError =>
SalesforceResponseFailure(s"Failed to decode successful response:$decodeError. Body to decode $body")
)
} else {
Left(SalesforceResponseFailure(s"The request to Salesforce was unsuccessful: ${response.code} - $body"))
}
})