getConversation static method
Gets a conversation by its assistant and conversation IDs
Implementation
static Future<Conversation?> getConversation(
String idAssistant,
String idConversation,
bool isMarketplace,
) async {
try {
Conversation? conversation;
String url = ApiUrls.conversationUrl(
idAssistant,
idConversation,
isMarketplace: isMarketplace,
);
await ApiService.call(
url,
RequestType.get,
onSuccess: (response) =>
conversation = Conversation.fromMap(response.data),
onError: (error) {
if (error.statusCode == 403) {
showErrorSnackbar(Strings.conversationForbidden.tr);
String errorMessage = "Conversation forbidden";
PupauEventService.instance.emitPupauEvent(
PupauEvent(
type: UpdateConversationType.error,
payload: {
"error": errorMessage,
"assistantId": idAssistant,
"assistantType": isMarketplace ? "MARKETPLACE" : "ASSISTANT",
"conversationId": idConversation,
},
),
);
} else {
showErrorSnackbar(Strings.conversationLoadFailed.tr);
String errorMessage = "Conversation load failed";
PupauEventService.instance.emitPupauEvent(
PupauEvent(
type: UpdateConversationType.error,
payload: {
"error": errorMessage,
"assistantId": idAssistant,
"assistantType": isMarketplace ? "MARKETPLACE" : "ASSISTANT",
"conversationId": idConversation,
},
),
);
}
},
);
return conversation;
} catch (e) {
showErrorSnackbar(Strings.conversationLoadFailed.tr);
String errorMessage = "Conversation load failed";
PupauEventService.instance.emitPupauEvent(
PupauEvent(
type: UpdateConversationType.error,
payload: {
"error": errorMessage,
"assistantId": idAssistant,
"assistantType": isMarketplace ? "MARKETPLACE" : "ASSISTANT",
"conversationId": idConversation,
},
),
);
return null;
}
}