- var catalog: Catalog
-
- init do
- use("/highlighted", new APICatalogHighLighted(model, mainmodule, catalog))
- use("/required", new APICatalogMostRequired(model, mainmodule, catalog))
- use("/bytags", new APICatalogByTags(model, mainmodule, catalog))
- use("/contributors", new APICatalogContributors(model, mainmodule, catalog))
- use("/stats", new APICatalogStats(model, mainmodule, catalog))
+ var catalog: Catalog is noinit
+
+ # Build the catalog
+ #
+ # This method should be called at nitweb startup.
+ fun build_catalog do
+ var catalog = new Catalog(modelbuilder)
+ for mpackage in model.mpackages do
+ catalog.deps.add_node(mpackage)
+ for mgroup in mpackage.mgroups do
+ for mmodule in mgroup.mmodules do
+ for imported in mmodule.in_importation.direct_greaters do
+ var ip = imported.mpackage
+ if ip == null or ip == mpackage then continue
+ catalog.deps.add_edge(mpackage, ip)
+ end
+ end
+ end
+ catalog.git_info(mpackage)
+ catalog.package_page(mpackage)
+ end
+ self.catalog = catalog
+ end
+end
+
+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))