parseUserResponseData<R, T extends INetworkModel<T>> method

R? parseUserResponseData<R, T extends INetworkModel<T>>(
  1. dynamic responseBody,
  2. T model
)
inherited

Parse response body R: Response Model for user want to parse T: Parser Model

Implementation

R? parseUserResponseData<R, T extends INetworkModel<T>>(
  dynamic responseBody,
  T model,
) {
  if (R is EmptyModel || R == EmptyModel) {
    return EmptyModel(name: responseBody.toString()) as R;
  }

  try {
    if (responseBody is List<dynamic>) {
      final items = responseBody.whereType<Map<String, dynamic>>().toList();
      return items
          .map((data) {
            return model.fromJson(data);
          })
          .cast<T>()
          .toList() as R;
    }

    if (responseBody is Map<String, dynamic>) {
      return model.fromJson(responseBody) as R;
    }

    LogItems.bodyParseErrorLog(
      data: responseBody,
      isEnableLogger: parameters.isEnableLogger,
    );
    return null;
  } catch (e) {
    LogItems.bodyParseGeneralLog<T, R>(
      data: e,
      responseBody: responseBody,
      isEnableLogger: parameters.isEnableLogger,
    );
  }
  return null;
}