callApi<R, T> method
Future<T>
callApi<
R, T>( - String? endPoint,
- ApiMethodTypes type,
- dynamic onLoading(
- bool
),
- dynamic parser(
- Map<String, dynamic>
), {
- Map<String, dynamic>? queryParameters,
- Map<String, dynamic>? body,
- List<File>? files,
- String? fileParamName,
- R? request,
})
Implementation
Future<T> callApi<R, T>(String? endPoint, ApiMethodTypes type,
Function(bool) onLoading, Function(Map<String, dynamic>) parser,
{Map<String, String>? headers,
Map<String, dynamic>? queryParameters,
Map<String, dynamic>? body,
List<File>? files,
String? fileParamName,
R? request}) async {
Map<String, dynamic>? json;
if (type == ApiMethodTypes.post ||
type == ApiMethodTypes.put ||
type == ApiMethodTypes.delete) {
json = await ApiFactoryProvider.getApiWithBodyBase(type).callApi(
_baseUrl + (endPoint ?? ""), body,
headers: headers ?? {},
loading: onLoading,
queryParameters: queryParameters);
} else if (type == ApiMethodTypes.postWithMultipart) {
json = await ApiFactoryProvider.getApiMultiPartBase(type).callApi(
_baseUrl + (endPoint ?? ""),
body?.cast<String, String>(),
files,
fileParamName,
headers: headers ?? {},
loading: onLoading,
queryParameters: queryParameters);
} else {
json = await ApiFactoryProvider.getApiWithoutBody(type).callApi(
_baseUrl + (endPoint ?? ""),
headers: headers ?? {},
loading: onLoading,
queryParameters: queryParameters);
}
return parser(json ?? {});
/* final ApiFactoryProvider apiFactoryProvider =
ApiFactoryProvider.provideApi(type);
Map<String, dynamic>? json;
if (apiFactoryProvider is GetApi) {
json = await apiFactoryProvider.callApi(_baseUrl + (endPoint ?? ""),
headers: headers ?? {},
loading: onLoading,
queryParameters: queryParameters);
} else if (apiFactoryProvider is PostApi) {
json = await apiFactoryProvider.callApi(_baseUrl + (endPoint ?? ""), body,
headers: headers ?? {},
loading: onLoading,
queryParameters: queryParameters);
} else if (apiFactoryProvider is PutApi) {
json = await apiFactoryProvider.callApi(_baseUrl + (endPoint ?? ""), body,
headers: headers ?? {},
loading: onLoading,
queryParameters: queryParameters);
} else if (apiFactoryProvider is DeleteApi) {
json = await apiFactoryProvider.callApi(_baseUrl + (endPoint ?? ""), body,
headers: headers ?? {},
loading: onLoading,
queryParameters: queryParameters);
} else if (apiFactoryProvider is PostWithMultipartApi) {
json = await apiFactoryProvider.callApi(_baseUrl + (endPoint ?? ""),
body?.cast<String, String>(), files, fileParamName,
headers: headers ?? {},
loading: onLoading,
queryParameters: queryParameters);
return parser(json ?? {});
}*/
/*
TODO UNCOMMENT AND USE IF NEEDED
Function(dynamic)? onSuccess,
Function(dynamic)? onFailure,
var json = await apiBaseHelper.getApiCall(
url: endPoint ?? "",
loading: onLoading,
);
return parser(json);
*/
}