(function(window) { var Gitana = window.Gitana; Gitana.InteractionApplication = Gitana.AbstractReportableWarehouseObject.extend( /** @lends Gitana.InteractionApplication.prototype */ { /** * @constructs * @augments Gitana.AbstractReportableWarehouseObject * * @class InteractionApplication * * @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.InteractionApplication"; }; this.interactionObjectTypeId = "application"; }, /** * @OVERRIDE */ getType: function() { return Gitana.TypedIDConstants.TYPE_INTERACTION_APPLICATION; }, /** * @OVERRIDE */ getUri: function() { return "/warehouses/" + this.getWarehouseId() + "/applications/" + this.getId(); }, /** * @override */ clone: function() { return this.getFactory().interactionApplication(this.getWarehouse(), this); }, getTimestampStart: function() { return this.get("timestamp")["start"]; }, getTimestampEnd: function() { return this.get("timestamp")["end"]; }, ////////////////////////////////////////////////////////////////////////////////////////// // // INTERACTIONS // ////////////////////////////////////////////////////////////////////////////////////////// /** * Lists the interactions. * * @param pagination * * @chained interaction map */ listInteractions: function(pagination) { return this.queryInteractions(null, pagination); }, /** * Queries for interactions. * * @chained interaction map * * @param {Object} query * @param [Object] pagination pagination (optional) */ queryInteractions: function(query, pagination) { if (!query) { query = {}; } query["interactionApplicationId"] = this.getId(); return this.subchain(this.getWarehouse()).queryInteractions(query, pagination); }, /** * Lists the sessions. * * @param pagination * * @chained interaction map */ listSessions: function(pagination) { return this.querySessions(null, pagination); }, /** * Queries for sessions. * * @chained interaction map * * @param {Object} query * @param [Object] pagination pagination (optional) */ querySessions: function(query, pagination) { if (!query) { query = {}; } query["interactionApplicationId"] = this.getId(); return this.subchain(this.getWarehouse()).queryInteractionSessions(query, pagination); }, /** * Lists the pages. * * @param pagination * * @chained interaction map */ listPages: function(pagination) { return this.queryPages(null, pagination); }, /** * Queries for pages. * * @chained interaction map * * @param {Object} query * @param [Object] pagination pagination (optional) */ queryPages: function(query, pagination) { if (!query) { query = {}; } query["interactionApplicationId"] = this.getId(); return this.subchain(this.getWarehouse()).queryInteractionPages(query, pagination); } }); })(window);