applyRoutes method
Applies the routes from this Controller
to some router
.
Implementation
Future<String> applyRoutes(
Router<RequestHandler> router, Reflector reflector) async {
// Load global expose decl
var classMirror = reflector.reflectClass(runtimeType)!;
var exposeDecl = findExpose(reflector);
if (exposeDecl == null) {
throw Exception('All controllers must carry an @Expose() declaration.');
}
var routable = Routable();
var m = router.mount(exposeDecl.path!, routable);
_mountPoint = m;
var typeMirror = reflector.reflectType(runtimeType);
// Pre-reflect methods
var instanceMirror = reflector.reflectInstance(this);
final handlers = <RequestHandler>[...exposeDecl.middleware!, ...middleware];
final routeBuilder =
_routeBuilder(reflector, instanceMirror, routable, handlers);
await configureRoutes(routable);
classMirror.declarations.forEach(routeBuilder);
// Return the name.
var result =
exposeDecl.as?.isNotEmpty == true ? exposeDecl.as : typeMirror!.name;
return Future.value(result);
}