From fd0e0de8db55387e99b301efd35509de75035808 Mon Sep 17 00:00:00 2001 From: Alexandre Terrasa Date: Wed, 20 Jul 2016 15:41:17 -0400 Subject: [PATCH] nitweb: factorize APIRouter Signed-off-by: Alexandre Terrasa --- src/nitweb.nit | 12 +++--------- src/web/api_catalog.nit | 8 +------- src/web/api_feedback.nit | 8 +------- src/web/api_graph.nit | 8 +------- src/web/web_base.nit | 11 +++++++++++ 5 files changed, 17 insertions(+), 30 deletions(-) diff --git a/src/nitweb.nit b/src/nitweb.nit index d3e3f30..7c34e87 100644 --- a/src/nitweb.nit +++ b/src/nitweb.nit @@ -72,7 +72,7 @@ private class NitwebPhase var app = new App app.use_before("/*", new RequestClock) - app.use("/api", new APIRouter(model, modelbuilder, mainmodule, catalog, collection)) + app.use("/api", new NitwebAPIRouter(model, mainmodule, modelbuilder, catalog, stars)) app.use("/*", new StaticHandler(toolcontext.share_dir / "nitweb", "index.html")) app.use_after("/*", new ConsoleLog) @@ -81,18 +81,12 @@ private class NitwebPhase end # Group all api handlers in one router. -class APIRouter - super Router - - # Model to pass to handlers. - var model: Model +class NitwebAPIRouter + super APIRouter # ModelBuilder to pass to handlers. var modelbuilder: ModelBuilder - # Mainmodule to pass to handlers. - var mainmodule: MModule - # Catalog to pass to handlers. var catalog: Catalog diff --git a/src/web/api_catalog.nit b/src/web/api_catalog.nit index 72d207f..2535898 100644 --- a/src/web/api_catalog.nit +++ b/src/web/api_catalog.nit @@ -19,13 +19,7 @@ import catalog # Group all api handlers in one router. class APICatalogRouter - super Router - - # Model to pass to handlers. - var model: Model - - # Mainmodule to pass to handlers. - var mainmodule: MModule + super APIRouter # Catalog to pass to handlers. var catalog: Catalog diff --git a/src/web/api_feedback.nit b/src/web/api_feedback.nit index 61ba756..e994bf6 100644 --- a/src/web/api_feedback.nit +++ b/src/web/api_feedback.nit @@ -20,13 +20,7 @@ import mongodb # Group all api handlers in one router class APIFeedbackRouter - super Router - - # Model to pass to handlers - var model: Model - - # Mainmodule to pass to handlers - var mainmodule: MModule + super APIRouter # Mongo collection used to store ratings var collection: MongoCollection diff --git a/src/web/api_graph.nit b/src/web/api_graph.nit index 67a32e2..06e6bf2 100644 --- a/src/web/api_graph.nit +++ b/src/web/api_graph.nit @@ -21,13 +21,7 @@ import uml # Group all api handlers in one router. class APIGraphRouter - super Router - - # Model to pass to handlers. - var model: Model - - # Mainmodule to pass to handlers. - var mainmodule: MModule + super APIRouter init do use("/inheritance/:id", new APIInheritanceGraph(model, mainmodule)) diff --git a/src/web/web_base.nit b/src/web/web_base.nit index 20d0b05..f48da04 100644 --- a/src/web/web_base.nit +++ b/src/web/web_base.nit @@ -87,6 +87,17 @@ abstract class APIHandler end end +# A Rooter dedicated to APIHandlers. +class APIRouter + super Router + + # Model to use. + var model: Model + + # MModule used to flatten model. + var mainmodule: MModule +end + redef class MEntity # URL to `self` within the web interface. -- 1.7.9.5