listControllers method
List all controllers
Implementation
Future<Map<String, dynamic>> listControllers(
Map<String, dynamic> params,
) async {
try {
final controllers = await _scanner.findControllers();
final includeDetails = params['includeDetails'] as bool? ?? false;
final controllerList = <Map<String, dynamic>>[];
for (final controller in controllers) {
final relativePath = FileUtils.getRelativePath(projectRoot, controller);
final classInfo = await CodeParser.extractClassInfo(controller);
final controllerData = <String, dynamic>{
'path': relativePath,
'absolutePath': controller,
};
if (includeDetails && classInfo != null) {
controllerData['className'] = classInfo.name;
controllerData['annotations'] = classInfo.annotations;
final routes = await CodeParser.extractRoutes(controller);
controllerData['routes'] = routes.map((r) => r.toJson()).toList();
}
controllerList.add(controllerData);
}
return {
'success': true,
'count': controllerList.length,
'controllers': controllerList,
};
} catch (e) {
return {
'success': false,
'error': e.toString(),
};
}
}