(function(window) { var Gitana = window.Gitana; Gitana.Interaction = Gitana.AbstractWarehouseObject.extend( /** @lends Gitana.Interaction.prototype */ { /** * @constructs * @augments Gitana.AbstractPlatformObject * * @class Interaction * * @param {Gitana.Warehouse} warehouse * @param [Object] object json object (if no callback required for populating) */ constructor: function(warehouse, object) { this.base(warehouse, object); this.objectType = function() { return "Gitana.Interaction"; }; }, /** * @OVERRIDE */ getType: function() { return Gitana.TypedIDConstants.TYPE_INTERACTION; }, /** * @OVERRIDE */ getUri: function() { return "/warehouses/" + this.getWarehouseId() + "/interactions/" + this.getId(); }, /** * @override */ clone: function() { return this.getFactory().interaction(this.getWarehouse(), this); }, ////////////////////////////////////////////////////////////////////////////////////////////// // // METHODS // ////////////////////////////////////////////////////////////////////////////////////////////// getInteractionApplicationId: function() { return this.get("interactionApplicationId"); }, getInteractionSessionId: function() { return this.get("interactionSessionId"); }, getInteractionPageId: function() { return this.get("interactionPageId"); }, getInteractionUserId: function() { return this.get("interactionUserId"); }, getInteractionNodeId: function() { return this.get("interactionNodeId"); }, getSourceUserAgent: function() { return this["source"]["user-agent"]; }, getSourceHost: function() { return this["source"]["host"]; }, getSourceIP: function() { return this["source"]["ip"]; }, getEventType: function() { return this["event"]["type"]; }, getEventX: function() { return this["event"]["x"]; }, getEventY: function() { return this["event"]["y"]; }, getEventOffsetX: function() { return this["event"]["offsetX"]; }, getEventOffsetY: function() { return this["event"]["offsetY"]; }, getApplicationHost: function() { return this["application"]["host"]; }, getApplicationUrl: function() { return this["application"]["url"]; }, getApplicationUri: function() { return this["application"]["uri"]; }, getElementId: function() { return this["element"]["id"]; }, getElementType: function() { return this["element"]["type"]; }, getElementPath: function() { return this["element"]["path"]; }, getNodeRepositoryId: function() { return this["node"]["repositoryId"]; }, getNodeBranchId: function() { return this["node"]["branchId"]; }, getNodeId: function() { return this["node"]["id"]; }, getTimestampStart: function() { return this["timestamp"]["start"]; }, getTimestampEnd: function() { return this["timestamp"]["end"]; }, getTimestampMs: function() { return this["timestamp"]["ms"]; }, getPrincipalDomainId: function() { return this["principal"]["domainId"]; }, getPrincipalId: function() { return this["principal"]["id"]; } }); })(window);