controllerGetX method
Build base controller using GetX with main method to get data from API
Implementation
String controllerGetX(String controllerName,
{String repoMethodName = "", String bodyModel = ""}) {
String controllerClassName =
'${controllerName.toCamelCaseFirstLetterForEachWord()}Controller';
String repoClassName =
'${controllerName.toCamelCaseFirstLetterForEachWord()}Repo';
String newRepoMethodName = "";
if (repoMethodName.isEmpty) {
newRepoMethodName =
"${controllerName.toCamelCaseFirstLetterForEachWord().lowerCaseFirstLetter()}Repo.getTodosApiUrlData()";
} else {
newRepoMethodName =
"${repoClassName.lowerCaseFirstLetter()}.$repoMethodName($bodyModel)";
}
return '''
import 'package:get/get.dart';
import '../../../core/networking/api_result.dart';
import '../../../core/networking/enums_networking.dart';
${bodyModel.isEmpty ? "" : "import '../data/models/${controllerName.toLowerCase()}_body_model.dart';"}
import '../repositories/${controllerName.toLowerCase()}_repo.dart';
class $controllerClassName extends GetxController {
$repoClassName ${repoClassName.lowerCaseFirstLetter()};
$controllerClassName({required this.${repoClassName.lowerCaseFirstLetter()}});
ApiResult apiResult = ApiResult();
// getting data from api
getData() async {
apiResult.apiCallStatus = ApiCallStatus.loading;
update();
apiResult = await $newRepoMethodName;
apiResult.handelRequest(success: (apiResul){}, error: (apiResul){});
update();
}
@override
void onInit() {
getData();
super.onInit();
}
}
''';
}