postWithURLEncodedNew method
Implementation
Future<APIResponse<dynamic>> postWithURLEncodedNew({
required String url,
Map<String, dynamic>? body,
Map<String, String>? headers,
}) async {
String tokenString =
await storageManger.getStorePreferences(type: token) ?? "";
String language = storageManger.getStorage(type: apiLanguage) ?? "";
if (tokenString.isNotEmpty) {
headers?["Authorization"] = "Bearer $tokenString";
}
if (language.isNotEmpty) {
body?["lang"] = language;
}
var uri = Uri.parse(url);
var client = http.Client();
var result = await client.post(uri, body: body, headers: headers);
if (result.statusCode == 500) {
String message = 'Internal Server Error';
if (result.body is Map) {
message = json.encode(result.body);
}
return APIResponse<dynamic>(code: "500", message: message);
}
if (result.statusCode == 401) {
return APIResponse<dynamic>(
code: "401", message: 'Your token has expired!');
}
var jsonBody = jsonDecode(utf8.decode(result.bodyBytes)) as Map;
var code = jsonBody['code'];
var message = jsonBody['message'];
var jsonData = jsonBody['data'];
if (code != null) {
return APIResponse<dynamic>(
value: jsonData, code: code, message: message);
} else {
return APIResponse<String>(value: null, code: code, message: message);
}
}