approveTool static method

Future<Stream<SSEModel>?> approveTool(
  1. String messageId
)

Implementation

static Future<Stream<SSEModel>?> approveTool(String messageId) async {
  PupauChatController chatController = Get.find();
  String? assistantId = chatController.assistant.value?.id;
  PupauConversation? conversation = chatController.conversation.value;
  if (assistantId == null || conversation == null) return null;

  PupauMessage message = chatController.messages.firstWhere(
    (element) => element.id == messageId,
  );
  bool isMarketplace = chatController.isMarketplace;

  final Map<String, String>? authParams = chatController.pupauConfig?.authHeaders;
  if (authParams == null) return null;

  String queryParams = "";
  List<String> params = [];
  if (params.isNotEmpty) {
    queryParams = "&${params.join('&')}";
  }
  String url =
      "${ApiUrls.toolApprovalUrl(assistantId, conversation.id, message.id, isMarketplace: isMarketplace)}$queryParams";
  Stream<SSEModel> messageSendStream = SSEClient.subscribeToSSE(
    method: SSERequestType.POST,
    url: url,
    header: {
      ...authParams,
      "Conversation-Token": conversation.token,
      "Content-type": "Application/json",
    },
    body: {"request": message.answer},
  );
  return messageSendStream;
}