X-Git-Url: http://nitlanguage.org diff --git a/src/web/web_actions.nit b/src/web/web_actions.nit index f4c4584..e9198ae 100644 --- a/src/web/web_actions.nit +++ b/src/web/web_actions.nit @@ -22,10 +22,10 @@ import uml class TreeAction super ModelAction - redef fun answer(request, url) do - var model = init_model_view(request) + redef fun get(req, res) do + var model = init_model_view(req) var view = new HtmlHomePage(model.to_tree) - return render_view(view) + res.send_view(view) end end @@ -34,22 +34,20 @@ class SearchAction super ModelAction # TODO handle more than full namespaces. - redef fun answer(request, url) do - var namespace = request.param("namespace") - if namespace == null or namespace.is_empty then - return render_error(400, "Missing :namespace.") + redef fun get(req, res) do + var namespace = req.param("namespace") + var model = init_model_view(req) + var mentity = find_mentity(model, namespace) + if mentity == null then + res.error(404) + return end - var model = init_model_view(request) - var mentities = model.mentities_by_namespace(namespace) - if request.is_json_asked then - var json = new JsonArray - for mentity in mentities do - json.add mentity.to_json - end - return render_json(json) + if req.is_json_asked then + res.json(mentity.to_json) + return end - var view = new HtmlResultPage(namespace, mentities) - return render_view(view) + var view = new HtmlResultPage(namespace or else "null", [mentity]) + res.send_view(view) end end @@ -60,19 +58,16 @@ class CodeAction # Modelbuilder used to access sources. var modelbuilder: ModelBuilder - # TODO handle more than full namespaces. - redef fun answer(request, url) do - var namespace = request.param("namespace") - if namespace == null or namespace.is_empty then - return render_error(400, "Missing :namespace.") - end - var model = init_model_view(request) - var mentities = model.mentities_by_namespace(namespace) - if mentities.is_empty then - return render_error(404, "No mentity matching this namespace.") + redef fun get(req, res) do + var namespace = req.param("namespace") + var model = init_model_view(req) + var mentity = find_mentity(model, namespace) + if mentity == null then + res.error(404) + return end - var view = new HtmlSourcePage(modelbuilder, mentities.first) - return render_view(view) + var view = new HtmlSourcePage(modelbuilder, mentity) + res.send_view(view) end end @@ -83,19 +78,21 @@ class DocAction # Modelbuilder used to access sources. var modelbuilder: ModelBuilder - # TODO handle more than full namespaces. - redef fun answer(request, url) do - var namespace = request.param("namespace") - if namespace == null or namespace.is_empty then - return render_error(400, "Missing :namespace.") + redef fun get(req, res) do + var namespace = req.param("namespace") + var model = init_model_view(req) + var mentity = find_mentity(model, namespace) + if mentity == null then + res.error(404) + return end - var model = init_model_view(request) - var mentities = model.mentities_by_namespace(namespace) - if mentities.is_empty then - return render_error(404, "No mentity matching this namespace.") + if req.is_json_asked then + res.json(mentity.to_json) + return end - var view = new HtmlDocPage(modelbuilder, mentities.first) - return render_view(view) + + var view = new HtmlDocPage(modelbuilder, mentity) + res.send_view(view) end end @@ -106,20 +103,17 @@ class UMLDiagramAction # Mainmodule used for hierarchy flattening. var mainmodule: MModule - redef fun answer(request, url) do - var namespace = request.param("namespace") - if namespace == null or namespace.is_empty then - return render_error(400, "Missing :namespace.") + redef fun get(req, res) do + var namespace = req.param("namespace") + var model = init_model_view(req) + var mentity = find_mentity(model, namespace) + if mentity == null then + res.error(404) + return end - var model = init_model_view(request) - var mentities = model.mentities_by_namespace(namespace) - if mentities.is_empty then - return render_error(404, "No mentity matching this namespace.") - end - var mentity = mentities.first - if mentity isa MClassDef then mentity = mentity.mclass var dot + if mentity isa MClassDef then mentity = mentity.mclass if mentity isa MClass then var uml = new UMLModel(model, mainmodule) dot = uml.generate_class_uml.write_to_string @@ -127,10 +121,11 @@ class UMLDiagramAction var uml = new UMLModel(model, mentity) dot = uml.generate_package_uml.write_to_string else - return render_error(404, "No diagram matching this namespace.") + res.error(404) + return end - var view = new HtmlDotPage(dot, mentity.html_name) - return render_view(view) + var view = new HtmlDotPage(dot, mentity.as(not null).html_name) + res.send_view(view) end end @@ -138,11 +133,10 @@ end class RandomAction super ModelAction - # TODO handle more than full namespaces. - redef fun answer(request, url) do - var n = request.int_arg("n") or else 10 - var k = request.string_arg("k") or else "modules" - var model = init_model_view(request) + redef fun get(req, res) do + var n = req.int_arg("n") or else 10 + var k = req.string_arg("k") or else "modules" + var model = init_model_view(req) var mentities: Array[MEntity] if k == "modules" then mentities = model.mmodules.to_a @@ -153,30 +147,15 @@ class RandomAction end mentities.shuffle mentities = mentities.sub(0, n) - if request.is_json_asked then + if req.is_json_asked then var json = new JsonArray for mentity in mentities do json.add mentity.to_json end - return render_json(json) + res.json(json) + return end var view = new HtmlResultPage("random", mentities) - return render_view(view) - end -end - -redef class MEntity - - # Return `self` as a JsonObject. - fun to_json: JsonObject do - var obj = new JsonObject - obj["name"] = html_name - obj["namespace"] = html_raw_namespace - var mdoc = self.mdoc - if mdoc != null then - obj["synopsis"] = mdoc.content.first.html_escape - obj["mdoc"] = mdoc.content.join("\n").html_escape - end - return obj + res.send_view(view) end end