createNewContact method

  1. @override
Future<SolevatoContact> createNewContact(
  1. String inboxIdentifier,
  2. SolevatoUser? user
)
override

Creates new contact for inbox with inboxIdentifier and passes user body to be linked to created contact

Implementation

@override
Future<SolevatoContact> createNewContact(
    String inboxIdentifier, SolevatoUser? user) async {
  try {
    CancelToken cancelToken = CancelToken();

    final createResponse = await _dio.post(
        "/public/api/v1/inboxes/$inboxIdentifier/contacts",
        data: user?.toJson(),
        cancelToken: cancelToken);
    if ((createResponse.statusCode ?? 0).isBetween(199, 300)) {
      //creating contact successful continue with request
      final contact = SolevatoContact.fromJson(createResponse.data);
      debugPrint(
          'solevato-client-service: contact created: $contact - $createResponse');
      return contact;
    } else {
      throw SolevatoClientException(
          createResponse.statusMessage ?? "unknown error",
          SolevatoClientExceptionType.CREATE_CONTACT_FAILED);
    }
  } on DioError catch (e) {
    debugPrint('Error creating contact: ${e.message} - ${e.requestOptions.uri}');
    throw SolevatoClientException(
        e.message, SolevatoClientExceptionType.CREATE_CONTACT_FAILED);
  }
}