generateBlocEventTemplate method
Generates BLoC event template.
Creates event classes for triggering API operations with proper stream control events for SSE methods.
Parameters:
config: API generation configuration
Implementation
String generateBlocEventTemplate(ApiGenerationConfig config) {
final bodyClass =
typeResolver.resolveBodyClass(config.apiClassName, config.bodyList);
return '''part of '${config.apiName}_bloc.dart';
@immutable
abstract class ${config.apiClassName}Event extends Equatable {}
class Fetch${config.apiClassName} extends ${config.apiClassName}Event {
Fetch${config.apiClassName}(this.body, {this.headers, this.extra, ${typeResolver.isApplyCacheStrategy(config.method) ? 'this.cacheStrategy,' : ''}});
final $bodyClass body;
final Map<String, String>? headers;
final dynamic extra;
${typeResolver.isApplyCacheStrategy(config.method) ? 'final CacheStrategy? cacheStrategy;' : ''}
@override
List<Object?> get props => [body, headers, extra, ${typeResolver.isApplyCacheStrategy(config.method) ? 'cacheStrategy,' : ''}];
}
class Cancel${config.apiClassName} extends ${config.apiClassName}Event {
Cancel${config.apiClassName}({this.extra});
final dynamic extra;
@override
List<Object?> get props => [extra];
}
${typeResolver.whenMethod(
config.method,
onStream: () {
return '''class Pause${config.apiClassName} extends ${config.apiClassName}Event {
Pause${config.apiClassName}({this.extra});
final dynamic extra;
@override
List<Object?> get props => [extra];
}
class Resume${config.apiClassName} extends ${config.apiClassName}Event {
Resume${config.apiClassName}({this.extra});
final dynamic extra;
@override
List<Object?> get props => [extra];
}''';
},
onFuture: () => '',
)}''';
}