nitweb: factorize APIRouter
authorAlexandre Terrasa <alexandre@moz-code.org>
Wed, 20 Jul 2016 19:41:17 +0000 (15:41 -0400)
committerAlexandre Terrasa <alexandre@moz-code.org>
Wed, 10 Aug 2016 19:46:25 +0000 (15:46 -0400)
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

src/nitweb.nit
src/web/api_catalog.nit
src/web/api_feedback.nit
src/web/api_graph.nit
src/web/web_base.nit

index d3e3f30..7c34e87 100644 (file)
@@ -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
 
index 72d207f..2535898 100644 (file)
@@ -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
index 61ba756..e994bf6 100644 (file)
@@ -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
index 67a32e2..06e6bf2 100644 (file)
@@ -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))
index 20d0b05..f48da04 100644 (file)
@@ -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.