generate static method
Implementation
static String generate(FeatureSchema schema) {
final camelName = FileWriter.toCamelCase(
FileWriter.toSnakeCase(schema.name),
);
final className = '${camelName}Repository';
final implClassName = '${className}Impl';
final apiServiceName = '${camelName}ApiService';
final snakeName = FileWriter.toSnakeCase(schema.name);
final methods = schema.functions.map(generateMethod).join('\n');
final modelImports = _generateModelImports(schema.functions, '../models');
final baseRepoImport = schema.globalConfig.imports['base_repository'] ?? '';
final baseRepoImportLine = baseRepoImport.isNotEmpty
? "import '$baseRepoImport';"
: "";
final dataStateImport = schema.globalConfig.imports['data_state'] ?? '';
final dataStateImportLine = dataStateImport.isNotEmpty
? "import '$dataStateImport';"
: "";
return '''import '../data_sources/${snakeName}_api_service.dart';
import '../../domain/repositories/${snakeName}_repository.dart';
$dataStateImportLine
$baseRepoImportLine
$modelImports
class $implClassName with BaseRepository implements $className {
final $apiServiceName _apiService;
$implClassName(this._apiService);
$methods
}
''';
}