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)
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
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
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
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
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
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
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.
import api_docdown
import api_metrics
import api_feedback
+
+redef class APIRouter
+ redef init do super
+end
class APIRouter
super Router
- # App config.
+ # App config
var config: NitwebConfig
end