createConversation static method

Future<Conversation?> createConversation(
  1. String assistantId,
  2. bool isMarketplace, {
  3. bool isAnonymous = false,
})

Creates a new conversation for the given assistant

Implementation

static Future<Conversation?> createConversation(
  String assistantId,
  bool isMarketplace, {
  bool isAnonymous = false,
}) async {
  try {
    Conversation? conversation;
    final String url = ApiUrls.conversationsUrl(
      assistantId,
      isMarketplace: isMarketplace,
    );
    if (isAnonymous) {
      PupauSharedPreferences.deleteAnonymousConversationKey();
      final String anonymousConversationKey = Uuid().v4();
      PupauSharedPreferences.setAnonymousConversationKey(
        anonymousConversationKey,
      );
    }
    await ApiService.call(
      url,
      RequestType.post,
      data: {
        "title": "New Conversation",
        "source": "INTEGRATION",
        "data": "",
        if (isAnonymous)
          "encryptionPass":
              PupauSharedPreferences.getAnonymousConversationKey(),
      },
      onSuccess: (response) =>
          conversation = Conversation.fromMap(response.data),
    );
    return conversation;
  } catch (e) {
    return null;
  }
}