generateController method
Implementation
String generateController(String name) {
final className = toPascalCase(name);
final variableName = toCamelCase(name);
if (config.defaultStateManager == 'bloc') {
return generateBlocController(name);
}
return '''
import 'package:get/get.dart';
import '../../domain/entities/${toSnakeCase(name)}_entity.dart';
import '../../domain/usecases/${toSnakeCase(name)}_usecase.dart';
class ${className}Controller extends GetxController {
${className}Controller(this._${variableName}UseCase);
final ${className}UseCase _${variableName}UseCase;
final _isLoading = false.obs;
final _${variableName}List = <${className}Entity>[].obs;
bool get isLoading => _isLoading.value;
List<${className}Entity> get ${variableName}List => _${variableName}List;
@override
void onInit() {
super.onInit();
load${className}s();
}
Future<void> load${className}s() async {
try {
_isLoading.value = true;
final result = await _${variableName}UseCase();
_${variableName}List.value = result;
} catch (e) {
Get.snackbar('Error', 'Failed to load ${variableName}s: \$e');
} finally {
_isLoading.value = false;
}
}
Future<void> refresh() async {
await load${className}s();
}
}
''';
}