This module handles the SDK initialization and registration. This module has the following classes:

IMI.IMIconnect

This class contains the methods to initialize the SDK and register a user. When integrating the SDK into your app it is mandatory to use this class to initialize the SDK before any other features are used. With exception to the Authentication module, it is also necessary to register a user before other features are used.

Public Methods
void startup(config)
void shutdown()
void register(deviceProfile, regcallback)
void unregister()
boolean isRegistered()
void updateProfileData()
boolean removeProfileData()
void setSecurityToken
void registerListener
void unregisterListener

startup


This method is used to initialize the SDK using the provided configuration options.

  Syntax: void startup(config)

  Parameters:

ParameterTypeDescription
configICConfigRefer to ICConfig class.

Click here to view ICConfig class.

  Example:

try {
    //Initialize an ICConfig instance with an appId, clientKey 
    var config = new IMI.ICConfig(appId, clientKey);
    // Initialize the IMIconnect SDK with ICConfig instance
    IMI.IMIconnect.startup(config);
}
    catch (e) {
        console.log(e)
    }

shutdown


This method is used to cleanup of the SDK, freeing all internal object instances. Invoking this method will stop the SDK features from functioning as such RTM will no longer be received.

  Syntax: void shutdown()

  Example:

// Provides a means to shutdown the SDK and perform cleanup, after this method is called none of the SDK features will work
try {
    IMI.IMIconnect.shutdown();
} catch (error) {
    console.log(error)
}

register


This method is used to register the userId with IMIconnect. This method reads the device details and sent to IMIconnect platform. Once a user is registered all further SDK calls take place in the context of that user.

  Syntax: register(deviceProfile, regcallback)

  Parameters:

ParameterTypeDescription
deviceProfile[ICDeviceProfile]Specifies the device profile registered with IMIconnect.
regcallbackObjectRefer to example below.

  Example:

//Verify whether the user is registered or not, if not registered, register the user.
if (!IMI.IMIconnect.isRegistered()) {
    var callback = {
        onSuccess: function() {
            console.log("reg success");
              
            //Write you code to connect to IMIconnect. 
        },
        onFailure: function(errormsg) {
            console.log("reg failed");
        }

    };
  var deviceProfile=new IMI.ICDeviceProfile(deviceId, userId);  
           //here user id is  optional (If user id not there user can call deviceID,  
             userId will be generated by IMIConnect and passed to callback function)
          //var  deviceProfile = new IMI.ICDeviceProfile(deviceId);
          IMI.IMIconnect.register(deviceProfile, callback);
  }
else{
//Write you code to connect to IMIconnect. 
}

unregister


This method is used to unregister the current user. The features that rely on a registered user will no longer function after this method has been called.

  Syntax: IMI.IMIconnect.unregister(unregisterCallback);

ParameterType
unregisterCallbackCallback

  Example:

var unregisterCallback = {
                        onSuccess: function (msg) {
                            console.log("de register...");
                           
                        },
                        onFailure: function (err) {
                            console.log("failed to un register");
                        }
                    };
IMI.IMIconnect.unregister(unregisterCallback );

isRegistered


This method is used to check whether the user is currently registered with IMIconnect.

  Syntax: boolean isRegistered()

  Returns:
  Returns true if the user is registered, else false is returned.

  Example:

var isRegistered = IMI.IMIconnect.isRegistered();

updateProfileData


This method is used to update userID and customerID parameters of current device profile registered with IMIconnect.

To update UserID

  Syntax: IMI.IMIconnect.updateProfileData(IMI.ICDeviceProfileParam.UserId, newuserid, userIdcallbck);

  Parameters:

ParameterTypeDescription
DeviceProfileParamIMI.ICDeviceProfileParam.UserIdSpecifies the user ID to register with IMIconnect.
newUserIdStringSpecifies the new user ID to register with IMIconnect.
userIdcallbackObjectRefer to example below.

To update CustomerID

  Syntax: IMI.IMIconnect.updateProfileData(IMI.ICDeviceProfileParam.CustomerId, newcustomerid, customerCallback);

  Parameters:

ParameterTypeDescription
DeviceProfileParamIMI.ICDeviceProfileParam.CustomerIdSpecifies the customer ID to register with IMIconnect.
newcustomerIdStringSpecifies the new customer ID to register with IMIconnect.
customerCallbackObjectRefer to example below.

  Example:

var userIdcallbck = {
                    onSuccess: function (msg) {
                            console.log("usermodified...");
                            
                        },
                    onFailure: function (err) {
                            console.log("failed to add user");
                        }
                    };
IMI.IMIconnect.updateProfileData(IMI.ICDeviceProfileParam.UserId, "2130", userIdcallbck);
var customerCallback = {
                        onSuccess: function (msg) {
                            console.log("customer...");
                            $("#setCustomerModel").modal('hide');
                        },
                        onFailure: function (err) {
                            console.log("failed to add customer");
                            alert(err)
                        }
                    };
IMI.IMIconnect.updateProfileData(IMI.ICDeviceProfileParam.CustomerId, "2130", customerCallback);

removeProfileData


This method is used to remove the profile data (user ID or customer ID).

To Remove UserID
This method is used to remove the userID.
Syntax: IMI.IMIconnect.removeProfileData(IMI.ICDeviceProfileParam.UserId, removeUserCallback);

  Parameters:

ParameterTypeDescription
DeviceProfileParamIMI.ICDeviceProfileParam.UserIdSpecifies the user ID to register with IMIconnect.
removeUserCallbackObjectRefer to example below.

To Remove customerID
This method is used to remove the userID.
Syntax: IMI.IMIconnect.removeProfileData(IMI.ICDeviceProfileParam.CustomerId, CustomerIdcallbck);

  Returns:
 Returns customerId.

  Parameters:

ParameterTypeDescription
DeviceProfileParamIMI.ICDeviceProfileParam.CustomerIdSpecifies the customer ID to register with IMIconnect.
customerIdcallbackCallbackRefer to example below.

  Example:

var removeUserCallback = {
                        onSuccess: function (resrmsg) {
                            console.log("remove userId...");
                           
                        },
                        onFailure: function (err) {
                            console.log("failed to remove customerid..");
                        }
                    };
 IMI.IMIconnect.removeProfileData(IMI.ICDeviceProfileParam.UserId, userIdcallbck);
var CustomerIdcallbck = {
                        onSuccess: function (msg) {
                            console.log("usermodified...");
                            
                        },
                        onFailure: function (err) {
                            console.log("failed to add user");
                        }
                    };
 IMI.IMIconnect.removeProfileData(IMI.ICDeviceProfileParam.CustomerId,  customerCallback);

setSecurityToken


This method allows to specify the security token that the SDK will pass to Connect platform.

  Syntax: void setSecurityToken(token)

//generate token and call the below method using the token
 IMI.IMIconnect.setSecurityToken(token);

registerListener


This method allows to register an object which implements the onFailure method to listen for security token related exceptions which occur from internal (indirect) connect platform API calls.

  Syntax: void registerListener(callbackListener)

  Parameters:

ParameterDescription
callbackListenerSecurity Token Exception listener object.
var callback= {
      onFailure: function () {
      console.log("token got expired...");
      alert("token got expired...");
//need to generate token your (for more information, refer to docs)                           }
  };
//this method should be called after startup()
 IMI.IMIconnect.registerListener(callback);

unregisterListener


This method allows to unregister a previously registered object inorder to stop listening for security token exceptions.

  Syntax: void unregisterListener(callbackListener)

  Parameters:

ParameterDescription
callbackListenerSecurity Token Exception listener object.
var callbackListener={
onFailure:function(error){
//This method will be called when security token issues comes
}
}
IMI.IMIconnect.unregisterListener(callback);

IMI.ICConfig

This class holds the configuration information that is used to initialize the SDK.

Public Constructors
ICConfig(appId, clientKey)
Public Methods
String getAppID()
String getClientKey()

ICConfig


This method is used to initialize an ICConfig instance with an appId and clientKey.

  Syntax: ICConfig(appId, clientKey)

  Parameters:

ParameterTypeDescription
appIdStringSpecifies the appId that is created in IMIconnect.
clientKeyStringSpecifies the clientKey that is created in IMIconnect.

  Example:

try {
      //Initialize an ICConfig instance with an appId, clientKey 
            var config = new IMI.ICConfig(appId, clientKey);
            // Initialize the IMIconnect SDK with ICConfig instance
            IMI.IMIconnect.startup(config);
        } catch ( e) {
            console.log(e)
        }

getAppId


This method is used to get the app id.

  Syntax: String getAppId()

  Return Value:
 Returns the appid.

getClientKey


This method is used to get the client key.

  Syntax: String getClientKey()

  Return Value:
 Returns the client key.

IMI.ICDeviceProfile

An ICDeviceProfile instance should be instantiated to register a device profile.
The developer can choose to register the device profile with a deviceId only or with a deviceId and an appUserId. Users' can generate their own device ID or can choose the default deviceId provided by the SDK.
If the user chooses to register a device profile with the deviceId only, then the backend will automatically generate an appUserId.
The current device profile is accessible via the IMIconnect class.

Public Methods
String getDefaultDeviceId()
String isAppUserSystemGenerated()
String getUserId()
String getDeviceId()

ICDeviceProfile()


The current device profile, which is accessible via the IMIconnect class.

  Syntax: ICDeviceProfile(deviceId, userId)

  Parameters:

ParameterTypeDescription
deviceIdPropertySpecifies the device ID that is created in IMIconnect.
userIdPropertySpecifies the user ID that is created in IMIconnect.

getDefaultDeviceId()


This method is used to get the value of default deviceId.

var deviceId=IMI.ICDeviceProfile.getDefaultDeviceId(); 
var deviceProfile =new IMI.ICDeviceProfile(deviceId, userId);

isAppUserSystemGenerated()


This method is used to know whether the appuserId is generated by the end-system or the user.

  Syntax: String isAppUserSystemGenerated()

  Return Value:
 Returns the appuserid.

  Example:

var deviceProfile =new IMI.ICDeviceProfile(deviceId, userId); 
var isAppUserSystemGenerated=deviceProfile.isAppUserSystemGenerated();      if(isAppUserSystemGenerated)
{ 
console.log("system generated appuser");
}

getUserId()


This method is used to get the user ID.

  Syntax: String getUserId()

  Return Value:
 Returns the userId.

getDeviceId()


This method is used to get the user ID.

  Syntax: String getDeviceId()

  Return Value:
 Returns the deviceId.

IMI.ICMediaFileManager

uploadFile

This method is used to check the status of the file upload.

  Syntax: uploadFile(file, file.type, callback)

  Return Value:
 Returns the file upload status.

onFileUploadComplete: function

This method is used to execute the callback method after the file upload is complete.

  Syntax: onFileUploadComplete: function(file, mediaId, error)

onFileUploadComplete: function(file, mediaId, error){
      if(error){
             console.log(error);
       } else{
             $("#mediaid").val(mediaId);
       }
}

setMediaId

This method is used to set the media id in the attachment section.

function pubMessage(threadtitle, threadid, msg, mediaId, callback){
----------------
----------------
if(mediaId && mediaId !==""){
         var mediaArr = [];
         var icAttach = new IMI.ICAttachment();
         icAttach.setMediaId(mediaId);
         mediaArray.push(icAttach);
        message.setAttachment(mediaArray);
}