private def logResponse()

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