private boolean isPublishable(Route route) { return route.isAPI() // non-API routes (e.g. pages) won't be published && !route.config().internal() // don't publish internal routes && route.config().meta().publish() // a route can be configured not to be published && !route.path().startsWith("/_"); // routes having paths starting with '/_' are considered private }
private Map<String, Object> defaultResponses(Route route) { RouteMeta meta = route.config().meta(); Map<String, Object> responses = U.map(); Map<String, Object> schema = U.notEmpty(meta.outputSchema()) ? meta.outputSchema().toOpenAPISchema() : U.map(); MediaType mediaType = U.or(route.config().contentType(), MediaType.JSON); String contentType = new String(mediaType.getBytes()); Map<String, Object> ok = U.map( "description", "success", "content", U.map( contentType, schema ) ); responses.put("200", ok); Map<String, Object> error = U.map( "description", "unexpected error", "content", U.map( contentType, OpenAPIModel.schemaRef("Error") ) ); responses.put("default", error); return responses; }
private Map<String, Object> descRoute(Route route, Map<String, Object> components) { Map<String, Object> desc = U.map(); RouteMeta meta = route.config().meta(); if (meta.summary() != null) { desc.put("summary", meta.summary()); } if (meta.description() != null) { desc.put("description", meta.description()); } if (meta.id() != null) { desc.put("operationId", meta.id()); } if (U.notEmpty(meta.tags())) { desc.put("tags", meta.tags()); } if (U.notEmpty(meta.inputSchema())) { desc.put("parameters", meta.inputSchema().toOpenAPISchema()); } desc.put("responses", U.notEmpty(meta.responses()) ? meta.responses() : defaultResponses(route)); return desc; }
private static Tag routeRow(Route route, List<HttpVerb> verbs, boolean withHandler) { RouteConfig config = route.config(); Tag verb = td(); for (HttpVerb vrb : verbs) { verb = verb.append(verb(vrb)); } Tag path = td(route.path()); Tag zone = td(config.zone()); Tag roles = td(display(config.roles().isEmpty() ? "" : config.roles())); Tag hnd = td(route.handler()); Tag ctype = td(config.contentType().info()); String viewName = config.mvc() ? viewName(route, config) : ""; Tag view = td(viewName); Tag mvc = td(config.mvc() ? fa("check") : ""); return tr(verb, path, zone, ctype, mvc, view, roles, withHandler ? hnd : null); }
@Override public Set<Route> allNonAdmin() { Set<Route> routes = U.set(all()); for (Iterator<Route> it = routes.iterator(); it.hasNext(); ) { Route route = it.next(); if (route.config().zone().equalsIgnoreCase("admin")) { it.remove(); } } return routes; }
@Override public Set<Route> allAdmin() { Set<Route> routes = U.set(all()); for (Iterator<Route> it = routes.iterator(); it.hasNext(); ) { Route route = it.next(); if (!route.config().zone().equalsIgnoreCase("admin")) { it.remove(); } } return routes; }
private static Tag routeRow(Route route, List<HttpVerb> verbs, boolean withHandler) { RouteConfig config = route.config(); Tag verb = td(); for (HttpVerb vrb : verbs) { verb = verb.append(verb(vrb)); } Tag path = td(route.path()); Tag zone = td(config.zone()); Tag roles = td(display(config.roles().isEmpty() ? "" : config.roles())); Tag hnd = td(route.handler()); Tag ctype = td(config.contentType().info()); String viewName = config.mvc() ? viewName(route, config) : ""; Tag view = td(viewName); Tag mvc = td(config.mvc() ? fa("check") : ""); return tr(verb, path, zone, ctype, mvc, view, roles, withHandler ? hnd : null); }