init method
This method will be used to initialize the message provider
Implementation
@override
Future<Map<String, dynamic>> init(Map<String, dynamic> config) async {
_contact_identifier = config[ConstantKeys.contactIdentifier];
final SharedPreferences prefs = await SharedPreferences.getInstance();
final String? conversationId = prefs.getString(
"$_contact_identifier-${ConstantKeys.conversationIdentifier}");
if (conversationId == null) {
final url =
"$_url/public/api/v1/inboxes/$_inbox_identifier/contacts/$_contact_identifier/conversations";
logger.d("Creating new conversation: $url");
final response = await http.post(Uri.parse(url));
_conversation_id =
chatwootCreateConversationResponseFromJson(response.body)
.id
.toString();
await prefs.setString(
"$_contact_identifier-${ConstantKeys.conversationIdentifier}",
_conversation_id);
} else {
logger.d("Using existing conversation: $conversationId");
_conversation_id = conversationId;
}
config[ConstantKeys.conversationIdentifier] = _conversation_id;
return config;
}