getResponse method

Future<BaseResponse> getResponse(
  1. String resp
)

Implementation

Future<BaseResponse> getResponse(String resp) async {
  if (resp.isEmpty) return BaseResponse();
  try {
    Map<String, dynamic> json = jsonDecode(resp);
    if (Util.checkKeyFromJson(json, 'success') && Util.checkKeyFromJson(json, 'data') && json['success']) return BaseResponse(success: true, data: json['data']);
    return BaseResponse(data: json['data'].toString());
  } catch (e) {
    String? temp;
    switch(e.runtimeType.toString()) {
      case 'FormatException': temp = 'Tính năng đang bảo trì'; break;
      case 'TimeoutException': temp = 'Kết nối bị gián đoạn. Vui lòng kiểm tra internet hoặc thử lại sau vài phút.'; break;
      case 'SocketException':
      case '_ClientSocketException':
        String html = await ApiClient().getString('https://google.com', timeout: 5);
        temp = html.isEmpty ? 'Lỗi không kết nối! Vui lòng kiểm tra lại internet của bạn' : 'Hệ thống đang bảo trì';
    }
    return BaseResponse(data: temp);
  }
}