postRequest static method
Implementation
static Future<NetworkResponseData> postRequest({
required String url,
required String apiFailureMessage,
Map<String, String>? customHeaders,
Object? body,
}) async {
final Uri requestUrl = Uri.parse(
url,
);
try {
http.Response response = await http.post(
requestUrl,
headers: customHeaders,
body: jsonEncode(
body,
),
);
Map<String, dynamic> responseMap = _parseResponse(
response: response,
apiFailureMessage: apiFailureMessage,
url: url,
type: 'POST',
body: body,
);
if (responseMap.isEmpty ||
responseMap['error'].toString().isNotEmpty ||
responseMap['status'] == 'failure') {
return NetworkResponseData(
hasError: true,
error: responseMap['error'],
status: responseMap['status'],
);
}
return NetworkResponseData(
hasError: responseMap['error'].toString().isNotEmpty,
error: responseMap['error'] ?? '',
status: responseMap['status'],
speech: responseMap['speech'],
data: responseMap['result'],
);
} catch (error) {
return NetworkResponseData(
hasError: true,
error: error.toString(),
);
}
}