Source: sender/webSocket/MessageTemplate.js

"use strict";
require('../../core/globalVar');
let index = 0;

/**
 * @class
 * @classdesc  Common message Template.
 */
class MessageTemplate {
  /**
   * @constructor
   * @param action
   * @param parameters
   * @param result
   * @param chainType
   * @param callback
   */
  constructor(action, parameters, result, chainType, callback) {
    this.message = {
      header : {chain : chainType,action:action,index:index,from:'SDK'},
      action : action,
      parameters : parameters,
    };
    if(chainType !== ''){
      this.message.parameters.chainType = chainType;
    }
    this.result = result;
    this.callback = callback;
    ++index;
  }

  /**
   * Recieve message, if the message.status equal success, message valid; otherwise message invalid.
   * @param message
   */
  onMessage(message) {
    // logDebug.debug('getMessage: ',message);
    if (message.status === 'success') {
      // logDebug.debug(message[this.result]);
      let ret = {};
      if (this.result instanceof Array) {
        for (let i of this.result) {
          ret[i] = message[i]
        }
      } else{
        ret = message[this.result];
      }
      this.callback && this.callback(null, ret);
    } else {
      //logDebug.debug(`onMessage Error: ${message.error}`);
      this.callback && this.callback(message.error, null);
    }
  }
}

module.exports = MessageTemplate;