private def createAccount()

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