tmpJSONParser.js 2.28 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");
		return base_parameter_json;
	};
	
}(window.tmpJSONParser = window.tmpJSONParser || {}, jQuery));