post method
Implementation
Future<NetworkResponseObject<T>> post() async {
if (endPointType.contentType != 'multipart/form-data') {
_dio.interceptors.add(CurlLoggerInterceptor());
}
var url = endPointType.url;
if (path != null) {
for (var i = 0; i < path!.length; i++) {
final key = ':i${i == 0 ? '' : i}d';
url = url.replaceAll(key, path![i]);
}
}
try {
late Response response;
switch (endPointType.httpMethod) {
case EndpointHTTPType.get:
response = await _dio.get(url, queryParameters: params);
break;
case EndpointHTTPType.post:
response = await _dio.post(url, data: params);
break;
case EndpointHTTPType.put:
response = await _dio.put(url, data: params);
break;
case EndpointHTTPType.delete:
response = await _dio.delete(url, data: params);
break;
case EndpointHTTPType.patch:
response = await _dio.patch(url, data: params);
break;
case EndpointHTTPType.postMultipart:
response = await _dio.post(
url,
data: formData,
onReceiveProgress: onReceiveProgress,
onSendProgress: onSendProgress,
cancelToken: cancelToken,
);
break;
}
Logger.logMessage(title: 'API SUCCESS - $url \n\n', message: 'data: ${response.data}');
return NetworkResponseObject(itemFromJson: itemFromJson).fromJson(response.data!);
} on DioException catch (error, stacktrace) {
Logger.logMessage(title: 'API FAILURE - $url \n\n', message: 'error: $error, \nstacktrace: $stacktrace \n\n');
var errorMessage = 'Something Went Wrong';
if (CancelToken.isCancel(error)) {
errorMessage = error.message ?? errorMessage;
}
return NetworkResponseObject.fromDetail(false, errorMessage);
} catch (error, stacktrace) {
Logger.logMessage(title: 'API FAILURE - $url \n\n', message: 'error: $error, \nstacktrace: $stacktrace \n\n');
return NetworkResponseObject.fromDetail(false, 'Something Went Wrong');
}
}