in src/main/scala/payment_failure_comms/TestEventLoader.scala [56:94]
private def createAccount(config: BrazeConfig) =
new Request.Builder()
.header("Authorization", s"Bearer ${config.bearerToken}")
.url(s"https://${config.instanceUrl}/users/track")
.post(
RequestBody.create(
s"""{"attributes":["external_id":"$externalId","email":"$emailAddress"]}""",
MediaType.get("application/json; charset=utf-8")
)
)
.build().pipe(request =>
Try(http.newCall(request).execute()).toEither.left.map(e => BrazeRequestFailure(e.getMessage))
)
private def deleteAccount(config: BrazeConfig) =
new Request.Builder()
.header("Authorization", s"Bearer ${config.bearerToken}")
.url(s"https://${config.instanceUrl}/users/delete")
.post(
RequestBody.create(s"""{"external_ids":["$externalId"]}""", MediaType.get("application/json; charset=utf-8"))
)
.build()
.pipe(request => Try(http.newCall(request).execute()).toEither.left.map(e => BrazeRequestFailure(e.getMessage)))
private def mkCustomEvent(config: BrazeConfig, productName: String, eventName: String, daysBeforeNow: Int) =
CustomEvent(
external_id = externalId,
app_id = config.zuoraAppId,
name = eventName,
time = LocalDateTime.now.minusDays(daysBeforeNow).toString,
properties = EventProperties(product = productName, currency = "GBP", amount = 1)
)
private def genScenario(config: BrazeConfig, events: Seq[CustomEventWithAttributes]) = {
val attributes = events.flatMap(_.attributes)
val customEvents = events.map(_.event)
BrazeConnector.sendCustomEvents(config, NoOpLogger())(payload = BrazeTrackRequest(attributes, customEvents))
}