in payment-failure/src/main/scala/com/gu/identity/paymentfailure/BrazeClient.scala [11:31]
def sendEmail(request: BrazeSendRequest) : Either[Throwable, BrazeResponse] = {
logger.info(s"sending email via Braze - request data: $request")
Either.catchNonFatal(
Http(s"${config.brazeApiHost}/campaigns/trigger/send")
.header("content-type", "application/json")
.postData(request.asJson.toString)
.asString
).flatMap { response =>
val body = response.body
if (response.isSuccess) {
logger.info(s"successfully executed braze request: $request - response body: $body")
decode[BrazeResponse](body)
} else {
val message = s"failed to send email from Braze, error with status ${response.code} - error $body"
logger.error(message)
Left(new Exception(message))
}
}
}