generateBlocController method
Implementation
String generateBlocController(String name) {
final className = toPascalCase(name);
final variableName = toCamelCase(name);
return '''
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:equatable/equatable.dart';
import '../../domain/entities/${toSnakeCase(name)}_entity.dart';
import '../../domain/usecases/${toSnakeCase(name)}_usecase.dart';
part '${toSnakeCase(name)}_event.dart';
part '${toSnakeCase(name)}_state.dart';
class ${className}Bloc extends Bloc<${className}Event, ${className}State> {
${className}Bloc(this._${variableName}UseCase) : super(${className}Initial()) {
on<Load${className}s>(_onLoad${className}s);
on<Refresh${className}s>(_onRefresh${className}s);
}
final ${className}UseCase _${variableName}UseCase;
Future<void> _onLoad${className}s(
Load${className}s event,
Emitter<${className}State> emit,
) async {
emit(${className}Loading());
try {
final result = await _${variableName}UseCase();
emit(${className}Loaded(result));
} catch (e) {
emit(${className}Error(e.toString()));
}
}
Future<void> _onRefresh${className}s(
Refresh${className}s event,
Emitter<${className}State> emit,
) async {
emit(${className}Loading());
try {
final result = await _${variableName}UseCase();
emit(${className}Loaded(result));
} catch (e) {
emit(${className}Error(e.toString()));
}
}
}
''';
}