in src/main/kotlin/org/jetbrains/teamcity/github/controllers/WebHooksController.kt [100:145]
override fun doHandle(request: HttpServletRequest, response: HttpServletResponse): ModelAndView? {
val action = request.getParameter("action")
val popup = PropertiesUtil.getBoolean(request.getParameter("popup"))
var element: JsonElement
try {
when (action) {
in listOf("add", "check", "delete", "ping", "install") -> {
element = doHandleAction(request, action, popup)
}
"tokenGranted" -> {
return ModelAndView(myTokenGrantedPath)
}
"check-all" -> {
element = doHandleCheckAllAction(request, popup)
}
"get-info" -> {
element = doHandleGetInfoAction(request)
}
else -> {
LOG.warn("Unknown action '$action'")
response.status = HttpServletResponse.SC_NOT_FOUND
return simpleView("Unknown action '$action'")
}
}
} catch(e: MyRequestException) {
element = e.element
}
if (element is JsonObject) {
element.addProperty("action", action)
}
if (!popup) {
response.contentType = MediaType.APPLICATION_JSON_VALUE
val writer = JsonWriter(OutputStreamWriter(response.outputStream))
Gson().toJson(element, writer)
writer.flush()
return null
} else {
if (element is JsonObject) {
val url = element.getAsJsonPrimitive("redirect")?.asString
if (url != null) {
return redirectTo(url, response)
}
}
}
return SimpleView.createTextView("Unrecognized request: " + WebUtil.getRequestDump(request) + ", action result: " + element.toString())
}