|
|
|
@ -10,8 +10,8 @@ import 'package:mohem_flutter_app/exceptions/api_exception.dart';
|
|
|
|
|
typedef FactoryConstructor<U> = U Function(dynamic);
|
|
|
|
|
|
|
|
|
|
class APIError {
|
|
|
|
|
int errorCode;
|
|
|
|
|
String errorMessage;
|
|
|
|
|
int? errorCode;
|
|
|
|
|
String? errorMessage;
|
|
|
|
|
|
|
|
|
|
APIError(this.errorCode, this.errorMessage);
|
|
|
|
|
|
|
|
|
@ -74,18 +74,22 @@ class ApiClient {
|
|
|
|
|
print("body:$jsonObject");
|
|
|
|
|
}
|
|
|
|
|
var response = await postJsonForResponse(url, jsonObject, token: token, queryParameters: queryParameters, headers: _headers, retryTimes: retryTimes);
|
|
|
|
|
// try {
|
|
|
|
|
try {
|
|
|
|
|
var jsonData = jsonDecode(response.body);
|
|
|
|
|
if (jsonData["ErrorMessage"] != null) {
|
|
|
|
|
if (jsonData["ErrorMessage"] == null) {
|
|
|
|
|
return factoryConstructor(jsonData);
|
|
|
|
|
} else {
|
|
|
|
|
throw _throwAPIException(response);
|
|
|
|
|
APIError? apiError;
|
|
|
|
|
apiError = APIError(jsonData['ErrorCode'], jsonData['ErrorMessage']);
|
|
|
|
|
throw APIException(APIException.BAD_REQUEST, error: apiError);
|
|
|
|
|
}
|
|
|
|
|
} catch (ex) {
|
|
|
|
|
if (ex is APIException) {
|
|
|
|
|
rethrow;
|
|
|
|
|
} else {
|
|
|
|
|
throw APIException(APIException.BAD_RESPONSE_FORMAT, arguments: ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// } catch (ex) {
|
|
|
|
|
// print(response.body);
|
|
|
|
|
// print(ex);
|
|
|
|
|
// throw APIException(APIException.BAD_RESPONSE_FORMAT, arguments: ex);
|
|
|
|
|
// }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<Response> postJsonForResponse<T>(String url, T jsonObject, {String? token, Map<String, dynamic>? queryParameters, Map<String, String>? headers, int retryTimes = 0}) async {
|
|
|
|
|