sendToolAnswer method

Future<void> sendToolAnswer(
  1. String messageId,
  2. List<AskUserChoice> selectedOptions,
  3. String? answer
)

Implementation

Future<void> sendToolAnswer(
  String messageId,
  List<AskUserChoice> selectedOptions,
  String? answer,
) async {
  Stream<SSEModel>? sseStream = await ToolAskUserService.answerAskUserTool(
    messageId,
    selectedOptions,
    answer,
  );
  isStreaming.value = true;
  update();
  messageSendStream = sseStream?.listen(
    (event) {
      if (event.data != null) {
        Map<String, dynamic> data = jsonDecode(event.data!);
        manageSSEData(data, false);
      }
    },
    onError: (e) {
      showErrorSnackbar(
        "${Strings.apiErrorGeneric.tr} ${Strings.apiErrorSendMessage.tr}",
      );
      manageCancelAndErrorMessage();
      PupauEventService.instance.emitPupauEvent(
        PupauEvent(
          type: UpdateConversationType.error,
          payload: {
            "error": "Error sending tool answer: ${e.toString()}",
            "assistantId": assistantId,
            "assistantType": assistant.value?.type ?? AssistantType.assistant,
            "conversationId": conversation.value?.id ?? "",
            "messageId": messageId,
          },
        ),
      );
    },
  );
}