getWalletTransactions method

dynamic getWalletTransactions({
  1. int page = 1,
  2. String? selectedPartnerId,
  3. int? status,
  4. String? startDate,
  5. String? endDate,
  6. String? correlationId,
  7. String? walletUsageType,
})

Implementation

getWalletTransactions({
  int page = 1,
  String? selectedPartnerId,
  int? status,
  String? startDate,
  String? endDate,
  String? correlationId,
  String? walletUsageType,
}) {
  String requestTime = "";
  String responseTime = "";
  try {
    if (page == 1) {
      Helper.progressDialog(Get.context!, "");
    }

    final String loginPartnerId = SecureStorageService.readSecureData(
          SecureStorageService.partnerIdLogin,
        ) ??
        '';
    final bool isSubResellerUser = SecureStorageService.readSecureData(
          SecureStorageService.levelIdLogin,
        ) ==
        subResellerLevelId.value;
    final String? partnerIdForRequest = isSubResellerUser
        ? loginPartnerId
        : selectedPartnerId ??
            selectedSubResellerFilter.value?.partnerId ??
            loginPartnerId;
    final int? statusForRequest = status ??
        int.tryParse(selectedStatusFilter.value?.dropDownId ?? "") ??
        selectedStatusFilter.value?.id;
    final String? selectedDateForRequest =
        selectedDateFilter.value.isNotEmpty ? selectedDateFilter.value : null;
    final String? startDateForRequest = startDate ??
        (selectedDateForRequest != null
            ? "$selectedDateForRequest 00:00:00"
            : null);
    final String? endDateForRequest = endDate ??
        (selectedDateForRequest != null
            ? "$selectedDateForRequest 23:59:59"
            : null);

    ApiClient(
      baseUrl: ApiConstant.baseUrl,
      onFetchRequestTime: (time) {
        requestTime = time;
      },
      onFetchResponseTime: (time) {
        responseTime = time;
      },
      screenName: "wallet",
    )
        .getWalletTransactions(
            partnerId: partnerIdForRequest ?? loginPartnerId,
            status: statusForRequest,
            startDate: startDateForRequest,
            endDate: endDateForRequest,
            correlationId: correlationId,
            walletUsageType: walletUsageType,
            page: page,
            size: 10,
            sort: "transactionTime",
            order: "desc")
        .then(
      (value) {
        if (page == 1) {
          transactionList.value = value.content ?? [];
          paymentTransactionList.value = transactionList;
          Helper.close();
          isLoadingMore.value = false;
        } else {
          transactionList.addAll(value.content ?? []);
          paymentTransactionList.value = transactionList;
          isLoadingMore.value = false;
        }
        totalTransaction = value.totalElements ?? 0;
        Helper.logEvent(
          "RESPONSE_EVENT",
          success: true,
          endPoint: Api.fetchWalletTransactions,
          responseDate: DateTime.now().toString(),
          screenName: "wallet",
          requestDate: requestTime,
        );
        isResponseRecieved.value = true;
      },
    ).catchError((e) {
      isLoadingMore.value = false;
      isResponseRecieved.value = true;
      ConditionalLogs().customLog("error $e");
      if (e is DioException) {
        UDID.setTraceId(
          e.response?.headers.map[Constants.traceIdKey]?[0] ?? "",
        );
        Helper.logEvent(
          "ERROR_EVENT",
          failure: true,
          requestDate: requestTime,
          endPoint: Api.fetchWalletTransactions,
          responseDate: DateTime.now().toString(),
          screenName: "wallet",
          error: e,
        );
      }
      if (page == 1) {
        Helper.close();
      }
    });
  } catch (e) {
    isLoadingMore.value = false;
    isResponseRecieved.value = true;
    ConditionalLogs().customLog("error $e");
    if (e is DioException) {
      UDID.setTraceId(
        e.response?.headers.map[Constants.traceIdKey]?[0] ?? "",
      );
      Helper.logEvent(
        "ERROR_EVENT",
        failure: true,
        requestDate: requestTime,
        endPoint: Api.fetchWalletTransactions,
        responseDate: DateTime.now().toString(),
        screenName: "wallet",
        error: e,
      );
    }
    if (page == 1) {
      Helper.close();
    }
  }
}