load method

Future load()

Implementation

Future load() async {
    value = value.copyWith(isLoading: true);
  var response = await _repository.getChatHistory(
      EnifController().userParams.value?.email ?? '',
      EnifController.businessId ?? '');

  if (response.isSuccessful && response.body != null) {
    var body = response.body!;
    value = value.copyWith(isLoading: false, messages: body);
    for (var ticket in body) {
      var ticketResponse = await _repository.ticketStatus(ticket.id ?? '');

      if (ticketResponse.isSuccessful) {
        var statusBody = ticketResponse.body;
        var updatedTicketStatus =
            TicketStatus(ticketid: ticket.id, isRead: statusBody ?? true);
        var statusExists =
            value.ticketStatus?.any((e) => e.ticketid == ticket.id) ?? false;
        var ticketStatusList = statusExists
            ? value.ticketStatus?.map(
                (e) => e.ticketid == ticket.id ? updatedTicketStatus : e)
            : [...?value.ticketStatus, updatedTicketStatus];

        value = value.copyWith(ticketStatus: ticketStatusList?.toList());
      } else {
        if (kDebugMode) {
          print('ticketResponse:::::::$ticketResponse');
        }
      }
    }
  } else {
    value = value.copyWith(isLoading: false);
  }
}