generate method
dynamic
generate()
Implementation
generate() async {
final className = module.name.pascalCase;
final modelName = module.modelName.pascalCase;
final varName = module.modelName.camelCase;
final filename = module.name.toLowerCaseWithUnderscore();
final filenameModel = module.modelName.toLowerCaseWithUnderscore();
var baseDir = Directory("./lib/modules/$filename/controllers/");
if (await baseDir.exists()) {
baseDir.createSync(recursive: true);
}
String importFile = "";
String varInput = "";
String varInputImage = "";
String varFilter = "";
String varParameters = "";
String varParametersImage = "";
String varSetText = "";
for (final field in module.fields!) {
if (field.primary) {
continue;
}
final varField = field.name.camelCase;
final varFieldUpper = field.name.pascalCase;
final varFieldLowerSpace = field.name.toLowerCaseSpace();
final varFieldInput = field.name.toLowerCaseWithUnderscore();
switch (field.input) {
case "image":
importFile += "import 'dart:io';";
importFile += "\nimport 'package:path/path.dart';";
varInput += "var $varField = '';\n";
varInput += "var ${varField}Error = '';\n";
varInputImage += """
set$varFieldUpper(String v) {
setState(() {
$varField = v;
});
}
""";
varFilter += """
if ($varField.isEmpty && !isEdit) {
setState(() {
$varField = 'Please pickup a $varFieldLowerSpace';
});
if (isValid) isValid = false;
} else {
setState(() {
$varField = '';
});
}
""";
varParametersImage += """
if ($varField.isNotEmpty) {
File file = File($varField);
params['$varFieldInput'] = await dio.MultipartFile.fromFile(
file.path,
filename: basename(file.path),
);
}
""";
break;
default:
varInput += "final txt$varFieldUpper = TextEditingController();\n";
varParameters += "'$varFieldInput': txt$varFieldUpper.text,\n";
varSetText +=
"txt$varFieldUpper.text = $varName!.$varField${field.type == 'int' ? '.toString()' : ''};\n";
}
}
String template = controllerAddTemplate();
template = template.replaceAll('@importFile', importFile);
template = template.replaceAll('@className', className);
template = template.replaceAll('@modelName', modelName);
template = template.replaceAll('@varName', varName);
template = template.replaceAll('@packageName', PubspecUtil.projectName!);
template = template.replaceAll('@filenameModel', filenameModel);
template = template.replaceAll('@filename', filename);
template = template.replaceAll('@varInput', varInput);
template = template.replaceAll('@varImageInput', varInputImage);
template = template.replaceAll('@varFilter', varFilter);
template = template.replaceAll('@varParameters', varParameters);
template = template.replaceAll('@varUploadFile', varParametersImage);
template = template.replaceAll('@varSetText', varSetText);
template = template.replaceAll('@varApi', module.api);
final file = File('${baseDir.path}/${filename}_add_controller.dart');
if (!force && file.existsSync()) {
print('File controller add : ${file.path} is exists');
return;
}
File(file.path).createSync(recursive: true);
file.writeAsStringSync(template);
print('File controller add : ${file.path} created');
}