generate static method
Generates the complete source code for the API Service file.
Implementation
static String generate(FeatureSchema schema) {
final featureName = schema.name;
final functions = schema.functions;
final camelName = FileWriter.toCamelCase(
FileWriter.toSnakeCase(featureName),
);
final className = '${camelName}ApiService';
final urlConstants = _generateUrlConstants(functions);
final requestMethods = _generateRequestMethods(functions);
final modelImports = _generateModelImports(functions);
final baseResponseImport =
schema.globalConfig.imports['base_response'] ?? '';
final baseResponseImportLine = baseResponseImport.isNotEmpty
? "import '$baseResponseImport';"
: "";
return '''import 'package:dio/dio.dart';
import 'package:retrofit/retrofit.dart';
$baseResponseImportLine
$modelImports
part '${FileWriter.toSnakeCase(featureName)}_api_service.g.dart';
@RestApi()
abstract class $className {
factory $className(Dio dio, {String baseUrl, ParseErrorLogger? errorLogger}) = _$className;
/// URL Endpoints
$urlConstants
/// Request Methods
$requestMethods
}
''';
}