init method

  1. @override
Future<Map<String, dynamic>> init(
  1. Map<String, dynamic> config
)
override

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;
}