gerarModeloDart static method

StringBuffer gerarModeloDart(
  1. String jsonBody,
  2. String nameClasse
)

Implementation

static StringBuffer gerarModeloDart(String jsonBody, String nameClasse) {
  final Map<String, dynamic> jsonData = json.decode(jsonBody);

  final StringBuffer buffer = StringBuffer();

  List<String> internalClasses = [];
  GenerateClasses.generateInternalClasses(jsonData, internalClasses);

  Iterable newValue = internalClasses.reversed;
  buffer.writeAll(newValue);

  buffer.writeln('class ${ConverterCamelCase.converterCamelCase(nameClasse)} {');

  List<String> entryValueFirst = [];
  List<String> entryKey = [];

  for (final entry in jsonData.entries) {
    final key = entry.key;
    String getTipoDart = GetType.getTipoDart(entry);
    buffer.writeln('  $getTipoDart ${ConverterCamelCase.converterCamelCase(key)};');
    if(getTipoDart.contains("Model") && getTipoDart.contains("List<")){
      entryValueFirst.add(jsonEncode(entry.value.first));
      entryKey.add("${Capitalize.capitalizeFirstLetter(entry.key)}Model");
    }
  }

  buffer.writeln('\n  ${ConverterCamelCase.converterCamelCase(nameClasse)}({');

  for (final entry in jsonData.entries) {
    final key = entry.key;
    buffer.writeln('    required this.${ConverterCamelCase.converterCamelCase(key)},');
  }

  buffer.writeln('  });');

  buffer.writeln('\n  factory ${ConverterCamelCase.converterCamelCase(nameClasse)}.fromJson(Map<String, dynamic> json) => ${ConverterCamelCase.converterCamelCase(nameClasse)}(');

  for (final entry in jsonData.entries) {
    final key = entry.key;
    buffer.writeln('    ${ConverterCamelCase.converterCamelCase(key)}: ${GetFrom.getFromJsonConversion(entry)},');
  }

  buffer.writeln('  );');

  buffer.writeln('\n  Map<String, dynamic> toJson() => {');

  for (final entry in jsonData.entries) {
    final key = entry.key;
    buffer.writeln('    "$key": ${ConverterCamelCase.converterCamelCase(key)},');
  }

  buffer.writeln('  };');

  buffer.writeln('}\n');

  for(int i = 0 ; i < entryValueFirst.length ; i++){
    buffer.writeln(gerarModeloDart(entryValueFirst[i], entryKey[i]));
  }


  return buffer;
}