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();
_mountPoint = 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);
}