def act()

in riff-raff/app/notification/hooks.scala [57:102]


  def act(
      record: DeployRecordDocument
  )(implicit wSClient: WSClient, executionContext: ExecutionContext): Unit = {
    if (enabled) {
      val urlRequest = request(record)
      log.info(s"Calling ${urlRequest.url}")
      (method match {
        case GET =>
          urlRequest.get()
        case POST =>
          postBody
            .map { t =>
              val body = new HookTemplate(t, record, urlEncode = false).Template
                .run()
                .get
              val json = Try {
                Json.parse(body)
              }.toOption
              json.map(urlRequest.post(_)).getOrElse(urlRequest.post(body))
            }
            .getOrElse(
              urlRequest.post(
                Map[String, Seq[String]](
                  "build" -> Seq(record.parameters.buildId),
                  "project" -> Seq(record.parameters.projectName),
                  "stage" -> Seq(record.parameters.stage),
                  "deployer" -> Seq(record.parameters.deployer),
                  "uuid" -> Seq(record.uuid.toString),
                  "tags" -> record.parameters.tags.toSeq.map { case (k, v) =>
                    s"$k:$v"
                  }
                )
              )
            )
      }).map { response =>
        log.info(s"HTTP status code ${response.status} from ${urlRequest.url}")
        log.debug(
          s"HTTP response body from ${urlRequest.url}: ${response.status}"
        )
      }.recover { case NonFatal(e) =>
        log.error(s"Problem calling ${urlRequest.url}", e)
      }
    } else {
      log.info("Hook disabled")
    }
  }