generateRouteMethod static method

String generateRouteMethod({
  1. required String httpMethod,
  2. required String path,
  3. required String methodName,
  4. required String returnType,
  5. List<Map<String, String>>? parameters,
})

Generate a route method

Implementation

static String generateRouteMethod({
  required String httpMethod,
  required String path,
  required String methodName,
  required String returnType,
  List<Map<String, String>>? parameters,
}) {
  final buffer = StringBuffer();

  buffer.writeln('  @$httpMethod(\'$path\')');
  buffer.write('  $returnType $methodName(');

  if (parameters != null && parameters.isNotEmpty) {
    final params = parameters.map((p) {
      final type = p['type']!;
      final name = p['name']!;
      final annotation = p['annotation'];

      if (annotation != null) {
        return '@$annotation() $type $name';
      }
      return '$type $name';
    }).join(', ');

    buffer.write(params);
  }

  buffer.writeln(') {');
  buffer.writeln('    // TODO: Implement $methodName');

  if (returnType == 'String') {
    buffer.writeln("    return 'Response from $methodName';");
  } else if (returnType.startsWith('List')) {
    buffer.writeln('    return [];');
  } else if (returnType.startsWith('Map')) {
    buffer.writeln('    return {};');
  } else if (returnType == 'void') {
    buffer.writeln('    // Implementation here');
  } else {
    buffer.writeln('    throw UnimplementedError();');
  }

  buffer.writeln('  }');

  return buffer.toString();
}