Source: MASConnectaPluginMessage.js

/*
 * Copyright (c) 2016 CA, Inc. All rights reserved.
 * This software may be modified and distributed under the terms
 * of the MIT license. See the LICENSE file for details.
 *
 */

var MASConnectaPluginConstants = require("./MASConnectaPluginConstants");

/**
* @class MASConnectaPluginMessage
* @hideconstructor
* @classdesc A Utility class that helps in creating and managing a MQTT Message. Specific to Cordova-iOS only.
* <table>
*	<tr bgcolor="#D3D3D3"><th>MASConnectaPluginMessage Construtor</th></tr>
*	<tr><td><i>var MASConnectaMessage = new MASConnectaPlugin.MASConnectaMessage();</i></td></tr>
* </table>
*/
var MASConnectaPluginMessage = function() {
	/**
     * The version of the message format
	 * @memberOf MASConnectaPluginMessage
     * @member {string} version
	 * @instance
     */
	this.version;

	/**
 	 * The topic of the message
	 * @memberOf MASConnectaPluginMessage
     * @member {string} topic
	 * @instance
 	 */
	this.topic;

	/**
 	 * The object identifier of the message receiver
	 * @memberOf MASConnectaPluginMessage
     * @member {string} receiverObjectId
	 * @instance
 	 */
	this.receiverObjectId;

	/**
 	 * The MASPluginSenderType that represents the sender
	 * @memberOf MASConnectaPluginMessage
     * @member {string} senderType
	 * @instance
 	 */
	this.senderType;

	/**
 	 * The object identifier of the message sender
	 * @memberOf MASConnectaPluginMessage
     * @member {string} senderObjectId
	 * @instance
 	 */
	this.senderObjectId;

	/**
 	 * The DisplayName (field in the /UserInfo mapping in the Gateway) of the message sender
	 * @memberOf MASConnectaPluginMessage
     * @member {string} senderDisplayName
	 * @instance
 	 */
	this.senderDisplayName;

	/**
 	 * The timestamp in UTC format when the message was sent
	 * @memberOf MASConnectaPluginMessage
     * @member {integer} sentTime
	 * @instance
 	 */
	this.sentTime;

	/**
 	 * The payload in binary format
	 * @memberOf MASConnectaPluginMessage
     * @member {byte[]} payload
	 * @instance
 	 */
	this.payload;

	/**
 	 * The content type of the payload
	 * @memberOf MASConnectaPluginMessage
     * @member {string} contentType
	 * @instance
 	 */
	this.contentType;

	/**
 	 * The content encoding of the payload
	 * @memberOf MASConnectaPluginMessage
     * @member {string} contentEncoding
	 * @instance
 	 */
	this.contentEncoding;

	/**
	* Initialize a message with a payload
    * @memberOf MASConnectaPluginMessage
	* @function initializeWithPayloadData
	* @instance
    * @param {successCallbackFunction} successHandler user defined success callback that is invoked on success scenario.
    * @param {errorCallbackFunction} errorHandler user defined error callback that is invoked on failure scenario.
	* @param {byte[]} payload payload as binary
	* @param {string} contentType The content type of the message
	*/
	this.initializeWithPayloadData = function(successHandler, errorHandler, payload, contentType) {
		return Cordova.exec(successHandler, errorHandler, "MASPluginMessage", "initializeWithPayloadData", [payload, contentType]);
	};

	/**
	* Initialize a message with a payload
    * @memberOf MASConnectaPluginMessage
	* @function initializeWithPayloadString
	* @instance
    * @param {successCallbackFunction} successHandler user defined success callback that is invoked on success scenario.
    * @param {errorCallbackFunction} errorHandler user defined error callback that is invoked on failure scenario.
	* @param {string} payload payload as a string
	* @param {string} contentType The content type of the message
	*/
	this.initializeWithPayloadString = function(successHandler, errorHandler, payload, contentType) {
		return Cordova.exec(successHandler, errorHandler, "MASPluginMessage", "initializeWithPayloadString", [payload, contentType]);
	};

	/**
	* Initialize a message with a payload
    * @memberOf MASConnectaPluginMessage
	* @function initializeWithPayloadImage
	* @instance
    * @param {successCallbackFunction} successHandler user defined success callback that is invoked on success scenario.
    * @param {errorCallbackFunction} errorHandler user defined error callback that is invoked on failure scenario.
	* @param {string} payload payload of an image as a Base64 String.
	* @param {string} contentType The content type of the message
	*/
	this.initializeWithPayloadImage = function(successHandler, errorHandler, payload, contentType) {
		return Cordova.exec(successHandler, errorHandler, "MASPluginMessage", "initializeWithPayloadImage", [payload, contentType]);
	};

	/**
 	* The payload property in a string format
    * @memberOf MASConnectaPluginMessage
	* @function payloadTypeAsString
	* @instance
    * @param {successCallbackFunction} successHandler user defined success callback that is invoked on success scenario.
    * @param {errorCallbackFunction} errorHandler user defined error callback that is invoked on failure scenario.
 	* @return String
 	*/
	this.payloadTypeAsString = function(successHandler, errorHandler) {
		return Cordova.exec(successHandler, errorHandler, "MASPluginMessage", "payloadTypeAsString", []);
	};

	/**
 	* The payload property in an image src format
    * @memberOf MASConnectaPluginMessage
	* @function payloadTypeAsImage
	* @instance
    * @param {successCallbackFunction} successHandler user defined success callback that is invoked on success scenario.
    * @param {errorCallbackFunction} errorHandler user defined error callback that is invoked on failure scenario.
 	* @return base64 string
 	*/
	this.payloadTypeAsImage = function(successHandler, errorHandler) {
		return Cordova.exec(successHandler, errorHandler, "MASPluginMessage", "payloadTypeAsImage", []);
	};

	/**
 	* The senderType property in a string format
    * @memberOf MASConnectaPluginMessage
	* @function senderTypeAsString
	* @instance
    * @param {successCallbackFunction} successHandler user defined success callback that is invoked on success scenario.
    * @param {errorCallbackFunction} errorHandler user defined error callback that is invoked on failure scenario.
 	* @return String
 	*/
	this.senderTypeAsString = function(successHandler, errorHandler) {
		return Cordova.exec(successHandler, errorHandler, "MASPluginMessage", "senderTypeAsString", []);
	};

	/**
 	* The MASConnectaPluginConstants.MASSenderType in a string format
    * @memberOf MASConnectaPluginMessage
	* @function stringFromSenderType
	* @instance
    * @param {successCallbackFunction} successHandler user defined success callback that is invoked on success scenario.
    * @param {errorCallbackFunction} errorHandler user defined error callback that is invoked on failure scenario.
 	* @param {MASConnectaPluginConstants.MASSenderType} masSenderType specify the MAS sender type
 	* @return String
 	*/
	this.stringFromSenderType = function(successHandler, errorHandler, masSenderType) {
		return Cordova.exec(successHandler, errorHandler, "MASPluginMessage", "stringFromSenderType", [masSenderType]);
	};
};

module.exports = MASConnectaPluginMessage;