tmpJSONParser.js 2.45 KB
(function(tmpJSONParser, $, undefined) {

  var base_parameter_json = {};
  var movement_parameter_json = {};

  function _getLoggedUser() {
    var pybossa_rembember_token = Cookies.get('remember_token');
    var splitted_token_id = pybossa_rembember_token.split('|');
    return splitted_token_id.length > 0 ? splitted_token_id[0]
        : 'anonymous';
  }

  function _setupBaseParameterJSON(tmpJSON) {
    base_parameter_json['userId'] = _getLoggedUser();
    base_parameter_json['sinal'] = tmpJSON['sinal'];
    base_parameter_json['interpolacao'] = 'normal';
    base_parameter_json['movimentos'] = [];
    movement_parameter_json = {
      'facial': {},
      'mao_direita': {},
      'mao_esquerda': {}
    };
    base_parameter_json['movimentos'].push(movement_parameter_json);
  }

  function _parseParameterValue(value) {
    return !isNaN(value) ? parseInt(value) : value;
  }

  function _parseTempFacialParameterJSON(tmpJSON) {
    var attrs = dynworkflow.getFacialParameters();
    for (var i in attrs) {
      var attr = attrs[i];
      parameterValue = tmpJSON['facial'][attr][0];
      movement_parameter_json['facial'][attr] = _parseParameterValue(parameterValue);
    }
  }

  function _parseTempMovementParameterJSON(tmpJSON, hand) {
    var movimentConfig = tmpJSON[hand]['movimento'];
    if (typeof movimentConfig == 'undefined') return;

    var movementName = movimentConfig[0];
    var attrs = dynworkflow.getMovementParameters(movementName);
    var parsedHand = hand == 'right-hand' ? 'mao_direita' : hand;
    parsedHand = hand == 'left-hand' ? 'mao_esquerda' : parsedHand;
    movement_parameter_json[parsedHand][movementName] = {};

    for (var i in attrs) {
      var attr = attrs[i];
      var parameterValue = '';
      if (attr == 'configuracao') {
        parameterValue = tmpJSON[hand][attr][1];
      } else if (attr == 'articulacao') {
        parameterValue =  articulation.processValue(hand,
            tmpJSON[hand][attr]);
      } else {
        parameterValue = tmpJSON[hand][attr][0];
      }
      movement_parameter_json[parsedHand][movementName][attr] =
        _parseParameterValue(parameterValue);
    }
  }

  tmpJSONParser.parse = function(tmpJSON) {
    _setupBaseParameterJSON(tmpJSON);
    _parseTempFacialParameterJSON(tmpJSON);
    _parseTempMovementParameterJSON(tmpJSON, 'right-hand');
    _parseTempMovementParameterJSON(tmpJSON, 'left-hand');
    return base_parameter_json;
  };

}(window.tmpJSONParser = window.tmpJSONParser || {}, jQuery));