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