nitweb: split APIRouter in modules
authorAlexandre Terrasa <alexandre@moz-code.org>
Thu, 25 Aug 2016 04:36:22 +0000 (00:36 -0400)
committerAlexandre Terrasa <alexandre@moz-code.org>
Thu, 25 Aug 2016 04:36:22 +0000 (00:36 -0400)
Signed-off-by: Alexandre Terrasa <alexandre@moz-code.org>

src/nitweb.nit
src/web/api_catalog.nit
src/web/api_docdown.nit
src/web/api_feedback.nit
src/web/api_graph.nit
src/web/api_metrics.nit
src/web/api_model.nit
src/web/web.nit
src/web/web_base.nit

index 61117a5..071a2af 100644 (file)
@@ -85,7 +85,7 @@ private class NitwebPhase
 
                app.use_before("/*", new SessionInit)
                app.use_before("/*", new RequestClock)
-               app.use("/api", new NitwebAPIRouter(config))
+               app.use("/api", new APIRouter(config))
                app.use("/login", new GithubLogin(config.github_client_id))
                app.use("/oauth", new GithubOAuthCallBack(config.github_client_id, config.github_client_secret))
                app.use("/logout", new GithubLogout)
@@ -96,29 +96,6 @@ private class NitwebPhase
        end
 end
 
-# Group all api handlers in one router.
-class NitwebAPIRouter
-       super APIRouter
-
-       init do
-               use("/catalog", new APICatalogRouter(config))
-               use("/list", new APIList(config))
-               use("/search", new APISearch(config))
-               use("/random", new APIRandom(config))
-               use("/entity/:id", new APIEntity(config))
-               use("/code/:id", new APIEntityCode(config))
-               use("/uml/:id", new APIEntityUML(config))
-               use("/linearization/:id", new APIEntityLinearization(config))
-               use("/defs/:id", new APIEntityDefs(config))
-               use("/feedback/", new APIFeedbackRouter(config))
-               use("/inheritance/:id", new APIEntityInheritance(config))
-               use("/graph/", new APIGraphRouter(config))
-               use("/docdown/", new APIDocdown(config))
-               use("/metrics/", new APIMetricsRouter(config))
-               use("/user", new GithubUser)
-       end
-end
-
 # build toolcontext
 var toolcontext = new ToolContext
 var tpl = new Template
index 294d072..30b8757 100644 (file)
@@ -40,16 +40,14 @@ redef class NitwebConfig
        end
 end
 
-# Group all api handlers in one router.
-class APICatalogRouter
-       super APIRouter
-
-       init do
-               use("/highlighted", new APICatalogHighLighted(config))
-               use("/required", new APICatalogMostRequired(config))
-               use("/bytags", new APICatalogByTags(config))
-               use("/contributors", new APICatalogContributors(config))
-               use("/stats", new APICatalogStats(config))
+redef class APIRouter
+       redef init do
+               super
+               use("/catalog/highlighted", new APICatalogHighLighted(config))
+               use("/catalog/required", new APICatalogMostRequired(config))
+               use("/catalog/bytags", new APICatalogByTags(config))
+               use("/catalog/contributors", new APICatalogContributors(config))
+               use("/catalog/stats", new APICatalogStats(config))
        end
 end
 
index bf4c80f..778baa1 100644 (file)
@@ -20,6 +20,13 @@ intrude import doc_down
 intrude import markdown::wikilinks
 import doc_commands
 
+redef class APIRouter
+       redef init do
+               super
+               use("/docdown/", new APIDocdown(config))
+       end
+end
+
 # Docdown handler accept docdown as POST data and render it as HTML
 class APIDocdown
        super APIHandler
index 5db1d04..221a25e 100644 (file)
@@ -23,12 +23,10 @@ redef class NitwebConfig
        var stars: MongoCollection is lazy do return db.collection("stars")
 end
 
-# Group all api handlers in one router
-class APIFeedbackRouter
-       super APIRouter
-
-       init do
-               use("/stars/:id", new APIStars(config))
+redef class APIRouter
+       redef init do
+               super
+               use("/feedback/stars/:id", new APIStars(config))
        end
 end
 
index d58031d..851da48 100644 (file)
@@ -19,12 +19,10 @@ import web_base
 import dot
 import uml
 
-# Group all api handlers in one router.
-class APIGraphRouter
-       super APIRouter
-
+redef class APIRouter
        init do
-               use("/inheritance/:id", new APIInheritanceGraph(config))
+               super
+               use("/graph/inheritance/:id", new APIInheritanceGraph(config))
        end
 end
 
index 8d64c04..af95f53 100644 (file)
@@ -17,12 +17,10 @@ module api_metrics
 import web_base
 import metrics
 
-# Group all api handlers in one router.
-class APIMetricsRouter
-       super APIRouter
-
-       init do
-               use("/structural/:id", new APIStructuralMetrics(config))
+redef class APIRouter
+       redef init do
+               super
+               use("/metrics/structural/:id", new APIStructuralMetrics(config))
        end
 end
 
index 63fd636..2b39462 100644 (file)
@@ -18,6 +18,21 @@ import web_base
 import highlight
 import uml
 
+redef class APIRouter
+       redef init do
+               super
+               use("/list", new APIList(config))
+               use("/search", new APISearch(config))
+               use("/random", new APIRandom(config))
+               use("/entity/:id", new APIEntity(config))
+               use("/code/:id", new APIEntityCode(config))
+               use("/uml/:id", new APIEntityUML(config))
+               use("/linearization/:id", new APIEntityLinearization(config))
+               use("/defs/:id", new APIEntityDefs(config))
+               use("/inheritance/:id", new APIEntityInheritance(config))
+       end
+end
+
 # List all mentities.
 #
 # MEntities can be filtered on their kind using the `k` parameter.
index 63571c0..24e1202 100644 (file)
@@ -21,3 +21,7 @@ import api_graph
 import api_docdown
 import api_metrics
 import api_feedback
+
+redef class APIRouter
+       redef init do super
+end
index 26bd55e..06a0ff5 100644 (file)
@@ -106,7 +106,7 @@ end
 class APIRouter
        super Router
 
-       # App config.
+       # App config
        var config: NitwebConfig
 end