usergrid-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From snoopd...@apache.org
Subject [39/58] [abbrv] [partial] moving files to new dist directory
Date Tue, 01 Apr 2014 18:21:42 GMT
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/bd74da42/portal/dist/appsvc-ui/archive/js/app/usergrid.appSDK.js
----------------------------------------------------------------------
diff --git a/portal/dist/appsvc-ui/archive/js/app/usergrid.appSDK.js b/portal/dist/appsvc-ui/archive/js/app/usergrid.appSDK.js
deleted file mode 100644
index 84bf33f..0000000
--- a/portal/dist/appsvc-ui/archive/js/app/usergrid.appSDK.js
+++ /dev/null
@@ -1,2097 +0,0 @@
-/**
- *  App SDK is a collection of classes designed to make working with
- *  the Appigee App Services API as easy as possible.
- *  Learn more at http://apigee.com/docs
- *
- *   Copyright 2012 Apigee Corporation
- *
- *  Licensed under the Apache License, Version 2.0 (the "License");
- *  you may not use this file except in compliance with the License.
- *  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-
-//define the console.log for IE
-window.console = window.console || {};
-window.console.log = window.console.log || function() {};
-
-//Usergrid namespace encapsulates this SDK
-window.Usergrid = window.Usergrid || {};
-Usergrid = Usergrid || {};
-Usergrid.SDK_VERSION = '0.9.9';
-
-/**
- *  Usergrid.Query is a class for holding all query information and paging state
- *
- *  @class Query
- *  @author Rod Simpson (rod@apigee.com)
- */
-
-(function () {
-
-  /**
-   *  @constructor
-   *  @param {string} method
-   *  @param {string} path
-   *  @param {object} jsonObj
-   *  @param {object} paramsObj
-   *  @param {function} successCallback
-   *  @param {function} failureCallback
-   */
-  Usergrid.Query = function(method, resource, jsonObj, paramsObj, successCallback, failureCallback) {
-    //query vars
-    this._method = method;
-    this._resource = resource;
-    this._jsonObj = jsonObj;
-    this._paramsObj = paramsObj;
-    this._successCallback = successCallback;
-    this._failureCallback = failureCallback;
-    this._filePost = false;
-    //curl command - will be populated by runQuery function
-    this._curl = '';
-    this._token = false;
-
-    //paging vars
-    this._cursor = null;
-    this._next = null;
-    this._previous = [];
-    this._start = 0;
-    this._end = 0;
-  };
-
-  Usergrid.Query.prototype = {
-     setQueryStartTime: function() {
-       this._start = new Date().getTime();
-     },
-
-     setQueryEndTime: function() {
-       this._end = new Date().getTime();
-     },
-
-     getQueryTotalTime: function() {
-       var seconds = 0;
-       var time = this._end - this._start;
-       try {
-          seconds = ((time/10) / 60).toFixed(2);
-       } catch(e){ return 0; }
-       return this.getMethod() + " " + this.getResource() + " - " + seconds + " seconds";
-     },
-    /**
-     *  A method to set all settable parameters of the Query at one time
-     *
-     *  @public
-     *  @method validateUsername
-     *  @param {string} method
-     *  @param {string} path
-     *  @param {object} jsonObj
-     *  @param {object} paramsObj
-     *  @param {function} successCallback
-     *  @param {function} failureCallback
-     *  @return none
-     */
-    setAllQueryParams: function(method, resource, jsonObj, paramsObj, successCallback, failureCallback) {
-      this._method = method;
-      this._resource = resource;
-      this._jsonObj = jsonObj;
-      this._paramsObj = paramsObj;
-      this._successCallback = successCallback;
-      this._failureCallback = failureCallback;
-    },
-
-    /**
-     *  A method to reset all the parameters in one call
-     *
-     *  @public
-     *  @return none
-     */
-    clearAll: function() {
-      this._method = null;
-      this._resource = null;
-      this._jsonObj = {};
-      this._paramsObj = {};
-      this._successCallback = null;
-      this._failureCallback = null;
-    },
-    /**
-    * Returns the method
-    *
-    * @public
-    * @method getMethod
-    * @return {string} Returns method
-    */
-    getMethod: function() {
-      return this._method;
-    },
-
-    /**
-    * sets the method (POST, PUT, DELETE, GET)
-    *
-    * @public
-    * @method setMethod
-    * @return none
-    */
-    setMethod: function(method) {
-      this._method = method;
-    },
-
-    /**
-    * Returns the resource
-    *
-    * @public
-    * @method getResource
-    * @return {string} the resource
-    */
-    getResource: function() {
-      return this._resource;
-    },
-
-    /**
-    * sets the resource
-    *
-    * @public
-    * @method setResource
-    * @return none
-    */
-    setResource: function(resource) {
-      this._resource = resource;
-    },
-
-    /**
-    * Returns the json Object
-    *
-    * @public
-    * @method getJsonObj
-    * @return {object} Returns the json Object
-    */
-    getJsonObj: function() {
-      return this._jsonObj;
-    },
-
-    /**
-    * sets the json object
-    *
-    * @public
-    * @method setJsonObj
-    * @return none
-    */
-    setJsonObj: function(jsonObj) {
-      this._jsonObj = jsonObj;
-    },
-    /**
-    * Returns the Query Parameters object
-    *
-    * @public
-    * @method getQueryParams
-    * @return {object} Returns Query Parameters object
-    */
-    getQueryParams: function() {
-      return this._paramsObj;
-    },
-
-    /**
-    * sets the query parameter object
-    *
-    * @public
-    * @method setQueryParams
-    * @return none
-    */
-    setQueryParams: function(paramsObj) {
-      this._paramsObj = paramsObj;
-    },
-
-    /**
-    * Returns the success callback function
-    *
-    * @public
-    * @method getSuccessCallback
-    * @return {function} Returns the successCallback
-    */
-    getSuccessCallback: function() {
-      return this._successCallback;
-    },
-
-    /**
-    * sets the success callback function
-    *
-    * @public
-    * @method setSuccessCallback
-    * @return none
-    */
-    setSuccessCallback: function(successCallback) {
-      this._successCallback = successCallback;
-    },
-
-    /**
-    * Calls the success callback function
-    *
-    * @public
-    * @method callSuccessCallback
-    * @return {boolean} Returns true or false based on if there was a callback to call
-    */
-    callSuccessCallback: function(response) {
-      if (this._successCallback && typeof(this._successCallback ) === "function") {
-        this._successCallback(response);
-        return true;
-      } else {
-        return false;
-      }
-    },
-
-    /**
-    * Returns the failure callback function
-    *
-    * @public
-    * @method getFailureCallback
-    * @return {function} Returns the failureCallback
-    */
-    getFailureCallback: function() {
-      return this._failureCallback;
-    },
-
-    /**
-    * sets the failure callback function
-    *
-    * @public
-    * @method setFailureCallback
-    * @return none
-    */
-    setFailureCallback: function(failureCallback) {
-      this._failureCallback = failureCallback;
-    },
-
-    /**
-    * Calls the failure callback function
-    *
-    * @public
-    * @method callFailureCallback
-    * @return {boolean} Returns true or false based on if there was a callback to call
-    */
-    callFailureCallback: function(response) {
-      if (this._failureCallback && typeof(this._failureCallback) === "function") {
-        this._failureCallback(response);
-        return true;
-      } else {
-        return false;
-      }
-    },
-
-    /**
-    * Returns the curl call
-    *
-    * @public
-    * @method getCurl
-    * @return {function} Returns the curl call
-    */
-    getCurl: function() {
-      return this._curl;
-    },
-
-    /**
-    * sets the curl call
-    *
-    * @public
-    * @method setCurl
-    * @return none
-    */
-    setCurl: function(curl) {
-      this._curl = curl;
-    },
-
-    /**
-    * Returns the Token
-    *
-    * @public
-    * @method getToken
-    * @return {function} Returns the Token
-    */
-    getToken: function() {
-      return this._token;
-    },
-
-    /**
-    * Method to set
-    *
-    * @public
-    * @method setToken
-    * @return none
-    */
-    setToken: function(token) {
-      this._token = token;
-    },
-
-    /**
-    * Resets the paging pointer (back to original page)
-    *
-    * @public
-    * @method resetPaging
-    * @return none
-    */
-    resetPaging: function() {
-      this._previous = [];
-      this._next = null;
-      this._cursor = null;
-    },
-
-    /**
-    * Method to determine if there is a previous page of data
-    *
-    * @public
-    * @method hasPrevious
-    * @return {boolean} true or false based on if there is a previous page
-    */
-    hasPrevious: function() {
-      return (this._previous.length > 0);
-    },
-
-    /**
-    * Method to set the paging object to get the previous page of data
-    *
-    * @public
-    * @method getPrevious
-    * @return none
-    */
-    getPrevious: function() {
-      this._next=null; //clear out next so the comparison will find the next item
-      this._cursor = this._previous.pop();
-    },
-
-    /**
-    * Method to determine if there is a next page of data
-    *
-    * @public
-    * @method hasNext
-    * @return {boolean} true or false based on if there is a next page
-    */
-    hasNext: function(){
-      return (this._next);
-    },
-
-    /**
-    * Method to set the paging object to get the next page of data
-    *
-    * @public
-    * @method getNext
-    * @return none
-    */
-    getNext: function() {
-      this._previous.push(this._cursor);
-      this._cursor = this._next;
-    },
-
-    /**
-    * Method to save off the cursor just returned by the last API call
-    *
-    * @public
-    * @method saveCursor
-    * @return none
-    */
-    saveCursor: function(cursor) {
-      //if current cursor is different, grab it for next cursor
-      if (this._next !== cursor) {
-        this._next = cursor;
-      }
-    },
-
-    /**
-    * Method to determine if there is a next page of data
-    *
-    * @public
-    * @method getCursor
-    * @return {string} the current cursor
-    */
-    getCursor: function() {
-      return this._cursor;
-    },
-
-    getFilePost: function() {
-      return this._filePost;
-    },
-    setFilePost: function(filePost) {
-      this._filePost = filePost;
-    }
-  };
-})(Usergrid);
-
-
-/**
- *  A class to Model a Usergrid Entity.
- *
- *  @class Entity
- *  @author Rod Simpson (rod@apigee.com)
- */
-(function () {
-  /**
-   *  Constructor for initializing an entity
-   *
-   *  @constructor
-   *  @param {string} collectionType - the type of collection to model
-   *  @param {uuid} uuid - (optional), the UUID of the collection if it is known
-   */
-  Usergrid.Entity = function(collectionType, uuid) {
-    this._collectionType = collectionType;
-    this._data = {};
-    this._uuid = uuid;
-  };
-
-  //inherit prototype from Query
-  Usergrid.Entity.prototype = new Usergrid.Query();
-
-  /**
-   *  gets the current Entity type
-   *
-   *  @method getCollectionType
-   *  @return {string} collection type
-   */
-  Usergrid.Entity.prototype.getCollectionType = function (){
-    return this._collectionType;
-  }
-
-  /**
-   *  sets the current Entity type
-   *
-   *  @method setCollectionType
-   *  @param {string} collectionType
-   *  @return none
-   */
-  Usergrid.Entity.prototype.setCollectionType = function (collectionType){
-    this._collectionType = collectionType;
-  }
-
-  /**
-   *  gets a specific field or the entire data object. If null or no argument
-   *  passed, will return all data, else, will return a specific field
-   *
-   *  @method get
-   *  @param {string} field
-   *  @return {string} || {object} data
-   */
-  Usergrid.Entity.prototype.get = function (field){
-    if (field) {
-      return this._data[field];
-    } else {
-      return this._data;
-    }
-  },
-
-  /**
-   *  adds a specific field or object to the Entity's data
-   *
-   *  @method set
-   *  @param {string} item || {object}
-   *  @param {string} value
-   *  @return none
-   */
-  Usergrid.Entity.prototype.set = function (item, value){
-    if (typeof item === 'object') {
-      for(field in item) {
-        this._data[field] = item[field];
-      }
-    } else if (typeof item === 'string') {
-      this._data[item] = value;
-    } else {
-      this._data = null;
-    }
-  }
-
-  /**
-   *  Saves the entity back to the database
-   *
-   *  @method save
-   *  @public
-   *  @param {function} successCallback
-   *  @param {function} errorCallback
-   *  @return none
-   */
-  Usergrid.Entity.prototype.save = function (successCallback, errorCallback){
-    var path = this.getCollectionType();
-    //TODO:  API will be changed soon to accomodate PUTs via name which create new entities
-    //       This function should be changed to PUT only at that time, and updated to use
-    //       either uuid or name
-    var method = 'POST';
-    if (this.get('uuid')) {
-      method = 'PUT';
-      if (Usergrid.validation.isUUID(this.get('uuid'))) {
-        path += "/" + this.get('uuid');
-      }
-    }
-
-    //if this is a user, update the password if it has been specified
-    var data = {};
-    if (path == 'users') {
-      data = this.get();
-      var pwdata = {};
-      //Note: we have a ticket in to change PUT calls to /users to accept the password change
-      //      once that is done, we will remove this call and merge it all into one
-      if (data.oldpassword && data.newpassword) {
-        pwdata.oldpassword = data.oldpassword;
-        pwdata.newpassword = data.newpassword;
-        this.runAppQuery(new Usergrid.Query('PUT', 'users/'+uuid+'/password', pwdata, null,
-          function (response) {
-            //not calling any callbacks - this section will be merged as soon as API supports
-            //   updating passwords in general PUT call
-          },
-          function (response) {
-
-          }
-        ));
-      }
-      //remove old and new password fields so they don't end up as part of the entity object
-      delete data.oldpassword;
-      delete data.newpassword;
-    }
-
-    //update the entity
-    var self = this;
-
-    data = {};
-    var entityData = this.get();
-    //remove system specific properties
-    for (var item in entityData) {
-      if (item == 'metadata' || item == 'created' || item == 'modified' ||
-          item == 'type' || item == 'activatted' ) { continue; }
-      data[item] = entityData[item];
-    }
-
-    this.setAllQueryParams(method, path, data, null,
-      function(response) {
-        try {
-          var entity = response.entities[0];
-          self.set(entity);
-          if (typeof(successCallback) === "function"){
-            successCallback(response);
-          }
-        } catch (e) {
-          if (typeof(errorCallback) === "function"){
-            errorCallback(response);
-          }
-        }
-      },
-      function(response) {
-        if (typeof(errorCallback) === "function"){
-          errorCallback(response);
-        }
-      }
-    );
-    Usergrid.ApiClient.runAppQuery(this);
-  }
-
-  /**
-   *  refreshes the entity by making a GET call back to the database
-   *
-   *  @method fetch
-   *  @public
-   *  @param {function} successCallback
-   *  @param {function} errorCallback
-   *  @return none
-   */
-  Usergrid.Entity.prototype.fetch = function (successCallback, errorCallback){
-    var path = this.getCollectionType();
-    //if a uuid is available, use that, otherwise, use the name
-    if (this.get('uuid')) {
-      path += "/" + this.get('uuid');
-    } else {
-      if (path == "users") {
-        if (this.get("username")) {
-          path += "/" + this.get("username");
-        } else {
-          console.log('no username specified');
-          if (typeof(errorCallback) === "function"){
-            console.log('no username specified');
-          }
-        }
-      } else {
-        if (this.get()) {
-          path += "/" + this.get();
-        } else {
-          console.log('no entity identifier specified');
-          if (typeof(errorCallback) === "function"){
-            console.log('no entity identifier specified');
-          }
-        }
-      }
-    }
-    var self = this;
-    this.setAllQueryParams('GET', path, null, null,
-      function(response) {
-        try {
-          if (response.user) {
-            self.set(response.user);
-          }
-          var entity = response.entities[0];
-          self.set(entity);
-          if (typeof(successCallback) === "function"){
-            successCallback(response);
-          }
-        } catch (e) {
-          if (typeof(errorCallback) === "function"){
-            errorCallback(response);
-          }
-        }
-      },
-      function(response) {
-        if (typeof(errorCallback) === "function"){
-            errorCallback(response);
-        }
-      }
-    );
-    Usergrid.ApiClient.runAppQuery(this);
-  }
-
-  /**
-   *  deletes the entity from the database - will only delete
-   *  if the object has a valid uuid
-   *
-   *  @method destroy
-   *  @public
-   *  @param {function} successCallback
-   *  @param {function} errorCallback
-   *  @return none
-   *
-   */
-  Usergrid.Entity.prototype.destroy = function (successCallback, errorCallback){
-    var path = this.getCollectionType();
-    if (this.get('uuid')) {
-      path += "/" + this.get('uuid');
-    } else {
-      console.log('Error trying to delete object - no uuid specified.');
-      if (typeof(errorCallback) === "function"){
-        errorCallback('Error trying to delete object - no uuid specified.');
-      }
-    }
-    var self = this;
-    this.setAllQueryParams('DELETE', path, null, null,
-      function(response) {
-        //clear out this object
-        self.set(null);
-        if (typeof(successCallback) === "function"){
-          successCallback(response);
-        }
-      },
-      function(response) {
-        if (typeof(errorCallback) === "function"){
-            errorCallback(response);
-        }
-      }
-    );
-    Usergrid.ApiClient.runAppQuery(this);
-  }
-
-})(Usergrid);
-
-
-/**
- *  The Collection class models Usergrid Collections.  It essentially
- *  acts as a container for holding Entity objects, while providing
- *  additional funcitonality such as paging, and saving
- *
- *  @class Collection
- *  @author Rod Simpson (rod@apigee.com)
- */
-(function () {
-  /**
-   *  Collection is a container class for holding entities
-   *
-   *  @constructor
-   *  @param {string} collectionPath - the type of collection to model
-   *  @param {uuid} uuid - (optional), the UUID of the collection if it is known
-   */
-  Usergrid.Collection = function(path, uuid) {
-    this._path = path;
-    this._uuid = uuid;
-    this._list = [];
-    this._Query = new Usergrid.Query();
-    this._iterator = -1; //first thing we do is increment, so set to -1
-  };
-
-  Usergrid.Collection.prototype = new Usergrid.Query();
-
-  /**
-   *  gets the current Collection path
-   *
-   *  @method getPath
-   *  @return {string} path
-   */
-  Usergrid.Collection.prototype.getPath = function (){
-    return this._path;
-  }
-
-  /**
-   *  sets the Collection path
-   *
-   *  @method setPath
-   *  @param {string} path
-   *  @return none
-   */
-  Usergrid.Collection.prototype.setPath = function (path){
-    this._path = path;
-  }
-
-  /**
-   *  gets the current Collection UUID
-   *
-   *  @method getUUID
-   *  @return {string} the uuid
-   */
-  Usergrid.Collection.prototype.getUUID = function (){
-    return this._uuid;
-  }
-
-  /**
-   *  sets the current Collection UUID
-   *  @method setUUID
-   *  @param {string} uuid
-   *  @return none
-   */
-  Usergrid.Collection.prototype.setUUID = function (uuid){
-    this._uuid = uuid;
-  }
-
-  /**
-   *  Adds an Entity to the collection (adds to the local object)
-   *
-   *  @method addEntity
-   *  @param {object} entity
-   *  @param {function} successCallback
-   *  @param {function} errorCallback
-   *  @return none
-   */
-  Usergrid.Collection.prototype.addEntity = function (entity){
-    //then add it to the list
-    var count = this._list.length;
-    this._list[count] = entity;
-  }
-
-  /**
-   *  Adds a new Entity to the collection (saves, then adds to the local object)
-   *
-   *  @method addNewEntity
-   *  @param {object} entity
-   *  @return none
-   */
-  Usergrid.Collection.prototype.addNewEntity = function (entity,successCallback, errorCallback) {
-    //add the entity to the list
-    this.addEntity(entity);
-    //then save the entity
-    entity.save(successCallback, errorCallback);
-  }
-
-  Usergrid.Collection.prototype.destroyEntity = function (entity) {
-    //first get the entities uuid
-    var uuid = entity.get('uuid');
-    //if the entity has a uuid, delete it
-    if (Usergrid.validation.isUUID(uuid)) {
-      //then remove it from the list
-      var count = this._list.length;
-      var i=0;
-      var reorder = false;
-      for (i=0; i<count; i++) {
-        if(reorder) {
-          this._list[i-1] = this._list[i];
-          this._list[i] = null;
-        }
-        if (this._list[i].get('uuid') == uuid) {
-          this._list[i] = null;
-          reorder=true;
-        }
-      }
-    }
-    //first destroy the entity on the server
-    entity.destroy();
-  }
-
-  /**
-   *  Looks up an Entity by a specific field - will return the first Entity that
-   *  has a matching field
-   *
-   *  @method getEntityByField
-   *  @param {string} field
-   *  @param {string} value
-   *  @return {object} returns an entity object, or null if it is not found
-   */
-  Usergrid.Collection.prototype.getEntityByField = function (field, value){
-    var count = this._list.length;
-    var i=0;
-    for (i=0; i<count; i++) {
-      if (this._list[i].getField(field) == value) {
-        return this._list[i];
-      }
-    }
-    return null;
-  }
-
-  /**
-   *  Looks up an Entity by UUID
-   *
-   *  @method getEntityByUUID
-   *  @param {string} UUID
-   *  @return {object} returns an entity object, or null if it is not found
-   */
-  Usergrid.Collection.prototype.getEntityByUUID = function (UUID){
-    var count = this._list.length;
-    var i=0;
-    for (i=0; i<count; i++) {
-      if (this._list[i].get('uuid') == UUID) {
-        return this._list[i];
-      }
-    }
-    return null;
-  }
-
-  /**
-   *  Returns the first Entity of the Entity list - does not affect the iterator
-   *
-   *  @method getFirstEntity
-   *  @return {object} returns an entity object
-   */
-  Usergrid.Collection.prototype.getFirstEntity = function (){
-    var count = this._list.length;
-      if (count > 0) {
-        return this._list[0];
-      }
-      return null;
-  }
-
-  /**
-   *  Returns the last Entity of the Entity list - does not affect the iterator
-   *
-   *  @method getLastEntity
-   *  @return {object} returns an entity object
-   */
-  Usergrid.Collection.prototype.getLastEntity = function (){
-    var count = this._list.length;
-      if (count > 0) {
-        return this._list[count-1];
-      }
-      return null;
-  }
-
-  /**
-   *  Entity iteration -Checks to see if there is a "next" entity
-   *  in the list.  The first time this method is called on an entity
-   *  list, or after the resetEntityPointer method is called, it will
-   *  return true referencing the first entity in the list
-   *
-   *  @method hasNextEntity
-   *  @return {boolean} true if there is a next entity, false if not
-   */
-  Usergrid.Collection.prototype.hasNextEntity = function (){
-    var next = this._iterator + 1;
-      if(next >=0 && next < this._list.length) {
-        return true;
-      }
-      return false;
-  }
-
-  /**
-   *  Entity iteration - Gets the "next" entity in the list.  The first
-   *  time this method is called on an entity list, or after the method
-   *  resetEntityPointer is called, it will return the,
-   *  first entity in the list
-   *
-   *  @method hasNextEntity
-   *  @return {object} entity
-   */
-  Usergrid.Collection.prototype.getNextEntity = function (){
-    this._iterator++;
-      if(this._iterator >= 0 && this._iterator <= this._list.length) {
-        return this._list[this._iterator];
-      }
-      return false;
-  }
-
-  /**
-   *  Entity iteration - Checks to see if there is a "previous"
-   *  entity in the list.
-   *
-   *  @method hasPreviousEntity
-   *  @return {boolean} true if there is a previous entity, false if not
-   */
-  Usergrid.Collection.prototype.hasPreviousEntity = function (){
-    var previous = this._iterator - 1;
-      if(previous >=0 && previous < this._list.length) {
-        return true;
-      }
-      return false;
-  }
-
-  /**
-   *  Entity iteration - Gets the "previous" entity in the list.
-   *
-   *  @method getPreviousEntity
-   *  @return {object} entity
-   */
-  Usergrid.Collection.prototype.getPreviousEntity = function (){
-     this._iterator--;
-      if(this._iterator >= 0 && this._iterator <= this._list.length) {
-        return this.list[this._iterator];
-      }
-      return false;
-  }
-
-  /**
-   *  Entity iteration - Resets the iterator back to the beginning
-   *  of the list
-   *
-   *  @method resetEntityPointer
-   *  @return none
-   */
-  Usergrid.Collection.prototype.resetEntityPointer = function (){
-     this._iterator  = -1;
-  }
-
-  /**
-   *  gets and array of all entities currently in the colleciton object
-   *
-   *  @method getEntityList
-   *  @return {array} returns an array of entity objects
-   */
-  Usergrid.Collection.prototype.getEntityList = function (){
-     return this._list;
-  }
-
-  /**
-   *  sets the entity list
-   *
-   *  @method setEntityList
-   *  @param {array} list - an array of Entity objects
-   *  @return none
-   */
-  Usergrid.Collection.prototype.setEntityList = function (list){
-    this._list = list;
-  }
-
-  /**
-   *  Paging -  checks to see if there is a next page od data
-   *
-   *  @method hasNextPage
-   *  @return {boolean} returns true if there is a next page of data, false otherwise
-   */
-  Usergrid.Collection.prototype.hasNextPage = function (){
-    return this.hasNext();
-  }
-
-  /**
-   *  Paging - advances the cursor and gets the next
-   *  page of data from the API.  Stores returned entities
-   *  in the Entity list.
-   *
-   *  @method getNextPage
-   *  @return none
-   */
-  Usergrid.Collection.prototype.getNextPage = function (){
-    if (this.hasNext()) {
-        //set the cursor to the next page of data
-        this.getNext();
-        //empty the list
-        this.setEntityList([]);
-        Usergrid.ApiClient.runAppQuery(this);
-      }
-  }
-
-  /**
-   *  Paging -  checks to see if there is a previous page od data
-   *
-   *  @method hasPreviousPage
-   *  @return {boolean} returns true if there is a previous page of data, false otherwise
-   */
-  Usergrid.Collection.prototype.hasPreviousPage = function (){
-    return this.hasPrevious();
-  }
-
-  /**
-   *  Paging - reverts the cursor and gets the previous
-   *  page of data from the API.  Stores returned entities
-   *  in the Entity list.
-   *
-   *  @method getPreviousPage
-   *  @return none
-   */
-  Usergrid.Collection.prototype.getPreviousPage = function (){
-    if (this.hasPrevious()) {
-        this.getPrevious();
-        //empty the list
-        this.setEntityList([]);
-        Usergrid.ApiClient.runAppQuery(this);
-      }
-  }
-
-  /**
-   *  clears the query parameters object
-   *
-   *  @method clearQuery
-   *  @return none
-   */
-  Usergrid.Collection.prototype.clearQuery = function (){
-    this.clearAll();
-  }
-
-  //The get() function is deprecated.  Including here for backwards compatibility
-  //with previous versions of the SDK
-  Usergrid.Collection.prototype.get = function (successCallback, errorCallback){
-    Usergrid.Collection.fetch(successCallback, errorCallback);
-  }
-
-  /**
-   *  A method to get all items in the collection, as dictated by the
-   *  cursor and the query.  By default, the API returns 10 items in
-   *  a given call.  This can be overriden so that more or fewer items
-   *  are returned.  The entities returned are all stored in the colleciton
-   *  object's entity list, and can be retrieved by calling getEntityList()
-   *
-   *  @method get
-   *  @param {function} successCallback
-   *  @param {function} errorCallback
-   *  @return none
-   */
-  Usergrid.Collection.prototype.fetch = function (successCallback, errorCallback){
-    var self = this;
-    var queryParams = this.getQueryParams();
-    //empty the list
-    this.setEntityList([]);
-    this.setAllQueryParams('GET', this.getPath(), null, queryParams,
-      function(response) {
-        if (response.entities) {
-          this.resetEntityPointer();
-          var count = response.entities.length;
-          for (var i=0;i<count;i++) {
-            var uuid = response.entities[i].uuid;
-            if (uuid) {
-              var entity = new Usergrid.Entity(self.getPath(), uuid);
-              //store the data in the entity
-              var data = response.entities[i] || {};
-              delete data.uuid; //remove uuid from the object
-              entity.set(data);
-              //store the new entity in this collection
-              self.addEntity(entity);
-            }
-          }
-          if (typeof(successCallback) === "function"){
-            successCallback(response);
-          }
-        } else {
-          if (typeof(errorCallback) === "function"){
-              errorCallback(response);
-          }
-        }
-      },
-      function(response) {
-        if (typeof(errorCallback) === "function"){
-            errorCallback(response);
-        }
-      }
-    );
-    Usergrid.ApiClient.runAppQuery(this);
-  }
-
-  /**
-   *  A method to save all items currently stored in the collection object
-   *  caveat with this method: we can't update anything except the items
-   *  currently stored in the collection.
-   *
-   *  @method save
-   *  @param {function} successCallback
-   *  @param {function} errorCallback
-   *  @return none
-   */
-  Usergrid.Collection.prototype.save = function (successCallback, errorCallback){
-    //loop across all entities and save each one
-    var entities = this.getEntityList();
-    var count = entities.length;
-    var jsonObj = [];
-    for (var i=0;i<count;i++) {
-      entity = entities[i];
-      data = entity.get();
-      if (entity.get('uuid')) {
-        data.uuid = entity.get('uuid');
-        jsonObj.push(data);
-      }
-      entity.save();
-    }
-    this.setAllQueryParams('PUT', this.getPath(), jsonObj, null,successCallback, errorCallback);
-    Usergrid.ApiClient.runAppQuery(this);
-  }
-})(Usergrid);
-
-
-/*
- *  Usergrid.ApiClient
- *
- *  A Singleton that is the main client for making calls to the API. Maintains
- *  state between calls for the following items:
- *
- *  Token
- *  User (username, email, name, uuid)
- *
- *  Main methods for making calls to the API are:
- *
- *  runAppQuery (Query)
- *  runManagementQuery(Query)
- *
- *  Create a new Usergrid.Query object and then pass it to either of these
- *  two methods for making calls directly to the API.
- *
- *  A method for logging in an app user (to get a OAuth token) also exists:
- *
- *  logInAppUser (username, password, successCallback, failureCallback)
- *
- *  @class Usergrid.ApiClient
- *  @author Rod Simpson (rod@apigee.com)
- *
- */
-Usergrid.M = 'ManagementQuery';
-Usergrid.A = 'ApplicationQuery';
-Usergrid.ApiClient = (function () {
-  //API endpoint
-  var _apiUrl = "https://api.usergrid.com/";
-  var _orgName = null;
-  var _appName = null;
-  var _token = null;
-  var _callTimeout = 30000;
-  var _queryType = null;
-  var _loggedInUser = null;
-  var _logoutCallback = null;
-  var _callTimeoutCallback = null;
-
-
-  /*
-   *  A method to set up the ApiClient with orgname and appname
-   *
-   *  @method init
-   *  @public
-   *  @param {string} orgName
-   *  @param {string} appName
-   *  @return none
-   *
-   */
-  function init(orgName, appName){
-    this.setOrganizationName(orgName);
-    this.setApplicationName(appName);
-  }
-
-  /*
-  *  Public method to run calls against the app endpoint
-  *
-  *  @method runAppQuery
-  *  @public
-  *  @params {object} Usergrid.Query - {method, path, jsonObj, params, successCallback, failureCallback}
-  *  @return none
-  */
-  function runAppQuery (Query) {
-    var endpoint = "/" + this.getOrganizationName() + "/" + this.getApplicationName() + "/";
-    setQueryType(Usergrid.A);
-    run(Query, endpoint);
-  }
-
-  /*
-  *  Public method to run calls against the management endpoint
-  *
-  *  @method runManagementQuery
-  *  @public
-  *  @params {object} Usergrid.Query - {method, path, jsonObj, params, successCallback, failureCallback}
-  *  @return none
-  */
-  function runManagementQuery (Query) {
-    var endpoint = "/management/";
-    setQueryType(Usergrid.M);
-    run(Query, endpoint)
-  }
-
-  /*
-    *  A public method to get the organization name to be used by the client
-    *
-    *  @method getOrganizationName
-    *  @public
-    *  @return {string} the organization name
-    */
-  function getOrganizationName() {
-    return _orgName;
-  }
-
-  /*
-    *  A public method to set the organization name to be used by the client
-    *
-    *  @method setOrganizationName
-    *  @param orgName - the organization name
-    *  @return none
-    */
-  function setOrganizationName(orgName) {
-    _orgName = orgName;
-  }
-
-  /*
-  *  A public method to get the application name to be used by the client
-  *
-  *  @method getApplicationName
-  *  @public
-  *  @return {string} the application name
-  */
-  function getApplicationName() {
-    return _appName;
-  }
-
-  /*
-  *  A public method to set the application name to be used by the client
-  *
-  *  @method setApplicationName
-  *  @public
-  *  @param appName - the application name
-  *  @return none
-  */
-  function setApplicationName(appName) {
-    _appName = appName;
-  }
-
-  /*
-  *  A public method to get current OAuth token
-  *
-  *  @method getToken
-  *  @public
-  *  @return {string} the current token
-  */
-  function getToken() {
-    return _token;
-  }
-
-  /*
-  *  A public method to set the current Oauth token
-  *
-  *  @method setToken
-  *  @public
-  *  @param token - the bearer token
-  *  @return none
-  */
-  function setToken(token) {
-    _token = token;
-  }
-
-  /*
-   *  A public method to return the API URL
-   *
-   *  @method getApiUrl
-   *  @public
-   *  @return {string} the API url
-   */
-  function getApiUrl() {
-    return _apiUrl;
-  }
-
-  /*
-   *  A public method to overide the API url
-   *
-   *  @method setApiUrl
-   *  @public
-   *  @return none
-   */
-  function setApiUrl(apiUrl) {
-    _apiUrl = apiUrl;
-  }
-
-  /*
-   *  A public method to return the call timeout amount
-   *
-   *  @method getCallTimeout
-   *  @public
-   *  @return {string} the timeout value (an integer) 30000 = 30 seconds
-   */
-  function getCallTimeout() {
-    return _callTimeout;
-  }
-
-  /*
-   *  A public method to override the call timeout amount
-   *
-   *  @method setCallTimeout
-   *  @public
-   *  @return none
-   */
-  function setCallTimeout(callTimeout) {
-    _callTimeout = callTimeout;
-  }
-
-  /*
-   * Returns the call timeout callback function
-   *
-   * @public
-   * @method setCallTimeoutCallback
-   * @return none
-   */
-  function setCallTimeoutCallback(callback) {
-    _callTimeoutCallback = callback;
-  }
-
-  /*
-   * Returns the call timeout callback function
-   *
-   * @public
-   * @method getCallTimeoutCallback
-   * @return {function} Returns the callTimeoutCallback
-   */
-  function getCallTimeoutCallback() {
-    return _callTimeoutCallback;
-  }
-
-  /*
-   * Calls the call timeout callback function
-   *
-   * @public
-   * @method callTimeoutCallback
-   * @return {boolean} Returns true or false based on if there was a callback to call
-   */
-  function callTimeoutCallback(response) {
-    if (_callTimeoutCallback && typeof(_callTimeoutCallback) === "function") {
-      _callTimeoutCallback(response);
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  /*
-   *  A public method to get the api url of the reset pasword endpoint
-   *
-   *  @method getResetPasswordUrl
-   *  @public
-   *  @return {string} the api rul of the reset password endpoint
-   */
-  function getResetPasswordUrl() {
-    return getApiUrl() + "management/users/resetpw"
-  }
-
-  /*
-   *  A public method to get an Entity object for the current logged in user
-   *
-   *  @method getLoggedInUser
-   *  @public
-   *  @return {object} user - Entity object of type user
-   */
-  function getLoggedInUser() {
-    return this._loggedInUser;
-  }
-
-  /*
-   *  A public method to set an Entity object for the current logged in user
-   *
-   *  @method setLoggedInUser
-   *  @public
-   *  @param {object} user - Entity object of type user
-   *  @return none
-   */
-  function setLoggedInUser(user) {
-    this._loggedInUser = user;
-  }
-
-  /*
-  *  A public method to log in an app user - stores the token for later use
-  *
-  *  @method logInAppUser
-  *  @public
-  *  @params {string} username
-  *  @params {string} password
-  *  @params {function} successCallback
-  *  @params {function} failureCallback
-  *  @return {response} callback functions return API response object
-  */
-  function logInAppUser (username, password, successCallback, failureCallback) {
-    var self = this;
-    var data = {"username": username, "password": password, "grant_type": "password"};
-    this.runAppQuery(new Usergrid.Query('POST', 'token', data, null,
-      function (response) {
-        var user = new Usergrid.Entity('users');
-        user.set('username', response.user.username);
-        user.set('name', response.user.name);
-        user.set('email', response.user.email);
-        user.set('uuid', response.user.uuid);
-        self.setLoggedInUser(user);
-        self.setToken(response.access_token);
-        if (successCallback && typeof(successCallback) === "function") {
-          successCallback(response);
-        }
-      },
-      function (response) {
-        if (failureCallback && typeof(failureCallback) === "function") {
-          failureCallback(response);
-        }
-      }
-     ));
-  }
-
-  /*
-   *  TODO:  NOT IMPLEMENTED YET - A method to renew an app user's token
-   *  Note: waiting for API implementation
-   *  @method renewAppUserToken
-   *  @public
-   *  @return none
-   */
-  function renewAppUserToken() {
-
-  }
-
-  /**
-   *  A public method to log out an app user - clears all user fields from client
-   *
-   *  @method logoutAppUser
-   *  @public
-   *  @return none
-   */
-  function logoutAppUser() {
-    this.setLoggedInUser(null);
-    this.setToken(null);
-  }
-
-  /**
-   *  A public method to test if a user is logged in - does not guarantee that the token is still valid,
-   *  but rather that one exists, and that there is a valid UUID
-   *
-   *  @method isLoggedInAppUser
-   *  @public
-   *  @params {object} Usergrid.Query - {method, path, jsonObj, params, successCallback, failureCallback}
-   *  @return {boolean} Returns true the user is logged in (has token and uuid), false if not
-   */
-  function isLoggedInAppUser() {
-    var user = this.getLoggedInUser();
-    return (this.getToken() && Usergrid.validation.isUUID(user.get('uuid')));
-  }
-
-   /*
-   *  A public method to get the logout callback, which is called
-   *
-   *  when the token is found to be invalid
-   *  @method getLogoutCallback
-   *  @public
-   *  @return {string} the api rul of the reset password endpoint
-   */
-  function getLogoutCallback() {
-    return _logoutCallback;
-  }
-
-  /*
-   *  A public method to set the logout callback, which is called
-   *
-   *  when the token is found to be invalid
-   *  @method setLogoutCallback
-   *  @public
-   *  @param {function} logoutCallback
-   *  @return none
-   */
-  function setLogoutCallback(logoutCallback) {
-    _logoutCallback = logoutCallback;
-  }
-
-  /*
-   *  A public method to call the logout callback, which is called
-   *
-   *  when the token is found to be invalid
-   *  @method callLogoutCallback
-   *  @public
-   *  @return none
-   */
-  function callLogoutCallback() {
-    if (_logoutCallback && typeof(_logoutCallback ) === "function") {
-      _logoutCallback();
-      return true;
-    } else {
-      return false;
-    }
-  }
-
-  /**
-   *  Private helper method to encode the query string parameters
-   *
-   *  @method encodeParams
-   *  @public
-   *  @params {object} params - an object of name value pairs that will be urlencoded
-   *  @return {string} Returns the encoded string
-   */
-  function encodeParams (params) {
-    tail = [];
-    var item = [];
-    if (params instanceof Array) {
-      for (i in params) {
-        item = params[i];
-        if ((item instanceof Array) && (item.length > 1)) {
-          tail.push(item[0] + "=" + encodeURIComponent(item[1]));
-        }
-      }
-    } else {
-      for (var key in params) {
-        if (params.hasOwnProperty(key)) {
-          var value = params[key];
-          if (value instanceof Array) {
-            for (i in value) {
-              item = value[i];
-              tail.push(key + "=" + encodeURIComponent(item));
-            }
-          } else {
-            tail.push(key + "=" + encodeURIComponent(value));
-          }
-        }
-      }
-    }
-    return tail.join("&");
-  }
-
-  /*
-   *  A private method to get the type of the current api call - (Management or Application)
-   *
-   *  @method getQueryType
-   *  @private
-   *  @return {string} the call type
-   */
-  function getQueryType() {
-    return _queryType;
-  }
-  /*
-   *  A private method to set the type of the current api call - (Management or Application)
-   *
-   *  @method setQueryType
-   *  @private
-   *  @param {string} call type
-   *  @return none
-   */
-  function setQueryType(type) {
-    _queryType = type;
-  }
-
-  /**
-   *  A private method to validate, prepare,, and make the calls to the API
-   *  Use runAppQuery or runManagementQuery to make your calls!
-   *
-   *  @method run
-   *  @private
-   *  @params {object} Usergrid.Query - {method, path, jsonObj, params, successCallback, failureCallback}
-   *  @params {string} endpoint - used to differentiate between management and app queries
-   *  @return {response} callback functions return API response object
-   */
-  function run (Query, endpoint) {
-    var curl = "curl";
-    //validate parameters
-    try {
-      //verify that the query object is valid
-      if(!(Query instanceof Usergrid.Query)) {
-        throw(new Error('Query is not a valid object.'));
-      }
-      //for timing, call start
-      Query.setQueryStartTime();
-      //peel the data out of the query object
-      var method = Query.getMethod().toUpperCase();
-      var path = Query.getResource();
-      var jsonObj = Query.getJsonObj() || {};
-      var params = Query.getQueryParams() || {};
-
-      var formData = Query.getJsonObj();
-
-      //method - should be GET, POST, PUT, or DELETE only
-      if (method != 'GET' && method != 'POST' && method != 'PUT' && method != 'DELETE') {
-        throw(new Error('Invalid method - should be GET, POST, PUT, or DELETE.'));
-      }
-      //curl - add the method to the command (no need to add anything for GET)
-      if (method == "POST") {curl += " -X POST"; }
-      else if (method == "PUT") { curl += " -X PUT"; }
-      else if (method == "DELETE") { curl += " -X DELETE"; }
-      else { curl += " -X GET"; }
-
-      //curl - append the bearer token if this is not the sandbox app
-      var application_name = Usergrid.ApiClient.getApplicationName();
-      if (application_name) {
-        application_name = application_name.toUpperCase();
-      }
-      //if (application_name != 'SANDBOX' && Usergrid.ApiClient.getToken()) {
-      if ( Usergrid.ApiClient.getToken() ) { // || (getQueryType() == Usergrid.M && Usergrid.ApiClient.getToken())) {
-        curl += ' -i -H "Authorization: Bearer ' + Usergrid.ApiClient.getToken() + '"';
-        Query.setToken(true);
-      }
-
-      //params - make sure we have a valid json object
-      _params = JSON.stringify(params);
-      if (!JSON.parse(_params)) {
-        throw(new Error('Params object is not valid.'));
-      }
-
-      //add in the cursor if one is available
-      if (Query.getCursor()) {
-        params.cursor = Query.getCursor();
-      } else {
-        delete params.cursor;
-      }
-
-      //strip off the leading slash of the endpoint if there is one
-      endpoint = endpoint.indexOf('/') == 0 ? endpoint.substring(1) : endpoint;
-
-      //add the endpoint to the path
-      path = endpoint + path;
-
-      //make sure path never has more than one / together
-      if (path) {
-        //regex to strip multiple slashes
-        while(path.indexOf('//') != -1){
-          path = path.replace('//', '/');
-        }
-      }
-
-      //add the http:// bit on the front
-      path = Usergrid.ApiClient.getApiUrl() + path;
-
-      //curl - append the path
-      curl += ' "' + path;
-
-      //curl - append params to the path for curl prior to adding the timestamp
-      var curl_encoded_params = encodeParams(params);
-      if (curl_encoded_params) {
-        curl += "?" + curl_encoded_params;
-      }
-      curl += '"';
-
-      //add in a timestamp for gets and deletes - to avoid caching by the browser
-      if ((method == "GET") || (method == "DELETE")) {
-        params['_'] = new Date().getTime();
-      }
-
-      if (Usergrid.ApiClient.getToken() && Query.getToken()) {
-        params['access_token'] = Usergrid.ApiClient.getToken();
-      }
-
-      //append params to the path
-      var encoded_params = encodeParams(params);
-      if (encoded_params) {
-        path += "?" + encoded_params;
-      }
-
-      //jsonObj - make sure we have a valid json object
-      jsonObj = JSON.stringify(jsonObj)
-      if (!JSON.parse(jsonObj)) {
-        throw(new Error('JSON object is not valid.'));
-      }
-      if (jsonObj == '{}') {
-        jsonObj = null;
-      } else {
-        //curl - add in the json obj
-        curl += " -d '" + jsonObj + "'";
-      }
-
-    } catch (e) {
-      //parameter was invalid
-      console.log('error occured running query -' + e.message);
-      return false;
-    }
-    //log the curl command to the console
-    console.log(curl);
-    //store the curl command back in the object
-    Query.setCurl(curl);
-
-    var filePost = Query.getFilePost();
-    
-    //so far so good, so run the query
-    var xD = window.XDomainRequest ? true : false;
-    var xhr = getXHR(method, path, jsonObj, filePost);
-
-    // Handle response.
-    /*
-    xhr.onerror = function() {
-      //for timing, call end
-      Query.setQueryEndTime();
-      //for timing, log the total call time
-      console.log(Query.getQueryTotalTime());
-      //network error
-      clearTimeout(timeout);
-      console.log('API call failed at the network level.');
-      //send back an error (best we can do with what ie gives back)
-      Query.callFailureCallback(response.innerText);
-    };*/
-    xhr.xdomainOnload = function (response) {
-      //for timing, call end
-      Query.setQueryEndTime();
-      //for timing, log the total call time
-      console.log('Call timing: ' + Query.getQueryTotalTime());
-      //call completed
-      clearTimeout(timeout);
-      //decode the response
-      response = JSON.parse(xhr.responseText);
-      //if a cursor was present, grab it
-      try {
-        var cursor = response.cursor || null;
-        Query.saveCursor(cursor);
-      }catch(e) {}
-      Query.callSuccessCallback(response);
-    };
-    xhr.onload = function(response) {
-      //for timing, call end
-      Query.setQueryEndTime();
-      //for timing, log the total call time
-      console.log('Call timing: ' + Query.getQueryTotalTime());
-      //call completed
-      clearTimeout(timeout);
-      //decode the response
-      response = JSON.parse(xhr.responseText);
-      if (xhr.status != 200 && !xD)   {
-        //there was an api error
-        try {
-          var error = response.error;
-          console.log('API call failed: (status: '+xhr.status+') ' + response.error_description);
-          if ( (error == "auth_expired_session_token") ||
-               (error == "auth_missing_credentials")   ||
-               (error == "auth_unverified_oath")       ||
-               (error == "expired_token")              ||
-               (error == "unauthorized")               ||
-               (error == "auth_invalid")) {
-            //this error type means the user is not authorized. If a logout function is defined, call it
-            console.log('Auth error: ' + error);
-            callLogoutCallback();
-          }
-        } catch(e){}
-        //otherwise, just call the failure callback
-        Query.callFailureCallback(response.error);
-        return;
-      } else {
-        //query completed succesfully, so store cursor
-        var cursor = response.cursor || null;
-        Query.saveCursor(cursor);
-        //then call the original callback
-        Query.callSuccessCallback(response);
-     }
-    };
-
-    var timeout = setTimeout(
-      function() {
-        xhr.abort();
-        if ( typeof(Usergrid.ApiClient.getCallTimeoutCallback()) === 'function') {
-          Usergrid.ApiClient.callTimeoutCallback('API CALL TIMEOUT');
-        } else if (typeof(Query.getFailureCallback()) === 'function'){
-          Query.callFailureCallback('API CALL TIMEOUT');
-        }
-      },
-      Usergrid.ApiClient.getCallTimeout()); //set for 30 seconds
-
-
-    if (filePost) {
-      xhr.send(formData);
-    } else {
-      xhr.send(jsonObj);
-    }
-  }
-
-   /**
-   *  A private method to return the XHR object
-   *
-   *  @method getXHR
-   *  @private
-   *  @params {string} method (GET,POST,PUT,DELETE)
-   *  @params {string} path - api endpoint to call
-   *  @return {object} jsonObj - the json object if there is one
-   */
-  function getXHR(method, path, jsonObj, filePost) {
-    var xhr;
-    if(window.XDomainRequest)
-    {
-      xhr = new window.XDomainRequest();
-      if (Usergrid.ApiClient.getToken()) {
-        if (path.indexOf("?")) {
-          path += '&access_token='+Usergrid.ApiClient.getToken();
-        } else {
-          path = '?access_token='+Usergrid.ApiClient.getToken();
-        }
-      }
-      xhr.open(method, path, true);
-    }
-    else
-    {
-      xhr = new XMLHttpRequest();
-      xhr.open(method, path, true);
-      //add content type = json if there is a json payload
-      if (!filePost) {
-        xhr.setRequestHeader("Content-Type", "application/json");
-        xhr.setRequestHeader("Accept", "application/json");
-      }
-      /*
-      if (Usergrid.ApiClient.getToken()) {
-        xhr.setRequestHeader("Authorization", "Bearer " + Usergrid.ApiClient.getToken());
-        xhr.withCredentials = true;
-      }*/
-    }
-    return xhr;
-  }
-
-  return {
-    init:init,
-    runAppQuery:runAppQuery,
-    runManagementQuery:runManagementQuery,
-    getOrganizationName:getOrganizationName,
-    setOrganizationName:setOrganizationName,
-    getApplicationName:getApplicationName,
-    setApplicationName:setApplicationName,
-    getToken:getToken,
-    setToken:setToken,
-    getCallTimeout:getCallTimeout,
-    setCallTimeout:setCallTimeout,
-    getCallTimeoutCallback:getCallTimeoutCallback,
-    setCallTimeoutCallback:setCallTimeoutCallback,
-    callTimeoutCallback:callTimeoutCallback,
-    getApiUrl:getApiUrl,
-    setApiUrl:setApiUrl,
-    getResetPasswordUrl:getResetPasswordUrl,
-    getLoggedInUser:getLoggedInUser,
-    setLoggedInUser:setLoggedInUser,
-    logInAppUser:logInAppUser,
-    renewAppUserToken:renewAppUserToken,
-    logoutAppUser:logoutAppUser,
-    isLoggedInAppUser:isLoggedInAppUser,
-    getLogoutCallback:getLogoutCallback,
-    setLogoutCallback:setLogoutCallback,
-    callLogoutCallback:callLogoutCallback
-  }
-})();
-
-/**
- * validation is a Singleton that provides methods for validating common field types
- *
- * @class Usergrid.validation
- * @author Rod Simpson (rod@apigee.com)
-**/
-Usergrid.validation = (function () {
-
-  var usernameRegex = new RegExp("^([0-9a-zA-Z\.\-])+$");
-  var nameRegex     = new RegExp("^([0-9a-zA-Z@#$%^&!?;:.,'\"~*-=+_\[\\](){}/\\ |])+$");
-  var emailRegex    = new RegExp("^(([0-9a-zA-Z]+[_\+.-]?)+@[0-9a-zA-Z]+[0-9,a-z,A-Z,.,-]*(.){1}[a-zA-Z]{2,4})+$");
-  var passwordRegex = new RegExp("^([0-9a-zA-Z@#$%^&!?<>;:.,'\"~*-=+_\[\\](){}/\\ |])+$");
-  var pathRegex     = new RegExp("^([0-9a-z./-])+$");
-  var titleRegex    = new RegExp("^([0-9a-zA-Z.!-?/])+$");
-
-  /**
-    * Tests the string against the allowed chars regex
-    *
-    * @public
-    * @method validateUsername
-    * @param {string} username - The string to test
-    * @param {function} failureCallback - (optional), the function to call on a failure
-    * @return {boolean} Returns true if string passes regex, false if not
-    */
-  function validateUsername(username, failureCallback) {
-    if (usernameRegex.test(username) && checkLength(username, 4, 80)) {
-      return true;
-    } else {
-      if (failureCallback && typeof(failureCallback) === "function") {
-        failureCallback(this.getUsernameAllowedChars());
-      }
-      return false;
-    }
-  }
-
-  /**
-    * Returns the regex of allowed chars
-    *
-    * @public
-    * @method getUsernameAllowedChars
-    * @return {string} Returns a string with the allowed chars
-    */
-  function getUsernameAllowedChars(){
-    return 'Length: min 4, max 80. Allowed: A-Z, a-z, 0-9, dot, and dash';
-  }
-
-  /**
-    * Tests the string against the allowed chars regex
-    *
-    * @public
-    * @method validateName
-    * @param {string} name - The string to test
-    * @param {function} failureCallback - (optional), the function to call on a failure
-    * @return {boolean} Returns true if string passes regex, false if not
-    */
-  function validateName(name, failureCallback) {
-    if (nameRegex.test(name) && checkLength(name, 4, 16)) {
-      return true;
-    } else {
-      if (failureCallback && typeof(failureCallback) === "function") {
-        failureCallback(this.getNameAllowedChars());
-      }
-      return false;
-    }
-  }
-
-  /**
-    * Returns the regex of allowed chars
-    *
-    * @public
-    * @method getNameAllowedChars
-    * @return {string} Returns a string with the allowed chars
-    */
-  function getNameAllowedChars(){
-    return 'Length: min 4, max 80. Allowed: A-Z, a-z, 0-9, ~ @ # % ^ & * ( ) - _ = + [ ] { } \\ | ; : \' " , . / ? !';
-  }
-
-  /**
-    * Tests the string against the allowed chars regex
-    *
-    * @public
-    * @method validatePassword
-    * @param {string} password - The string to test
-    * @param {function} failureCallback - (optional), the function to call on a failure
-    * @return {boolean} Returns true if string passes regex, false if not
-    */
-  function validatePassword(password, failureCallback) {
-    if (passwordRegex.test(password) && checkLength(password, 5, 16)) {
-      return true;
-    } else {
-      if (failureCallback && typeof(failureCallback) === "function") {
-        failureCallback(this.getPasswordAllowedChars());
-      }
-      return false;
-    }
-  }
-
-  /**
-    * Returns the regex of allowed chars
-    *
-    * @public
-    * @method getPasswordAllowedChars
-    * @return {string} Returns a string with the allowed chars
-    */
-  function getPasswordAllowedChars(){
-    return 'Length: min 5, max 16. Allowed: A-Z, a-z, 0-9, ~ @ # % ^ & * ( ) - _ = + [ ] { } \\ | ; : \' " , . < > / ? !';
-  }
-
-  /**
-    * Tests the string against the allowed chars regex
-    *
-    * @public
-    * @method validateEmail
-    * @param {string} email - The string to test
-    * @param {function} failureCallback - (optional), the function to call on a failure
-    * @return {boolean} Returns true if string passes regex, false if not
-    */
-  function validateEmail(email, failureCallback) {
-    if (emailRegex.test(email) && checkLength(email, 4, 80)) {
-      return true;
-    } else {
-      if (failureCallback && typeof(failureCallback) === "function") {
-        failureCallback(this.getEmailAllowedChars());
-      }
-      return false;
-    }
-  }
-
-  /**
-    * Returns the regex of allowed chars
-    *
-    * @public
-    * @method getEmailAllowedChars
-    * @return {string} Returns a string with the allowed chars
-    */
-  function getEmailAllowedChars(){
-    return 'Email must be in standard form: e.g. example@Usergrid.com';
-  }
-
-  /**
-    * Tests the string against the allowed chars regex
-    *
-    * @public
-    * @method validatePath
-    * @param {string} path - The string to test
-    * @param {function} failureCallback - (optional), the function to call on a failure
-    * @return {boolean} Returns true if string passes regex, false if not
-    */
-  function validatePath(path, failureCallback) {
-    if (pathRegex.test(path) && checkLength(path, 4, 80)) {
-      return true;
-    } else {
-      if (failureCallback && typeof(failureCallback) === "function") {
-        failureCallback(this.getPathAllowedChars());
-      }
-      return false;
-    }
-  }
-
-  /**
-    * Returns the regex of allowed chars
-    *
-    * @public
-    * @method getPathAllowedChars
-    * @return {string} Returns a string with the allowed chars
-    */
-  function getPathAllowedChars(){
-    return 'Length: min 4, max 80. Allowed: /, a-z, 0-9, dot, and dash';
-  }
-
-  /**
-    * Tests the string against the allowed chars regex
-    *
-    * @public
-    * @method validateTitle
-    * @param {string} title - The string to test
-    * @param {function} failureCallback - (optional), the function to call on a failure
-    * @return {boolean} Returns true if string passes regex, false if not
-    */
-  function validateTitle(title, failureCallback) {
-    if (titleRegex.test(title) && checkLength(title, 4, 80)) {
-      return true;
-    } else {
-      if (failureCallback && typeof(failureCallback) === "function") {
-        failureCallback(this.getTitleAllowedChars());
-      }
-      return false;
-    }
-  }
-
-  /**
-    * Returns the regex of allowed chars
-    *
-    * @public
-    * @method getTitleAllowedChars
-    * @return {string} Returns a string with the allowed chars
-    */
-  function getTitleAllowedChars(){
-    return 'Length: min 4, max 80. Allowed: space, A-Z, a-z, 0-9, dot, dash, /, !, and ?';
-  }
-
-  /**
-    * Tests if the string is the correct length
-    *
-    * @public
-    * @method checkLength
-    * @param {string} string - The string to test
-    * @param {integer} min - the lower bound
-    * @param {integer} max - the upper bound
-    * @return {boolean} Returns true if string is correct length, false if not
-    */
-  function checkLength(string, min, max) {
-    if (string.length > max || string.length < min) {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-    * Tests if the string is a uuid
-    *
-    * @public
-    * @method isUUID
-    * @param {string} uuid The string to test
-    * @returns {Boolean} true if string is uuid
-    */
-  function isUUID (uuid) {
-    var uuidValueRegex = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
-    if (!uuid) return false;
-    return uuidValueRegex.test(uuid);
-  }
-
-  return {
-    validateUsername:validateUsername,
-    getUsernameAllowedChars:getUsernameAllowedChars,
-    validateName:validateName,
-    getNameAllowedChars:getNameAllowedChars,
-    validatePassword:validatePassword,
-    getPasswordAllowedChars:getPasswordAllowedChars,
-    validateEmail:validateEmail,
-    getEmailAllowedChars:getEmailAllowedChars,
-    validatePath:validatePath,
-    getPathAllowedChars:getPathAllowedChars,
-    validateTitle:validateTitle,
-    getTitleAllowedChars:getTitleAllowedChars,
-    isUUID:isUUID
-  }
-})();


Mime
View raw message