usergrid-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From snoopd...@apache.org
Subject [15/51] [abbrv] git commit: lots of updates
Date Thu, 13 Feb 2014 14:20:59 GMT
lots of updates


Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/9dfc5628
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/9dfc5628
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/9dfc5628

Branch: refs/heads/two-dot-o
Commit: 9dfc5628e35ff1da84f777d4a0c54b0e1ad32192
Parents: 5ca289d
Author: ryan bridges <rbridges@apigee.com>
Authored: Thu Feb 6 17:50:40 2014 -0500
Committer: ryan bridges <rbridges@apigee.com>
Committed: Thu Feb 6 17:50:40 2014 -0500

----------------------------------------------------------------------
 .gitignore                                      |    2 +
 sdks/html5-javascript/Gruntfile.js              |  171 +-
 sdks/html5-javascript/lib/Asset.js              |  149 --
 sdks/html5-javascript/lib/Client.js             |  843 --------
 sdks/html5-javascript/lib/Collection.js         |  459 ----
 sdks/html5-javascript/lib/Counter.js            |  186 --
 sdks/html5-javascript/lib/Entity.js             |  672 ------
 sdks/html5-javascript/lib/Error.js              |   16 -
 sdks/html5-javascript/lib/Folder.js             |  167 --
 sdks/html5-javascript/lib/Group.js              |  233 --
 sdks/html5-javascript/lib/Module.js             |   34 +
 sdks/html5-javascript/lib/Usergrid.js           |  933 ++++----
 sdks/html5-javascript/lib/modules/Asset.js      |  149 ++
 sdks/html5-javascript/lib/modules/Client.js     |  860 ++++++++
 sdks/html5-javascript/lib/modules/Collection.js |  459 ++++
 sdks/html5-javascript/lib/modules/Counter.js    |  186 ++
 sdks/html5-javascript/lib/modules/Entity.js     |  684 ++++++
 sdks/html5-javascript/lib/modules/Error.js      |  125 ++
 sdks/html5-javascript/lib/modules/Folder.js     |  167 ++
 sdks/html5-javascript/lib/modules/Group.js      |  233 ++
 sdks/html5-javascript/lib/modules/util/Ajax.js  |   74 +
 sdks/html5-javascript/lib/modules/util/Event.js |   33 +
 .../lib/modules/util/KeyStore.js                |  199 ++
 .../html5-javascript/lib/modules/util/Logger.js |   68 +
 .../lib/modules/util/Promise.js                 |   83 +
 .../lib/modules/util/Storable.js                |   88 +
 sdks/html5-javascript/tests/mocha/test.js       |   13 +-
 sdks/html5-javascript/usergrid.js               | 2026 +++++++++---------
 sdks/html5-javascript/usergrid.min.js           |    6 +-
 29 files changed, 4969 insertions(+), 4349 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9dfc5628/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index e733658..535c19d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -15,3 +15,5 @@ Icon
 /portal/performance/
 
 /portal/node_modules/
+#Webstorm artifacts
+.idea/

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9dfc5628/sdks/html5-javascript/Gruntfile.js
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/Gruntfile.js b/sdks/html5-javascript/Gruntfile.js
index 0401e24..58d5a2a 100644
--- a/sdks/html5-javascript/Gruntfile.js
+++ b/sdks/html5-javascript/Gruntfile.js
@@ -1,83 +1,98 @@
 module.exports = function(grunt) {
-  var files = ['lib/Usergrid.js', 'lib/Client.js', 'lib/Entity.js', 'lib/Collection.js', 'lib/Group.js', 'lib/Counter.js', 'lib/Folder.js', 'lib/Asset.js', 'lib/Error.js'];
-  var tests = [ 'tests/mocha/index.html','tests/mocha/test_*.html' ];
-   // Project configuration.
-  grunt.initConfig({
-    //pkg: grunt.file.readJSON('package.json'),
-    meta: {
-      package: grunt.file.readJSON('package.json'),
-    },
-    clean: ['usergrid.js', 'usergrid.min.js'],
-    uglify: {
-      build: {
-        options: {
-          banner: '/*! <%= meta.package.name %>@<%= meta.package.version %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
-            mangle: false,
-            compress: false,
-            beautify: true,
-            preserveComments: "all"
+	var files = [
+        "lib/modules/util/Event.js",
+        "lib/modules/util/Logger.js",
+        "lib/modules/util/Promise.js",
+        "lib/modules/util/Ajax.js",
+        "lib/modules/util/Storable.js",
+//        "lib/modules/util/KeyStore.js",
+        "lib/Usergrid.js",
+//		"lib/modules/Client.js",
+		"lib/modules/Entity.js",
+		"lib/modules/Collection.js",
+		"lib/modules/Group.js",
+		"lib/modules/Counter.js",
+		"lib/modules/Folder.js",
+		"lib/modules/Asset.js",
+		"lib/modules/Error.js"
+	];
+	var tests = ["tests/mocha/index.html", "tests/mocha/test_*.html"];
+	// Project configuration.
+	grunt.initConfig({
+        //pkg: grunt.file.readJSON('package.json'),
+        "meta": {
+            "package": grunt.file.readJSON("package.json")
         },
-        files: {
-          'usergrid.js': files
-        }
-      },
-      buildmin: {
-        options: {
-          banner: '/*! <%= meta.package.name %>@<%= meta.package.version %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
-            mangle: false,
-            compress: true,
-            beautify: false,
-            preserveComments: "some"
+        "clean": ["usergrid.js", "usergrid.min.js"],
+        "uglify": {
+            "unminified": {
+                "options": {
+                    "banner": "/*! <%= meta.package.name %>@<%= meta.package.version %> <%= grunt.template.today('yyyy-mm-dd') %> */\n",
+                    "mangle": false,
+                    "compress": false,
+                    "beautify": true,
+                    "preserveComments": "all"
+                },
+                "files": {
+                    "usergrid.js": files
+                }
+            },
+            "minified": {
+                "options": {
+                    "banner": "/*! <%= meta.package.name %>@<%= meta.package.version %> <%= grunt.template.today('yyyy-mm-dd') %> */\n",
+                    "mangle": false,
+                    "compress": true,
+                    "beautify": false,
+                    "preserveComments": "some"
+                },
+                "files": {
+                    "usergrid.min.js": files
+                }
+            }
         },
-        files: {
-          'usergrid.min.js': files
-        }
-      }
-    },
-    connect: {
-      server: {
-        options: {
-          port: 3000,
-          base: '.'
-        }
-      },
-      test: {
-        options: {
-          port: 8000,
-          base: '.'
+        "connect": {
+            "server": {
+                "options": {
+                    "port": 3000,
+                    "base": "."
+                }
+            },
+            "test": {
+                "options": {
+                    "port": 8000,
+                    "base": "."
+                }
+            }
+        },
+        "watch": {
+            "files": [files, 'Gruntfile.js'],
+            "tasks": ["default"]
+        },
+        "blanket_mocha": {
+            "all": tests,
+            //urls: [ 'http://localhost:8000/tests/mocha/index.html' ],
+            "options": {
+                "dest": "report/coverage.html",
+                "reporter": "Spec",
+                "threshold": 70
+            }
         }
-      }
-    },
-    watch : {
-      files : files,
-      tasks : ['default']
-    },
-    blanket_mocha: {
-      all: tests,
-      //urls: [ 'http://localhost:8000/tests/mocha/index.html' ],
-      options: {
-          dest: 'report/coverage.html',
-          reporter: 'Spec',
-          threshold: 70
-      }
-    },
-  });
-  grunt.loadNpmTasks('grunt-contrib-clean');
-  grunt.loadNpmTasks('grunt-contrib-uglify');
-  grunt.loadNpmTasks('grunt-contrib-watch'); 
-  grunt.loadNpmTasks('grunt-contrib-connect');
-  grunt.loadNpmTasks('grunt-blanket-mocha');
-grunt.registerTask('default', [
-    'clean',
-    'uglify'
-  ]);
-  grunt.registerTask('dev', [
-  	'connect:server',
-    'watch'
-  ]);
-  grunt.registerTask('test', [
-    'connect:test',
-    'blanket_mocha',
-  ]);
+    });
+	grunt.loadNpmTasks("grunt-contrib-clean");
+	grunt.loadNpmTasks("grunt-contrib-uglify");
+	grunt.loadNpmTasks("grunt-contrib-watch");
+	grunt.loadNpmTasks("grunt-contrib-connect");
+	grunt.loadNpmTasks("grunt-blanket-mocha");
+	grunt.registerTask("default", [
+		"clean",
+		"uglify"
+	]);
+	grunt.registerTask("dev", [
+		"connect:server",
+		"watch"
+	]);
+	grunt.registerTask("test", [
+		"connect:test",
+		"blanket_mocha",
+	]);
 };
-

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9dfc5628/sdks/html5-javascript/lib/Asset.js
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/lib/Asset.js b/sdks/html5-javascript/lib/Asset.js
deleted file mode 100644
index 0eed742..0000000
--- a/sdks/html5-javascript/lib/Asset.js
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- *  XMLHttpRequest.prototype.sendAsBinary polyfill
- *  from: https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#sendAsBinary()
- *
- *  @method sendAsBinary
- *  @param {string} sData
- */
-if (!XMLHttpRequest.prototype.sendAsBinary) {
-	XMLHttpRequest.prototype.sendAsBinary = function(sData) {
-		var nBytes = sData.length,
-			ui8Data = new Uint8Array(nBytes);
-		for (var nIdx = 0; nIdx < nBytes; nIdx++) {
-			ui8Data[nIdx] = sData.charCodeAt(nIdx) & 0xff;
-		}
-		this.send(ui8Data);
-	};
-}
-
-
-/*
- *  A class to model a Usergrid asset.
- *
- *  @constructor
- *  @param {object} options {name:"photo.jpg", path:"/user/uploads", "content-type":"image/jpeg", owner:"F01DE600-0000-0000-0000-000000000000" }
- *  @returns {callback} callback(err, asset)
- */
-Usergrid.Asset = function(options, callback) {
-	var self = this,
-		messages = [];
-	self._client = options.client;
-	self._data = options.data || {};
-	self._data.type = "assets";
-	var missingData = ["name", "owner", "path"].some(function(required) { return !(required in self._data)});
-	if(missingData){
-		return doCallback(callback, [true, new Usergrid.Error("Invalid asset data: 'name', 'owner', and 'path' are required properties.")], self);
-	}
-	self.save(function(err, data) {
-		if (err) {
-			doCallback(callback, [true, new Usergrid.Error(data)], self);
-		} else {
-			if (data.entities.length){
-				self.set(data.entities[0]);
-			}
-			doCallback(callback, [false, self], self);
-		}
-	});
-};
-
-/*
- *  Inherit from Usergrid.Entity.
- */
-Usergrid.Asset.prototype = new Usergrid.Entity();
-
-/*
- *  Add an asset to a folder.
- *
- *  @method connect
- *  @public
- *  @param {object} options {folder:"F01DE600-0000-0000-0000-000000000000"}
- *  @returns {callback} callback(err, asset)
- */
-
-Usergrid.Asset.prototype.addToFolder = function(options, callback) {
-	var self = this,
-		error = null;
-	if (('folder' in options) && isUUID(options.folder)) {
-		//we got a valid UUID
-		var folder = Usergrid.Folder({
-			uuid: options.folder
-		}, function(err, folder) {
-			if (err) {
-				return callback.call(self, err, folder);
-			}
-			var endpoint = ["folders", folder.get("uuid"), "assets", self.get("uuid")].join('/');
-			var options = {
-				method: 'POST',
-				endpoint: endpoint
-			};
-			this._client.request(options, callback);
-		});
-	} else {
-		doCallback(callback, [true, new Usergrid.Error('folder not specified')], self);
-	}
-};
-
-/*
- *  Upload Asset data
- *
- *  @method upload
- *  @public
- *  @param {object} data Can be a javascript Blob or File object
- *  @returns {callback} callback(err, asset)
- */
-Usergrid.Asset.prototype.upload = function(data, callback) {
-	if (!(window.File && window.FileReader && window.FileList && window.Blob)) {
-		return doCallback(callback, [true, new Usergrid.Error('The File APIs are not fully supported by your browser.')], self);
-	}
-	var self = this;
-	var endpoint = [this._client.URI, this._client.orgName, this._client.appName, "assets", self.get("uuid"), 'data'].join('/'); //self._client.buildAssetURL(self.get("uuid"));
-
-	var xhr = new XMLHttpRequest();
-	xhr.open("POST", endpoint, true);
-	xhr.onerror = function(err) {
-		//callback(true, err);
-		doCallback(callback, [true, new Usergrid.Error('The File APIs are not fully supported by your browser.')], self)
-	};
-	xhr.onload = function(ev) {
-		if (xhr.status >= 300) {
-			doCallback(callback, [true, new Usergrid.Error(JSON.parse(xhr.responseText))], self)
-		} else {
-			doCallback(callback, [null, self], self)
-		}
-	};
-	var fr = new FileReader();
-	fr.onload = function() {
-		var binary = fr.result;
-		xhr.overrideMimeType('application/octet-stream');
-		setTimeout(function() {
-			xhr.sendAsBinary(binary);
-		}, 1000);
-	};
-	fr.readAsBinaryString(data);
-}
-
-/*
- *  Download Asset data
- *
- *  @method download
- *  @public
- *  @returns {callback} callback(err, blob) blob is a javascript Blob object.
- */
-Usergrid.Asset.prototype.download = function(callback) {
-	var self = this;
-	var endpoint = [this._client.URI, this._client.orgName, this._client.appName, "assets", self.get("uuid"), 'data'].join('/');
-	var xhr = new XMLHttpRequest();
-	xhr.open("GET", endpoint, true);
-	xhr.responseType = "blob";
-	xhr.onload = function(ev) {
-		var blob = xhr.response;
-		//callback(null, blob);
-		doCallback(callback, [false, blob], self)
-	};
-	xhr.onerror = function(err) {
-		callback(true, err);
-		doCallback(callback, [true, new Usergrid.Error(err)], self)
-	};
-
-	xhr.send();
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9dfc5628/sdks/html5-javascript/lib/Client.js
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/lib/Client.js b/sdks/html5-javascript/lib/Client.js
deleted file mode 100644
index 7b5a425..0000000
--- a/sdks/html5-javascript/lib/Client.js
+++ /dev/null
@@ -1,843 +0,0 @@
-
-Usergrid.Client = function(options) {
-  //usergrid enpoint
-  this.URI = options.URI || 'https://api.usergrid.com';
-
-  //Find your Orgname and Appname in the Admin portal (http://apigee.com/usergrid)
-  if (options.orgName) {
-    this.set('orgName', options.orgName);
-  }
-  if (options.appName) {
-    this.set('appName', options.appName);
-  }
-
-  //other options
-  this.buildCurl = options.buildCurl || false;
-  this.logging = options.logging || false;
-
-  //timeout and callbacks
-  this._callTimeout =  options.callTimeout || 30000; //default to 30 seconds
-  this._callTimeoutCallback =  options.callTimeoutCallback || null;
-  this.logoutCallback =  options.logoutCallback || null;
-};
-
-/*
- *  Main function for making requests to the API.  Can be called directly.
- *
- *  options object:
- *  `method` - http method (GET, POST, PUT, or DELETE), defaults to GET
- *  `qs` - object containing querystring values to be appended to the uri
- *  `body` - object containing entity body for POST and PUT requests
- *  `endpoint` - API endpoint, for example 'users/fred'
- *  `mQuery` - boolean, set to true if running management query, defaults to false
- *
- *  @method request
- *  @public
- *  @params {object} options
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- */
-Usergrid.Client.prototype.request = function (options, callback) {
-  var self = this;
-  var method = options.method || 'GET';
-  var endpoint = options.endpoint;
-  var body = options.body || {};
-  var qs = options.qs || {};
-  var mQuery = options.mQuery || false; //is this a query to the management endpoint?
-  var orgName = this.get('orgName');
-  var appName = this.get('appName');
-  var uri;
-  if(!mQuery && !orgName && !appName){
-    if (typeof(this.logoutCallback) === 'function') {
-      return this.logoutCallback(true, 'no_org_or_app_name_specified');
-    }
-  }
-  if (mQuery) {
-    uri = this.URI + '/' + endpoint;
-  } else {
-    uri = this.URI + '/' + orgName + '/' + appName + '/' + endpoint;
-  }
-
-  if (self.getToken()) {
-    qs.access_token = self.getToken();
-    /* //could also use headers for the token
-     xhr.setRequestHeader("Authorization", "Bearer " + self.getToken());
-     xhr.withCredentials = true;
-     */
-  }
-
-  //append params to the path
-  var encoded_params = encodeParams(qs);
-  if (encoded_params) {
-    uri += "?" + encoded_params;
-  }
-
-  //stringify the body object
-  body = JSON.stringify(body);
-
-  //so far so good, so run the query
-  var xhr = new XMLHttpRequest();
-  xhr.open(method, uri, true);
-  //add content type = json if there is a json payload
-  if (body) {
-    xhr.setRequestHeader("Content-Type", "application/json");
-    xhr.setRequestHeader("Accept", "application/json");
-  }
-
-  // Handle response.
-  xhr.onerror = function(response) {
-    self._end = new Date().getTime();
-    if (self.logging) {
-      console.log('success (time: ' + self.calcTimeDiff() + '): ' + method + ' ' + uri);
-    }
-    if (self.logging) {
-      console.log('Error: API call failed at the network level.');
-    }
-    //network error
-    clearTimeout(timeout);
-    var err = true;
-    if (typeof(callback) === 'function') {
-      callback(err, response);
-    }
-  };
-
-  xhr.onload = function(response) {
-    //call timing, get time, then log the call
-    self._end = new Date().getTime();
-    if (self.logging) {
-      console.log('success (time: ' + self.calcTimeDiff() + '): ' + method + ' ' + uri);
-    }
-    //call completed
-    clearTimeout(timeout);
-    //decode the response
-    try{
-      response = JSON.parse(xhr.responseText);
-    }catch (e){
-      response = {error:'unhandled_error',error_description:xhr.responseText};
-      xhr.status = xhr.status === 200 ? 400 : xhr.status;
-      console.error(e);
-    }
-    if (xhr.status != 200)   {
-      //there was an api error
-      var error = response.error;
-      var error_description = response.error_description;
-      if (self.logging) {
-        console.log('Error (' + xhr.status + ')(' + error + '): ' + error_description);
-      }
-      if ( (error == "auth_expired_session_token") ||
-        (error == "auth_missing_credentials")   ||
-        (error == "auth_unverified_oath")       ||
-        (error == "expired_token")              ||
-        (error == "unauthorized")               ||
-        (error == "auth_invalid")) {
-        //these errors mean the user is not authorized for whatever reason. If a logout function is defined, call it
-        //if the user has specified a logout callback:
-        if (typeof(self.logoutCallback) === 'function') {
-          return self.logoutCallback(true, response);
-        }
-      }
-      if (typeof(callback) === 'function') {
-        callback(true, response);
-      }
-    } else {
-      if (typeof(callback) === 'function') {
-        callback(false, response);
-      }
-    }
-  };
-
-  var timeout = setTimeout(
-    function() {
-      xhr.abort();
-      if (self._callTimeoutCallback === 'function') {
-        self._callTimeoutCallback('API CALL TIMEOUT');
-      } else {
-        self.callback('API CALL TIMEOUT');
-      }
-    },
-    self._callTimeout); //set for 30 seconds
-
-  if (this.logging) {
-    console.log('calling: ' + method + ' ' + uri);
-  }
-  if (this.buildCurl) {
-    var curlOptions = {
-      uri:uri,
-      body:body,
-      method:method
-    }
-    this.buildCurlCall(curlOptions);
-  }
-  this._start = new Date().getTime();
-  xhr.send(body);
-}
-
-/*
- *  function for building asset urls
- *
- *  @method buildAssetURL
- *  @public
- *  @params {string} uuid
- *  @return {string} assetURL
- */
-Usergrid.Client.prototype.buildAssetURL = function(uuid) {
-  var self = this;
-  var qs = {};
-  var assetURL = this.URI + '/' + this.orgName + '/' + this.appName + '/assets/' + uuid + '/data';
-
-  if (self.getToken()) {
-    qs.access_token = self.getToken();
-  }
-
-  //append params to the path
-  var encoded_params = encodeParams(qs);
-  if (encoded_params) {
-    assetURL += "?" + encoded_params;
-  }
-
-  return assetURL;
-};
-
-/*
- *  Main function for creating new groups. Call this directly.
- *
- *  @method createGroup
- *  @public
- *  @params {string} path
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- */
-Usergrid.Client.prototype.createGroup = function(options, callback) {
-  var getOnExist = options.getOnExist || false;
-
-  options = {
-    path: options.path,
-    client: this,
-    data: options
-  };
-
-  var group = new Usergrid.Group(options);
-  group.fetch(function(err, data){
-    var okToSave = (err && 'service_resource_not_found' === data.error || 'no_name_specified' === data.error || 'null_pointer' === data.error) || (!err && getOnExist);
-    if (okToSave) {
-      group.save(function(err, data){
-        if (typeof(callback) === 'function') {
-          callback(err, group);
-        }
-      });
-    } else {
-      if(typeof(callback) === 'function') {
-        callback(err, group);
-      }
-    }
-  });
-};
-
-/*
- *  Main function for creating new entities - should be called directly.
- *
- *  options object: options {data:{'type':'collection_type', 'key':'value'}, uuid:uuid}}
- *
- *  @method createEntity
- *  @public
- *  @params {object} options
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- */
-Usergrid.Client.prototype.createEntity = function (options, callback) {
-  // todo: replace the check for new / save on not found code with simple save
-  // when users PUT on no user fix is in place.
-  var getOnExist = options.getOnExist || false; //if true, will return entity if one already exists
-  delete options.getOnExist;//so it doesn't become part of our data model
-  var options = {
-    client:this,
-    data:options
-  };
-  var entity = new Usergrid.Entity(options);
-  entity.fetch(function(err, data) {
-    //if the fetch doesn't find what we are looking for, or there is no error, do a save
-    var okToSave = (err && 'service_resource_not_found' === data.error || 'no_name_specified' === data.error || 'null_pointer' === data.error) || (!err && getOnExist);
-    if(okToSave) {
-      entity.set(options.data); //add the data again just in case
-      entity.save(function(err, data) {
-        if (typeof(callback) === 'function') {
-          callback(err, entity, data);
-        }
-      });
-    } else {
-      if (typeof(callback) === 'function') {
-        callback(err, entity, data);
-      }
-    }
-  });
-
-};
-
-/*
- *  Main function for getting existing entities - should be called directly.
- *
- *  You must supply a uuid or (username or name). Username only applies to users.
- *  Name applies to all custom entities
- *
- *  options object: options {data:{'type':'collection_type', 'name':'value', 'username':'value'}, uuid:uuid}}
- *
- *  @method createEntity
- *  @public
- *  @params {object} options
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- */
-Usergrid.Client.prototype.getEntity = function (options, callback) {
-  var options = {
-    client:this,
-    data:options
-  }
-  var entity = new Usergrid.Entity(options);
-  entity.fetch(function(err, data) {
-    if (typeof(callback) === 'function') {
-      callback(err, entity, data);
-    }
-  });
-};
-
-/*
- *  Main function for restoring an entity from serialized data.
- *
- *  serializedObject should have come from entityObject.serialize();
- *
- *  @method restoreEntity
- *  @public
- *  @param {string} serializedObject
- *  @return {object} Entity Object
- */
-Usergrid.Client.prototype.restoreEntity = function (serializedObject) {
-  var data = JSON.parse(serializedObject);
-  var options = {
-    client:this,
-    data:data
-  }
-  var entity = new Usergrid.Entity(options);
-  return entity;
-};
-
-/*
- *  Main function for creating new collections - should be called directly.
- *
- *  options object: options {client:client, type: type, qs:qs}
- *
- *  @method createCollection
- *  @public
- *  @params {object} options
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- */
-Usergrid.Client.prototype.createCollection = function (options, callback) {
-  options.client = this;
-  var collection = new Usergrid.Collection(options, function(err, data) {
-    if (typeof(callback) === 'function') {
-      callback(err, collection, data);
-    }
-  });
-};
-
-/*
- *  Main function for restoring a collection from serialized data.
- *
- *  serializedObject should have come from collectionObject.serialize();
- *
- *  @method restoreCollection
- *  @public
- *  @param {string} serializedObject
- *  @return {object} Collection Object
- */
-Usergrid.Client.prototype.restoreCollection = function (serializedObject) {
-  var data = JSON.parse(serializedObject);
-  data.client = this;
-  var collection = new Usergrid.Collection(data);
-  return collection;
-};
-
-/*
- *  Main function for retrieving a user's activity feed.
- *
- *  @method getFeedForUser
- *  @public
- *  @params {string} username
- *  @param {function} callback
- *  @return {callback} callback(err, data, activities)
- */
-Usergrid.Client.prototype.getFeedForUser = function(username, callback) {
-  var options = {
-    method: "GET",
-    endpoint: "users/"+username+"/feed"
-  };
-
-  this.request(options, function(err, data){
-    if(typeof(callback) === "function") {
-      if(err) {
-        callback(err);
-      } else {
-        callback(err, data, data.entities);
-      }
-    }
-  });
-};
-
-/*
- *  Function for creating new activities for the current user - should be called directly.
- *
- *  //user can be any of the following: "me", a uuid, a username
- *  Note: the "me" alias will reference the currently logged in user (e.g. 'users/me/activties')
- *
- *  //build a json object that looks like this:
- *  var options =
- *  {
- *    "actor" : {
- *      "displayName" :"myusername",
- *      "uuid" : "myuserid",
- *      "username" : "myusername",
- *      "email" : "myemail",
- *      "picture": "http://path/to/picture",
- *      "image" : {
- *          "duration" : 0,
- *          "height" : 80,
- *          "url" : "http://www.gravatar.com/avatar/",
- *          "width" : 80
- *      },
- *    },
- *    "verb" : "post",
- *    "content" : "My cool message",
- *    "lat" : 48.856614,
- *    "lon" : 2.352222
- *  }
- *
- *  @method createEntity
- *  @public
- *  @params {string} user // "me", a uuid, or a username
- *  @params {object} options
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- */
-Usergrid.Client.prototype.createUserActivity = function (user, options, callback) {
-  options.type = 'users/'+user+'/activities';
-  var options = {
-    client:this,
-    data:options
-  }
-  var entity = new Usergrid.Entity(options);
-  entity.save(function(err, data) {
-    if (typeof(callback) === 'function') {
-      callback(err, entity);
-    }
-  });
-};
-
-/*
- *  Function for creating user activities with an associated user entity.
- *
- *  user object:
- *  The user object passed into this function is an instance of Usergrid.Entity.
- *
- *  @method createUserActivityWithEntity
- *  @public
- *  @params {object} user
- *  @params {string} content
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- */
-Usergrid.Client.prototype.createUserActivityWithEntity = function(user, content, callback) {
-  var username = user.get("username");
-  var options = {
-    actor: {
-      "displayName":username,
-      "uuid":user.get("uuid"),
-      "username":username,
-      "email":user.get("email"),
-      "picture":user.get("picture"),
-      "image": {
-        "duration":0,
-        "height":80,
-        "url":user.get("picture"),
-        "width":80
-      },
-    },
-    "verb":"post",
-    "content":content
-  };
-
-  this.createUserActivity(username, options, callback);
-
-};
-
-/*
- *  A private method to get call timing of last call
- */
-Usergrid.Client.prototype.calcTimeDiff = function () {
-  var seconds = 0;
-  var time = this._end - this._start;
-  try {
-    seconds = ((time/10) / 60).toFixed(2);
-  } catch(e) {
-    return 0;
-  }
-  return seconds;
-};
-
-/*
- *  A public method to store the OAuth token for later use - uses localstorage if available
- *
- *  @method setToken
- *  @public
- *  @params {string} token
- *  @return none
- */
-Usergrid.Client.prototype.setToken = function (token) {
-  this.set('token', token);
-};
-
-/*
- *  A public method to get the OAuth token
- *
- *  @method getToken
- *  @public
- *  @return {string} token
- */
-Usergrid.Client.prototype.getToken = function () {
-  return this.get('token');
-};
-
-Usergrid.Client.prototype.setObject = function(key, value) {
-  if (value) {
-    value = JSON.stringify(value);
-  }
-  this.set(key, value);
-};
-
-Usergrid.Client.prototype.set = function (key, value) {
-  var keyStore =  'apigee_' + key;
-  this[key] = value;
-  if(typeof(Storage)!=="undefined"){
-    if (value) {
-      localStorage.setItem(keyStore, value);
-    } else {
-      localStorage.removeItem(keyStore);
-    }
-  }
-};
-
-Usergrid.Client.prototype.getObject = function(key) {
-  return JSON.parse(this.get(key));
-};
-
-Usergrid.Client.prototype.get = function (key) {
-  var keyStore = 'apigee_' + key;
-  var value=null;
-  if (this[key]) {
-    value= this[key];
-  } else if(typeof(Storage)!=="undefined") {
-    value= localStorage.getItem(keyStore);
-  }
-  return value;
-};
-
-/*
- * A public facing helper method for signing up users
- *
- * @method signup
- * @public
- * @params {string} username
- * @params {string} password
- * @params {string} email
- * @params {string} name
- * @param {function} callback
- * @return {callback} callback(err, data)
- */
-Usergrid.Client.prototype.signup = function(username, password, email, name, callback) {
-  var self = this;
-  var options = {
-    type:"users",
-    username:username,
-    password:password,
-    email:email,
-    name:name
-  };
-
-  this.createEntity(options, callback);
-};
-
-/*
- *
- *  A public method to log in an app user - stores the token for later use
- *
- *  @method login
- *  @public
- *  @params {string} username
- *  @params {string} password
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- */
-Usergrid.Client.prototype.login = function (username, password, callback) {
-  var self = this;
-  var options = {
-    method:'POST',
-    endpoint:'token',
-    body:{
-      username: username,
-      password: password,
-      grant_type: 'password'
-    }
-  };
-  this.request(options, function(err, data) {
-    var user = {};
-    if (err && self.logging) {
-      console.log('error trying to log user in');
-    } else {
-      var options = {
-        client:self,
-        data:data.user
-      };
-      user = new Usergrid.Entity(options);
-      self.setToken(data.access_token);
-    }
-    if (typeof(callback) === 'function') {
-      callback(err, data, user);
-    }
-  });
-};
-
-
-Usergrid.Client.prototype.reAuthenticateLite = function (callback) {
-  var self = this;
-  var options = {
-    method:'GET',
-    endpoint:'management/me',
-    mQuery:true
-  };
-  this.request(options, function(err, response) {
-    if (err && self.logging) {
-      console.log('error trying to re-authenticate user');
-    } else {
-
-      //save the re-authed token and current email/username
-      self.setToken(response.access_token);
-
-    }
-    if (typeof(callback) === 'function') {
-      callback(err);
-    }
-  });
-};
-
-
-Usergrid.Client.prototype.reAuthenticate = function (email, callback) {
-  var self = this;
-  var options = {
-    method:'GET',
-    endpoint:'management/users/'+email,
-    mQuery:true
-  };
-  this.request(options, function(err, response) {
-    var organizations = {};
-    var applications = {};
-    var user = {};
-    var data;
-    if (err && self.logging) {
-      console.log('error trying to full authenticate user');
-    } else {
-      data = response.data;
-      self.setToken(data.token);
-      self.set('email', data.email);
-
-      //delete next block and corresponding function when iframes are refactored
-      localStorage.setItem('accessToken', data.token);
-      localStorage.setItem('userUUID', data.uuid);
-      localStorage.setItem('userEmail', data.email);
-      //end delete block
-
-
-      var userData = {
-        "username" : data.username,
-        "email" : data.email,
-        "name" : data.name,
-        "uuid" : data.uuid
-      };
-      var options = {
-        client:self,
-        data:userData
-      };
-      user = new Usergrid.Entity(options);
-
-      organizations = data.organizations;
-      var org = '';
-      try {
-        //if we have an org stored, then use that one. Otherwise, use the first one.
-        var existingOrg = self.get('orgName');
-        org = (organizations[existingOrg])?organizations[existingOrg]:organizations[Object.keys(organizations)[0]];
-        self.set('orgName', org.name);
-      } catch(e) {
-        err = true;
-        if (self.logging) {
-          console.log('error selecting org');
-        }
-      } //should always be an org
-
-      applications = self.parseApplicationsArray(org);
-      self.selectFirstApp(applications);
-
-      self.setObject('organizations', organizations);
-      self.setObject('applications', applications);
-
-    }
-    if (typeof(callback) === 'function') {
-      callback(err, data, user, organizations, applications);
-    }
-  });
-};
-
-/*
- *  A public method to log in an app user with facebook - stores the token for later use
- *
- *  @method loginFacebook
- *  @public
- *  @params {string} username
- *  @params {string} password
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- */
-Usergrid.Client.prototype.loginFacebook = function (facebookToken, callback) {
-  var self = this;
-  var options = {
-    method:'GET',
-    endpoint:'auth/facebook',
-    qs:{
-      fb_access_token: facebookToken
-    }
-  };
-  this.request(options, function(err, data) {
-    var user = {};
-    if (err && self.logging) {
-      console.log('error trying to log user in');
-    } else {
-      var options = {
-        client: self,
-        data: data.user
-      }
-      user = new Usergrid.Entity(options);
-      self.setToken(data.access_token);
-    }
-    if (typeof(callback) === 'function') {
-      callback(err, data, user);
-    }
-  });
-};
-
-/*
- *  A public method to get the currently logged in user entity
- *
- *  @method getLoggedInUser
- *  @public
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- */
-Usergrid.Client.prototype.getLoggedInUser = function (callback) {
-  if (!this.getToken()) {
-    callback(true, null, null);
-  } else {
-    var self = this;
-    var options = {
-      method:'GET',
-      endpoint:'users/me'
-    };
-    this.request(options, function(err, data) {
-      if (err) {
-        if (self.logging) {
-          console.log('error trying to log user in');
-        }
-        if (typeof(callback) === 'function') {
-          callback(err, data, null);
-        }
-      } else {
-        var options = {
-          client:self,
-          data:data.entities[0]
-        };
-        var user = new Usergrid.Entity(options);
-        if (typeof(callback) === 'function') {
-          callback(err, data, user);
-        }
-      }
-    });
-  }
-};
-
-/*
- *  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
- *
- *  @method isLoggedIn
- *  @public
- *  @return {boolean} Returns true the user is logged in (has token and uuid), false if not
- */
-Usergrid.Client.prototype.isLoggedIn = function () {
-  return "undefined" !== typeof this.getToken();
-};
-
-/*
- *  A public method to log out an app user - clears all user fields from client
- *
- *  @method logout
- *  @public
- *  @return none
- */
-Usergrid.Client.prototype.logout = function () {
-  this.setToken(null);
-};
-
-/*
- *  A private method to build the curl call to display on the command line
- *
- *  @method buildCurlCall
- *  @private
- *  @param {object} options
- *  @return {string} curl
- */
-Usergrid.Client.prototype.buildCurlCall = function (options) {
-  var curl = ['curl'];
-  var method = (options.method || 'GET').toUpperCase();
-  var body = options.body;
-  var uri = options.uri;
-
-  //curl - add the method to the command (no need to add anything for GET)
-  curl.push('-X');
-  curl.push((['POST','PUT','DELETE'].indexOf(method)>=0)?method:'GET');
-
-  //curl - append the path
-  curl.push(uri);
-
-  if("object"===typeof body && Object.keys(body).length>0 && ['POST','PUT'].indexOf(method)!==-1){
-    curl.push('-d');
-    curl.push("'"+JSON.stringify(body)+"'");
-  }
-  curl=curl.join(' ');
-  //log the curl command to the console
-  console.log(curl);
-
-  return curl;
-}
-
-Usergrid.Client.prototype.getDisplayImage = function (email, picture, size) {
-    size = size || 50;
-    var image='https://apigee.com/usergrid/images/user_profile.png';
-  try {
-    if (picture) {
-      image= picture;
-    }else if (email.length) {
-      image= 'https://secure.gravatar.com/avatar/' + MD5(email) + '?s=' + size + encodeURI("&d=https://apigee.com/usergrid/images/user_profile.png");
-    }
-  } catch(e) {
-    //TODO do something with this error?
-  }finally{
-    return image;
-  }
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9dfc5628/sdks/html5-javascript/lib/Collection.js
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/lib/Collection.js b/sdks/html5-javascript/lib/Collection.js
deleted file mode 100644
index 5173fc9..0000000
--- a/sdks/html5-javascript/lib/Collection.js
+++ /dev/null
@@ -1,459 +0,0 @@
-
-/*
- *  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
- *
- *  @constructor
- *  @param {string} options - configuration object
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- */
-Usergrid.Collection = function(options, callback) {
-
-  if (options) {
-    this._client = options.client;
-    this._type = options.type;
-    this.qs = options.qs || {};
-
-    //iteration
-    this._list = options.list || [];
-    this._iterator = options.iterator || -1; //first thing we do is increment, so set to -1
-
-    //paging
-    this._previous = options.previous || [];
-    this._next = options.next || null;
-    this._cursor = options.cursor || null;
-
-    //restore entities if available
-    if (options.list) {
-      var count = options.list.length;
-      for(var i=0;i<count;i++){
-        //make new entity with
-        var entity = this._client.restoreEntity(options.list[i]);
-        this._list[i] = entity;
-      }
-    }
-  }
-  if (callback) {
-    //populate the collection
-    this.fetch(callback);
-  }
-
-};
-
-
-/*
- *  method to determine whether or not the passed variable is a Usergrid Collection
- *
- *  @method isCollection
- *  @public
- *  @params {any} obj - any variable
- *  @return {boolean} Returns true or false
- */
-Usergrid.isCollection = function(obj){
-  return (obj && obj instanceof Usergrid.Collection);
-}
-
-
-/*
- *  gets the data from the collection object for serialization
- *
- *  @method serialize
- *  @return {object} data
- */
-Usergrid.Collection.prototype.serialize = function () {
-
-  //pull out the state from this object and return it
-  var data = {}
-  data.type = this._type;
-  data.qs = this.qs;
-  data.iterator = this._iterator;
-  data.previous = this._previous;
-  data.next = this._next;
-  data.cursor = this._cursor;
-
-  this.resetEntityPointer();
-  var i=0;
-  data.list = [];
-  while(this.hasNextEntity()) {
-    var entity = this.getNextEntity();
-    data.list[i] = entity.serialize();
-    i++;
-  }
-
-  data = JSON.stringify(data);
-  return data;
-};
-
-Usergrid.Collection.prototype.addCollection = function (collectionName, options, callback) {
-  self = this;
-  options.client = this._client;
-  var collection = new Usergrid.Collection(options, function(err, data) {
-    if (typeof(callback) === 'function') {
-
-      collection.resetEntityPointer();
-      while(collection.hasNextEntity()) {
-        var user = collection.getNextEntity();
-        var email = user.get('email');
-        var image = self._client.getDisplayImage(user.get('email'), user.get('picture'));
-        user._portal_image_icon = image;
-      }
-
-      self[collectionName] = collection;
-      callback(err, collection);
-    }
-  });
-};
-
-/*
- *  Populates the collection from the server
- *
- *  @method fetch
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- */
-Usergrid.Collection.prototype.fetch = function (callback) {
-  var self = this;
-  var qs = this.qs;
-
-  //add in the cursor if one is available
-  if (this._cursor) {
-    qs.cursor = this._cursor;
-  } else {
-    delete qs.cursor;
-  }
-  var options = {
-    method:'GET',
-    endpoint:this._type,
-    qs:this.qs
-  };
-  this._client.request(options, function (err, data) {
-    if(err && self._client.logging) {
-      console.log('error getting collection');
-    } else {
-      //save the cursor if there is one
-      var cursor = data.cursor || null;
-      self.saveCursor(cursor);
-      if (data.entities) {
-        self.resetEntityPointer();
-        var count = data.entities.length;
-        //save entities locally
-        self._list = []; //clear the local list first
-        for (var i=0;i<count;i++) {
-          var uuid = data.entities[i].uuid;
-          if (uuid) {
-            var entityData = data.entities[i] || {};
-            self._baseType = data.entities[i].type; //store the base type in the collection
-            entityData.type = self._type;//make sure entities are same type (have same path) as parent collection.
-            var entityOptions = {
-              type:self._type,
-              client:self._client,
-              uuid:uuid,
-              data:entityData
-            };
-
-            var ent = new Usergrid.Entity(entityOptions);
-            ent._json = JSON.stringify(entityData, null, 2);
-            var ct = self._list.length;
-            self._list[ct] = ent;
-          }
-        }
-      }
-    }
-    if (typeof(callback) === 'function') {
-      callback(err, data);
-    }
-  });
-};
-
-/*
- *  Adds a new Entity to the collection (saves, then adds to the local object)
- *
- *  @method addNewEntity
- *  @param {object} entity
- *  @param {function} callback
- *  @return {callback} callback(err, data, entity)
- */
-Usergrid.Collection.prototype.addEntity = function (options, callback) {
-  var self = this;
-  options.type = this._type;
-
-  //create the new entity
-  this._client.createEntity(options, function (err, entity) {
-    if (!err) {
-      //then add the entity to the list
-      var count = self._list.length;
-      self._list[count] = entity;
-    }
-    if (typeof(callback) === 'function') {
-      callback(err, entity);
-    }
-  });
-};
-
-Usergrid.Collection.prototype.addExistingEntity = function (entity) {
-  //entity should already exist in the db, so just add it to the list
-  var count = this._list.length;
-  this._list[count] = entity;
-};
-
-/*
- *  Removes the Entity from the collection, then destroys the object on the server
- *
- *  @method destroyEntity
- *  @param {object} entity
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- */
-Usergrid.Collection.prototype.destroyEntity = function (entity, callback) {
-  var self = this;
-  entity.destroy(function(err, data) {
-    if (err) {
-      if (self._client.logging) {
-        console.log('could not destroy entity');
-      }
-      if (typeof(callback) === 'function') {
-        callback(err, data);
-      }
-    } else {
-      //destroy was good, so repopulate the collection
-      self.fetch(callback);
-    }
-  });
-  //remove entity from the local store
-  this.removeEntity(entity);
-};
-
-
-Usergrid.Collection.prototype.removeEntity = function (entity) {
-  var uuid = entity.get('uuid');
-  for (var key in this._list) {
-    var listItem = this._list[key];
-    if (listItem.get('uuid') === uuid) {
-      return this._list.splice(key, 1);
-    }
-  }
-  return false;
-};
-
-/*
- *  Looks up an Entity by UUID
- *
- *  @method getEntityByUUID
- *  @param {string} UUID
- *  @param {function} callback
- *  @return {callback} callback(err, data, entity)
- */
-Usergrid.Collection.prototype.getEntityByUUID = function (uuid, callback) {
-
-  for (var key in this._list) {
-    var listItem = this._list[key];
-    if (listItem.get('uuid') === uuid) {
-      return listItem;
-    }
-  }
-
-  //get the entity from the database
-  var options = {
-    data: {
-      type: this._type,
-      uuid:uuid
-    },
-    client: this._client
-  }
-  var entity = new Usergrid.Entity(options);
-  entity.fetch(callback);
-};
-
-/*
- *  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;
-  var hasNextElement = (next >=0 && next < this._list.length);
-  if(hasNextElement) {
-    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++;
-  var hasNextElement = (this._iterator >= 0 && this._iterator <= this._list.length);
-  if(hasNextElement) {
-    return this._list[this._iterator];
-  }
-  return false;
-};
-
-/*
- *  Entity iteration - Checks to see if there is a "previous"
- *  entity in the list.
- *
- *  @method hasPrevEntity
- *  @return {boolean} true if there is a previous entity, false if not
- */
-Usergrid.Collection.prototype.hasPrevEntity = function () {
-  var previous = this._iterator - 1;
-  var hasPreviousElement = (previous >=0 && previous < this._list.length);
-  if(hasPreviousElement) {
-    return true;
-  }
-  return false;
-};
-
-/*
- *  Entity iteration - Gets the "previous" entity in the list.
- *
- *  @method getPrevEntity
- *  @return {object} entity
- */
-Usergrid.Collection.prototype.getPrevEntity = function () {
-  this._iterator--;
-  var hasPreviousElement = (this._iterator >= 0 && this._iterator <= this._list.length);
-  if(hasPreviousElement) {
-    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;
-};
-
-/*
- * Method to save off the cursor just returned by the last API call
- *
- * @public
- * @method saveCursor
- * @return none
- */
-Usergrid.Collection.prototype.saveCursor = function(cursor) {
-  //if current cursor is different, grab it for next cursor
-  if (this._next !== cursor) {
-    this._next = cursor;
-  }
-};
-
-/*
- * Resets the paging pointer (back to original page)
- *
- * @public
- * @method resetPaging
- * @return none
- */
-Usergrid.Collection.prototype.resetPaging = function() {
-  this._previous = [];
-  this._next = null;
-  this._cursor = null;
-};
-
-/*
- *  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._next);
-};
-
-/*
- *  Paging - advances the cursor and gets the next
- *  page of data from the API.  Stores returned entities
- *  in the Entity list.
- *
- *  @method getNextPage
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- */
-Usergrid.Collection.prototype.getNextPage = function (callback) {
-  if (this.hasNextPage()) {
-    //set the cursor to the next page of data
-    this._previous.push(this._cursor);
-    this._cursor = this._next;
-    //empty the list
-    this._list = [];
-    this.fetch(callback);
-  }
-}
-
-/*
- *  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._previous.length > 0);
-};
-
-/*
- *  Paging - reverts the cursor and gets the previous
- *  page of data from the API.  Stores returned entities
- *  in the Entity list.
- *
- *  @method getPreviousPage
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- */
-Usergrid.Collection.prototype.getPreviousPage = function (callback) {
-  if (this.hasPreviousPage()) {
-    this._next=null; //clear out next so the comparison will find the next item
-    this._cursor = this._previous.pop();
-    //empty the list
-    this._list = [];
-    this.fetch(callback);
-  }
-};

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9dfc5628/sdks/html5-javascript/lib/Counter.js
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/lib/Counter.js b/sdks/html5-javascript/lib/Counter.js
deleted file mode 100644
index cb9c568..0000000
--- a/sdks/html5-javascript/lib/Counter.js
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- *  A class to model a Usergrid event.
- *
- *  @constructor
- *  @param {object} options {timestamp:0, category:'value', counters:{name : value}}
- *  @returns {callback} callback(err, event)
- */
-Usergrid.Counter = function(options, callback) {
-  var self=this;
-  this._client = options.client;
-  this._data = options.data || {};
-  this._data.category = options.category||"UNKNOWN";
-  this._data.timestamp = options.timestamp||0;
-  this._data.type = "events";
-  this._data.counters=options.counters||{};
-  if(typeof(callback) === 'function') {
-    callback.call(self, false, self);
-  }
-  //this.save(callback);
-};
-var COUNTER_RESOLUTIONS=[
-  'all', 'minute', 'five_minutes', 'half_hour',
-  'hour', 'six_day', 'day', 'week', 'month'
-];
-/*
- *  Inherit from Usergrid.Entity.
- *  Note: This only accounts for data on the group object itself.
- *  You need to use add and remove to manipulate group membership.
- */
-Usergrid.Counter.prototype = new Usergrid.Entity();
-
-/*
- * overrides Entity.prototype.fetch. Returns all data for counters
- * associated with the object as specified in the constructor
- *
- * @public
- * @method increment
- * @param {function} callback
- * @returns {callback} callback(err, event)
- */
-Usergrid.Counter.prototype.fetch=function(callback){
-  this.getData({}, callback);
-}
-/*
- * increments the counter for a specific event
- *
- * options object: {name: counter_name}
- *
- * @public
- * @method increment
- * @params {object} options
- * @param {function} callback
- * @returns {callback} callback(err, event)
- */
-Usergrid.Counter.prototype.increment=function(options, callback){
-  var self=this,
-    name=options.name,
-    value=options.value;
-  if(!name){
-    if(typeof(callback) === 'function') {
-      return callback.call(self, true, "'value' for increment, decrement must be a number");
-    }
-  }else if(isNaN(value)){
-    if(typeof(callback) === 'function') {
-      return callback.call(self, true, "'value' for increment, decrement must be a number");
-    }
-  }else{
-    self._data.counters[name]=(parseInt(value))||1;
-    return self.save(callback);
-  }
-};
-/*
- * decrements the counter for a specific event
- *
- * options object: {name: counter_name}
- *
- * @public
- * @method decrement
- * @params {object} options
- * @param {function} callback
- * @returns {callback} callback(err, event)
- */
-
-Usergrid.Counter.prototype.decrement=function(options, callback){
-  var self=this,
-    name=options.name,
-    value=options.value;
-  self.increment({name:name, value:-((parseInt(value))||1)}, callback);
-};
-/*
- * resets the counter for a specific event
- *
- * options object: {name: counter_name}
- *
- * @public
- * @method reset
- * @params {object} options
- * @param {function} callback
- * @returns {callback} callback(err, event)
- */
-
-Usergrid.Counter.prototype.reset=function(options, callback){
-  var self=this,
-    name=options.name;
-  self.increment({name:name, value:0}, callback);
-};
-
-/*
- * gets data for one or more counters over a given
- * time period at a specified resolution
- *
- * options object: {
- *                   counters: ['counter1', 'counter2', ...],
- *                   start: epoch timestamp or ISO date string,
- *                   end: epoch timestamp or ISO date string,
- *                   resolution: one of ('all', 'minute', 'five_minutes', 'half_hour', 'hour', 'six_day', 'day', 'week', or 'month')
- *                   }
- *
- * @public
- * @method getData
- * @params {object} options
- * @param {function} callback
- * @returns {callback} callback(err, event)
- */
-Usergrid.Counter.prototype.getData=function(options, callback){
-  var start_time, 
-      end_time,
-      start=options.start||0,
-      end=options.end||Date.now(),
-      resolution=(options.resolution||'all').toLowerCase(),
-      counters=options.counters||Object.keys(this._data.counters),
-      res=(resolution||'all').toLowerCase();
-  if(COUNTER_RESOLUTIONS.indexOf(res)===-1){
-    res='all';
-  }
-  if(start){
-    switch(typeof start){
-      case "undefined":
-        start_time=0;
-        break;
-      case "number":
-        start_time=start;
-        break;
-      case "string":
-        start_time=(isNaN(start))?Date.parse(start):parseInt(start);
-        break;
-      default:
-        start_time=Date.parse(start.toString());
-    }
-  }
-  if(end){
-    switch(typeof end){
-      case "undefined":
-        end_time=Date.now();
-        break;
-      case "number":
-        end_time=end;
-        break;
-      case "string":
-        end_time=(isNaN(end))?Date.parse(end):parseInt(end);
-        break;
-      default:
-        end_time=Date.parse(end.toString());
-    }
-  }
-  var self=this;
-  //https://api.usergrid.com/yourorgname/sandbox/counters?counter=test_counter
-  var params=Object.keys(counters).map(function(counter){
-      return ["counter", encodeURIComponent(counters[counter])].join('=');
-    });
-  params.push('resolution='+res)
-  params.push('start_time='+String(start_time))
-  params.push('end_time='+String(end_time))
-    
-  var endpoint="counters?"+params.join('&');
-  this._client.request({endpoint:endpoint}, function(err, data){
-    if(data.counters && data.counters.length){
-      data.counters.forEach(function(counter){
-        self._data.counters[counter.name]=counter.value||counter.values;
-      })
-    }
-    if(typeof(callback) === 'function') {
-      callback.call(self, err, data);
-    }
-  })
-};

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9dfc5628/sdks/html5-javascript/lib/Entity.js
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/lib/Entity.js b/sdks/html5-javascript/lib/Entity.js
deleted file mode 100644
index cb728be..0000000
--- a/sdks/html5-javascript/lib/Entity.js
+++ /dev/null
@@ -1,672 +0,0 @@
-/*
- *  A class to Model a Usergrid Entity.
- *  Set the type and uuid of entity in the 'data' json object
- *
- *  @constructor
- *  @param {object} options {client:client, data:{'type':'collection_type', uuid:'uuid', 'key':'value'}}
- */
-Usergrid.Entity = function(options) {
-  if (options) {
-    this._data = options.data || {};
-    this._client = options.client || {};
-  }
-};
-
-/*
- *  method to determine whether or not the passed variable is a Usergrid Entity
- *
- *  @method isEntity
- *  @public
- *  @params {any} obj - any variable
- *  @return {boolean} Returns true or false
- */
-Usergrid.Entity.isEntity = function(obj){
-  return (obj && obj instanceof Usergrid.Entity);
-}
-
-/*
- *  method to determine whether or not the passed variable is a Usergrid Entity
- *  That has been saved.
- *
- *  @method isPersistedEntity
- *  @public
- *  @params {any} obj - any variable
- *  @return {boolean} Returns true or false
- */
-Usergrid.Entity.isPersistedEntity = function(obj){
-  return (isEntity(obj) && isUUID(obj.get('uuid')));
-}
-
-/*
- *  returns a serialized version of the entity object
- *
- *  Note: use the client.restoreEntity() function to restore
- *
- *  @method serialize
- *  @return {string} data
- */
-Usergrid.Entity.prototype.serialize = function () {
-  return JSON.stringify(this._data);
-};
-
-/*
- *  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) {
-    return (field) ? this._data[field] : this._data;
-};
-
-/*
- *  adds a specific key value pair or object to the Entity's data
- *  is additive - will not overwrite existing values unless they
- *  are explicitly specified
- *
- *  @method set
- *  @param {string} key || {object}
- *  @param {string} value
- *  @return none
- */
-Usergrid.Entity.prototype.set = function (key, value) {
-  if (typeof key === 'object') {
-    for(var field in key) {
-      this._data[field] = key[field];
-    }
-  } else if (typeof key === 'string') {
-    if (value === null) {
-      delete this._data[key];
-    } else {
-      this._data[key] = value;
-    }
-  } else {
-    this._data = {};
-  }
-};
-
-/*
- *  Saves the entity back to the database
- *
- *  @method save
- *  @public
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- */
-Usergrid.Entity.prototype.save = function (callback) {
-  var self = this,
-    type = this.get('type'),
-    method = 'POST',
-    entityId=this.get("uuid"),
-    data = {},
-    entityData = this.get(),
-    password = this.get('password'),
-    oldpassword = this.get('oldpassword'),
-    newpassword = this.get('newpassword'),
-    SYSTEM_PROPERTIES=['metadata','created','modified','oldpassword','newpassword','type','activated','uuid'],
-    options={
-      method:method,
-      endpoint:type
-    };
-
-  //update the entity
-  console.log("entityId", entityId);
-  if (entityId) {
-    options.method = 'PUT';
-    options.endpoint += '/' + entityId;
-  }
-
-  //remove system-specific properties
-  Object
-    .keys(entityData) /* get the list of properties we have */
-    .filter(function(key){
-      return (SYSTEM_PROPERTIES.indexOf(key)===-1) /* remove system properties from the payload */
-    })
-    .forEach(function(key){
-      data[key]= entityData[key];
-    });
-    options.body=data;
-    console.log(options.body);
-  //save the entity first
-  this._client.request(options, function (err, retdata) {
-      //clear out pw info if present
-      self.set('password', null);
-      self.set('oldpassword', null);
-      self.set('newpassword', null);
-    if (err && self._client.logging) {
-      console.log('could not save entity');
-      if (typeof(callback) === 'function') {
-        return callback(err, retdata, self);
-      }
-    } else {
-      if (retdata.entities) {
-        if (retdata.entities.length) {
-          var entity = retdata.entities[0];
-          self.set(entity);
-          var path = retdata.path;
-          //for connections, API returns type
-          while (path.substring(0, 1) === "/") {
-            path = path.substring(1);
-          }
-          self.set('type', path);
-        }
-      }
-      //if this is a user, update the password if it has been specified;
-        var needPasswordChange = ((self.get('type') === 'user' || self.get('type') === 'users') && oldpassword && newpassword);
-      if (needPasswordChange) {
-        //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
-        var pwdata = {};
-          pwdata.oldpassword = oldpassword;
-          pwdata.newpassword = newpassword;
-        var options = {
-          method:'PUT',
-          endpoint:type+'/password',
-          body:pwdata
-        }
-        self._client.request(options, function (err, data) {
-          if (err && self._client.logging) {
-            console.log('could not update user');
-          }
-          //remove old and new password fields so they don't end up as part of the entity object
-          self.set('oldpassword', null);
-          self.set('newpassword', null);
-          if (typeof(callback) === 'function') {
-            callback(err, data, self);
-          }
-        });
-      } else if (typeof(callback) === 'function') {
-        callback(err, retdata, self);
-      }
-    }
-  });
-};
-
-/*
- *  refreshes the entity by making a GET call back to the database
- *
- *  @method fetch
- *  @public
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- */
-Usergrid.Entity.prototype.fetch = function (callback) {
-  var type = this.get('type');
-  var self = this;
-
-  //Check for an entity type, then if a uuid is available, use that, otherwise, use the name
-  try {
-    if (type === undefined) {
-      throw 'cannot fetch entity, no entity type specified'
-    } else if (this.get('uuid')) {
-      type += '/' + this.get('uuid');
-    } else if (type === 'users' && this.get('username')) {
-      type += '/' + this.get('username');
-    } else if (this.get('name')) {
-      type += '/' + encodeURIComponent(this.get('name'));
-    } else if (typeof(callback) === 'function') {
-      throw 'no_name_specified';
-    }
-  } catch (e) {
-    if (self._client.logging) {
-      console.log(e);
-    }
-    return callback(true, {
-      error: e
-    }, self);
-  }
-  var options = {
-    method:'GET',
-    endpoint:type
-  };
-  this._client.request(options, function (err, data) {
-    if (err && self._client.logging) {
-      console.log('could not get entity');
-    } else {
-      if (data.user) {
-        self.set(data.user);
-        self._json = JSON.stringify(data.user, null, 2);
-      } else if (data.entities) {
-        if (data.entities.length) {
-          var entity = data.entities[0];
-          self.set(entity);
-        }
-      }
-    }
-    if (typeof(callback) === 'function') {
-      callback(err, data, self);
-    }
-  });
-};
-
-/*
- *  deletes the entity from the database - will only delete
- *  if the object has a valid uuid
- *
- *  @method destroy
- *  @public
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- *
- */
-Usergrid.Entity.prototype.destroy = function (callback) {
-  var self = this;
-  var type = this.get('type');
-  if (isUUID(this.get('uuid'))) {
-    type += '/' + this.get('uuid');
-  } else {
-    if (typeof(callback) === 'function') {
-      var error = 'Error trying to delete object - no uuid specified.';
-      if (self._client.logging) {
-        console.log(error);
-      }
-      callback(true, error);
-    }
-  }
-  var options = {
-    method:'DELETE',
-    endpoint:type
-  };
-  this._client.request(options, function (err, data) {
-    if (err && self._client.logging) {
-      console.log('entity could not be deleted');
-    } else {
-      self.set(null);
-    }
-    if (typeof(callback) === 'function') {
-      callback(err, data);
-    }
-  });
-};
-
-/*
- *  connects one entity to another
- *
- *  @method connect
- *  @public
- *  @param {string} connection
- *  @param {object} entity
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- *
- */
-Usergrid.Entity.prototype.connect = function (connection, entity, callback) {
-
-  var self = this;
-
-  var error;
-  //connectee info
-  var connecteeType = entity.get('type');
-  var connectee = this.getEntityId(entity);
-  if (!connectee) {
-    if (typeof(callback) === 'function') {
-      error = 'Error trying to delete object - no uuid specified.';
-      if (self._client.logging) {
-        console.log(error);
-      }
-      callback(true, error);
-    }
-    return;
-  }
-
-  //connector info
-  var connectorType = this.get('type');
-  var connector = this.getEntityId(this);
-  if (!connector) {
-    if (typeof(callback) === 'function') {
-      error = 'Error in connect - no uuid specified.';
-      if (self._client.logging) {
-        console.log(error);
-      }
-      callback(true, error);
-    }
-    return;
-  }
-
-  var endpoint = connectorType + '/' + connector + '/' + connection + '/' + connecteeType + '/' + connectee;
-  var options = {
-    method:'POST',
-    endpoint:endpoint
-  };
-  this._client.request(options, function (err, data) {
-    if (err && self._client.logging) {
-      console.log('entity could not be connected');
-    }
-    if (typeof(callback) === 'function') {
-      callback(err, data);
-    }
-  });
-};
-
-/*
- *  returns a unique identifier for an entity
- *
- *  @method connect
- *  @public
- *  @param {object} entity
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- *
- */
-Usergrid.Entity.prototype.getEntityId = function (entity) {
-  var id = false;
-  if (isUUID(entity.get('uuid'))) {
-    id = entity.get('uuid');
-  } else {
-    if (this.get("type") === 'users') {
-      id = entity.get('username');
-    } else if (entity.get('name')) {
-      id = entity.get('name');
-    }
-  }
-  return id;
-};
-
-/*
- *  gets an entities connections
- *
- *  @method getConnections
- *  @public
- *  @param {string} connection
- *  @param {object} entity
- *  @param {function} callback
- *  @return {callback} callback(err, data, connections)
- *
- */
-Usergrid.Entity.prototype.getConnections = function (connection, callback) {
-
-  var self = this;
-
-  //connector info
-  var connectorType = this.get('type');
-  var connector = this.getEntityId(this);
-  if (!connector) {
-    if (typeof(callback) === 'function') {
-      var error = 'Error in getConnections - no uuid specified.';
-      if (self._client.logging) {
-        console.log(error);
-      }
-      callback(true, error);
-    }
-    return;
-  }
-
-  var endpoint = connectorType + '/' + connector + '/' + connection + '/';
-  var options = {
-    method:'GET',
-    endpoint:endpoint
-  };
-  this._client.request(options, function (err, data) {
-    if (err && self._client.logging) {
-      console.log('entity could not be connected');
-    }
-
-    self[connection] = {};
-
-    var length = data.entities.length;
-    for (var i = 0; i < length; i++) {
-      if (data.entities[i].type === 'user'){
-        self[connection][data.entities[i].username] = data.entities[i];
-      } else {
-        self[connection][data.entities[i].name] = data.entities[i]
-      }
-    }
-
-    if (typeof(callback) === 'function') {
-      callback(err, data, data.entities);
-    }
-  });
-
-};
-
-Usergrid.Entity.prototype.getGroups = function (callback) {
-
-  var self = this;
-
-  var endpoint = 'users' + '/' + this.get('uuid') + '/groups' ;
-  var options = {
-    method:'GET',
-    endpoint:endpoint
-  };
-  this._client.request(options, function (err, data) {
-    if (err && self._client.logging) {
-      console.log('entity could not be connected');
-    }
-
-    self.groups = data.entities;
-
-    if (typeof(callback) === 'function') {
-      callback(err, data, data.entities);
-    }
-  });
-
-};
-
-Usergrid.Entity.prototype.getActivities = function (callback) {
-
-  var self = this;
-
-  var endpoint = this.get('type') + '/' + this.get('uuid') + '/activities' ;
-  var options = {
-    method:'GET',
-    endpoint:endpoint
-  };
-  this._client.request(options, function (err, data) {
-    if (err && self._client.logging) {
-      console.log('entity could not be connected');
-    }
-
-    for (var entity in data.entities) {
-      data.entities[entity].createdDate = (new Date(data.entities[entity].created)).toUTCString();
-    }
-
-    self.activities = data.entities;
-
-    if (typeof(callback) === 'function') {
-      callback(err, data, data.entities);
-    }
-  });
-
-};
-
-Usergrid.Entity.prototype.getFollowing = function (callback) {
-
-  var self = this;
-
-  var endpoint = 'users' + '/' + this.get('uuid') + '/following' ;
-  var options = {
-    method:'GET',
-    endpoint:endpoint
-  };
-  this._client.request(options, function (err, data) {
-    if (err && self._client.logging) {
-      console.log('could not get user following');
-    }
-
-    for (var entity in data.entities) {
-      data.entities[entity].createdDate = (new Date(data.entities[entity].created)).toUTCString();
-      var image = self._client.getDisplayImage(data.entities[entity].email, data.entities[entity].picture);
-      data.entities[entity]._portal_image_icon =  image;
-    }
-
-    self.following = data.entities;
-
-    if (typeof(callback) === 'function') {
-      callback(err, data, data.entities);
-    }
-  });
-
-};
-
-
-Usergrid.Entity.prototype.getFollowers = function (callback) {
-
-  var self = this;
-
-  var endpoint = 'users' + '/' + this.get('uuid') + '/followers' ;
-  var options = {
-    method:'GET',
-    endpoint:endpoint
-  };
-  this._client.request(options, function (err, data) {
-    if (err && self._client.logging) {
-      console.log('could not get user followers');
-    }
-
-    for (var entity in data.entities) {
-      data.entities[entity].createdDate = (new Date(data.entities[entity].created)).toUTCString();
-      var image = self._client.getDisplayImage(data.entities[entity].email, data.entities[entity].picture);
-      data.entities[entity]._portal_image_icon =  image;
-    }
-
-    self.followers = data.entities;
-
-    if (typeof(callback) === 'function') {
-      callback(err, data, data.entities);
-    }
-  });
-
-};
-
-Usergrid.Entity.prototype.getRoles = function (callback) {
-
-  var self = this;
-
-  var endpoint = this.get('type') + '/' + this.get('uuid') + '/roles' ;
-  var options = {
-    method:'GET',
-    endpoint:endpoint
-  };
-  this._client.request(options, function (err, data) {
-    if (err && self._client.logging) {
-      console.log('could not get user roles');
-    }
-
-    self.roles = data.entities;
-
-    if (typeof(callback) === 'function') {
-      callback(err, data, data.entities);
-    }
-  });
-
-};
-
-Usergrid.Entity.prototype.getPermissions = function (callback) {
-
-  var self = this;
-
-  var endpoint = this.get('type') + '/' + this.get('uuid') + '/permissions' ;
-  var options = {
-    method:'GET',
-    endpoint:endpoint
-  };
-  this._client.request(options, function (err, data) {
-    if (err && self._client.logging) {
-      console.log('could not get user permissions');
-    }
-
-    var permissions = [];
-    if (data.data) {
-      var perms = data.data;
-      var count = 0;
-
-      for (var i in perms) {
-        count++;
-        var perm = perms[i];
-        var parts = perm.split(':');
-        var ops_part = "";
-        var path_part = parts[0];
-
-        if (parts.length > 1) {
-          ops_part = parts[0];
-          path_part = parts[1];
-        }
-
-        ops_part.replace("*", "get,post,put,delete")
-        var ops = ops_part.split(',');
-        var ops_object = {}
-        ops_object.get = 'no';
-        ops_object.post = 'no';
-        ops_object.put = 'no';
-        ops_object.delete = 'no';
-        for (var j in ops) {
-          ops_object[ops[j]] = 'yes';
-        }
-
-        permissions.push({
-          operations: ops_object,
-          path: path_part,
-          perm: perm
-        });
-      }
-    }
-
-    self.permissions = permissions;
-
-    if (typeof(callback) === 'function') {
-      callback(err, data, data.entities);
-    }
-  });
-
-};
-
-/*
- *  disconnects one entity from another
- *
- *  @method disconnect
- *  @public
- *  @param {string} connection
- *  @param {object} entity
- *  @param {function} callback
- *  @return {callback} callback(err, data)
- *
- */
-Usergrid.Entity.prototype.disconnect = function (connection, entity, callback) {
-
-  var self = this;
-
-  var error;
-  //connectee info
-  var connecteeType = entity.get('type');
-  var connectee = this.getEntityId(entity);
-  if (!connectee) {
-    if (typeof(callback) === 'function') {
-      error = 'Error trying to delete object - no uuid specified.';
-      if (self._client.logging) {
-        console.log(error);
-      }
-      callback(true, error);
-    }
-    return;
-  }
-
-  //connector info
-  var connectorType = this.get('type');
-  var connector = this.getEntityId(this);
-  if (!connector) {
-    if (typeof(callback) === 'function') {
-      error = 'Error in connect - no uuid specified.';
-      if (self._client.logging) {
-        console.log(error);
-      }
-      callback(true, error);
-    }
-    return;
-  }
-
-  var endpoint = connectorType + '/' + connector + '/' + connection + '/' + connecteeType + '/' + connectee;
-  var options = {
-    method:'DELETE',
-    endpoint:endpoint
-  };
-  this._client.request(options, function (err, data) {
-    if (err && self._client.logging) {
-      console.log('entity could not be disconnected');
-    }
-    if (typeof(callback) === 'function') {
-      callback(err, data);
-    }
-  });
-};

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9dfc5628/sdks/html5-javascript/lib/Error.js
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/lib/Error.js b/sdks/html5-javascript/lib/Error.js
deleted file mode 100644
index 05c7393..0000000
--- a/sdks/html5-javascript/lib/Error.js
+++ /dev/null
@@ -1,16 +0,0 @@
-
-Usergrid.Error=function(options){
-	this.name="UsergridError";
-	this.timestamp=options.timestamp||Date.now();
-	if(options instanceof Error){
-		this.exception=options.name||"";
-		this.message=options.message||"An error has occurred";
-	}else if("object"===typeof options){
-		this.exception=options.error||"unknown_error";
-		this.message=options.error_description||"An error has occurred";
-	}else if("string"===typeof options){
-		this.exception="unknown_error";
-		this.message=options||"An error has occurred";
-	}
-}
-Usergrid.Error.prototype=new Error();

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9dfc5628/sdks/html5-javascript/lib/Folder.js
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/lib/Folder.js b/sdks/html5-javascript/lib/Folder.js
deleted file mode 100644
index 11d7521..0000000
--- a/sdks/html5-javascript/lib/Folder.js
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- *  A class to model a Usergrid folder.
- *
- *  @constructor
- *  @param {object} options {name:"MyPhotos", path:"/user/uploads", owner:"00000000-0000-0000-0000-000000000000" }
- *  @returns {callback} callback(err, folder)
- */
-Usergrid.Folder = function(options, callback) {
-	var self = this,
-		messages = [];
-	console.log("FOLDER OPTIONS", options);
-	self._client = options.client;
-	self._data = options.data || {};
-	self._data.type = "folders";
-	var missingData = ["name", "owner", "path"].some(function(required) { return !(required in self._data)});
-	if(missingData){
-		return doCallback(callback, [true, new Usergrid.Error("Invalid asset data: 'name', 'owner', and 'path' are required properties.")], self);
-	}
-	self.save(function(err, data) {
-		if (err) {
-			doCallback(callback, [true, new Usergrid.Error(data)], self);
-		} else {
-			if (data.entities.length){
-				self.set(data.entities[0]);
-			}
-			doCallback(callback, [false, self], self);
-		}
-	});
-};
-/*
- *  Inherit from Usergrid.Entity.
- */
-Usergrid.Folder.prototype = new Usergrid.Entity();
-
-
-/*
- *  fetch the folder and associated assets
- *
- *  @method fetch
- *  @public
- *  @param {function} callback(err, self)
- *  @returns {callback} callback(err, self)
- */
-Usergrid.Folder.prototype.fetch = function(callback) {
-	var self = this;
-	Usergrid.Entity.prototype.fetch.call(self, function(err, data) {
-		console.log("self", self.get());
-		console.log("data", data);
-		if (!err) {
-			self.getAssets(function(err, data) {
-				if (err) {
-					doCallback(callback, [true, new Usergrid.Error(data)], self);
-				} else {
-					doCallback(callback, [null, self], self);
-				}
-			});
-		} else {
-			doCallback(callback, [true, new Usergrid.Error(data)], self)
-		}
-	})
-};
-/*
- *  Add an asset to the folder.
- *
- *  @method addAsset
- *  @public
- *  @param {object} options {asset:(uuid || Usergrid.Asset || {name:"photo.jpg", path:"/user/uploads", "content-type":"image/jpeg", owner:"F01DE600-0000-0000-0000-000000000000" }) }
- *  @returns {callback} callback(err, folder)
- */
-Usergrid.Folder.prototype.addAsset = function(options, callback) {
-	var self = this;
-	if (('asset' in options)) {
-		var asset = null;
-		switch (typeof options.asset) {
-			case 'object':
-				asset = options.asset;
-				if (!(asset instanceof Usergrid.Entity)) {
-					asset = new Usergrid.Asset(asset);
-				}
-				break;
-			case 'string':
-				if (isUUID(options.asset)) {
-					asset = new Usergrid.Asset({
-						client: self._client,
-						data: {
-							uuid: options.asset,
-							type: "assets"
-						}
-					});
-				}
-				break;
-		}
-		if (asset && asset instanceof Usergrid.Entity) {
-			asset.fetch(function(err, data) {
-				if (err) {
-					doCallback(callback, [err, new Usergrid.Error(data)], self)
-				} else {
-					var endpoint = ["folders", self.get("uuid"), "assets", asset.get("uuid")].join('/');
-					var options = {
-						method: 'POST',
-						endpoint: endpoint
-					};
-					self._client.request(options, callback);
-				}
-			})
-		}
-	} else {
-		//nothing to add
-		doCallback(callback, [true, {
-			error_description: "No asset specified"
-		}], self)
-	}
-};
-
-/*
- *  Remove an asset from the folder.
- *
- *  @method removeAsset
- *  @public
- *  @param {object} options {asset:(uuid || Usergrid.Asset || {name:"photo.jpg", path:"/user/uploads", "content-type":"image/jpeg", owner:"F01DE600-0000-0000-0000-000000000000" }) }
- *  @returns {callback} callback(err, folder)
- */
-Usergrid.Folder.prototype.removeAsset = function(options, callback) {
-	var self = this;
-	if (('asset' in options)) {
-		var asset = null;
-		switch (typeof options.asset) {
-			case 'object':
-				asset = options.asset;
-				break;
-			case 'string':
-				if (isUUID(options.asset)) {
-					asset = new Usergrid.Asset({
-						client: self._client,
-						data: {
-							uuid: options.asset,
-							type: "assets"
-						}
-					});
-				}
-				break;
-		}
-		if (asset && asset !== null) {
-			var endpoint = ["folders", self.get("uuid"), "assets", asset.get("uuid")].join('/');
-			self._client.request({
-				method: 'DELETE',
-				endpoint: endpoint
-			}, callback);
-		}
-	} else {
-		//nothing to add
-		doCallback(callback, [true, {
-			error_description: "No asset specified"
-		}], self)
-	}
-};
-
-/*
- *  List the assets in the folder.
- *
- *  @method getAssets
- *  @public
- *  @returns {callback} callback(err, assets)
- */
-Usergrid.Folder.prototype.getAssets = function(callback) {
-	return this.getConnections("assets", callback);
-};

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9dfc5628/sdks/html5-javascript/lib/Group.js
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/lib/Group.js b/sdks/html5-javascript/lib/Group.js
deleted file mode 100644
index 2a853be..0000000
--- a/sdks/html5-javascript/lib/Group.js
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- *  A class to model a Usergrid group.
- *  Set the path in the options object.
- *
- *  @constructor
- *  @param {object} options {client:client, data: {'key': 'value'}, path:'path'}
- */
-Usergrid.Group = function(options, callback) {
-  this._path = options.path;
-  this._list = [];
-  this._client = options.client;
-  this._data = options.data || {};
-  this._data.type = "groups";
-};
-
-/*
- *  Inherit from Usergrid.Entity.
- *  Note: This only accounts for data on the group object itself.
- *  You need to use add and remove to manipulate group membership.
- */
-Usergrid.Group.prototype = new Usergrid.Entity();
-
-/*
- *  Fetches current group data, and members.
- *
- *  @method fetch
- *  @public
- *  @param {function} callback
- *  @returns {function} callback(err, data)
- */
-Usergrid.Group.prototype.fetch = function(callback) {
-  var self = this;
-  var groupEndpoint = 'groups/'+this._path;
-  var memberEndpoint = 'groups/'+this._path+'/users';
-
-  var groupOptions = {
-    method:'GET',
-    endpoint:groupEndpoint
-  }
-
-  var memberOptions = {
-    method:'GET',
-    endpoint:memberEndpoint
-  }
-
-  this._client.request(groupOptions, function(err, data){
-    if(err) {
-      if(self._client.logging) {
-        console.log('error getting group');
-      }
-      if(typeof(callback) === 'function') {
-        callback(err, data);
-      }
-    } else {
-      if(data.entities) {
-        var groupData = data.entities[0];
-        self._data = groupData || {};
-        self._client.request(memberOptions, function(err, data) {
-          if(err && self._client.logging) {
-            console.log('error getting group users');
-          } else {
-            if(data.entities) {
-              var count = data.entities.length;
-              self._list = [];
-              for (var i = 0; i < count; i++) {
-                var uuid = data.entities[i].uuid;
-                if(uuid) {
-                  var entityData = data.entities[i] || {};
-                  var entityOptions = {
-                    type: entityData.type,
-                    client: self._client,
-                    uuid:uuid,
-                    data:entityData
-                  };
-                  var entity = new Usergrid.Entity(entityOptions);
-                  self._list.push(entity);
-                }
-
-              }
-            }
-          }
-          if(typeof(callback) === 'function') {
-            callback(err, data, self._list);
-          }
-        });
-      }
-    }
-  });
-};
-
-/*
- *  Retrieves the members of a group.
- *
- *  @method members
- *  @public
- *  @param {function} callback
- *  @return {function} callback(err, data);
- */
-Usergrid.Group.prototype.members = function(callback) {
-  if(typeof(callback) === 'function') {
-    callback(null, this._list);
-  }
-};
-
-/*
- *  Adds a user to the group, and refreshes the group object.
- *
- *  Options object: {user: user_entity}
- *
- *  @method add
- *  @public
- *  @params {object} options
- *  @param {function} callback
- *  @return {function} callback(err, data)
- */
-Usergrid.Group.prototype.add = function(options, callback) {
-  var self = this;
-  var options = {
-    method:"POST",
-    endpoint:"groups/"+this._path+"/users/"+options.user.get('username')
-  }
-
-  this._client.request(options, function(error, data){
-    if(error) {
-      if(typeof(callback) === 'function') {
-        callback(error, data, data.entities);
-      }
-    } else {
-      self.fetch(callback);
-    }
-  });
-}
-
-/*
- *  Removes a user from a group, and refreshes the group object.
- *
- *  Options object: {user: user_entity}
- *
- *  @method remove
- *  @public
- *  @params {object} options
- *  @param {function} callback
- *  @return {function} callback(err, data)
- */
-Usergrid.Group.prototype.remove = function(options, callback) {
-  var self = this;
-
-  var options = {
-    method:"DELETE",
-    endpoint:"groups/"+this._path+"/users/"+options.user.get('username')
-  }
-
-  this._client.request(options, function(error, data){
-    if(error) {
-      if(typeof(callback) === 'function') {
-        callback(error, data);
-      }
-    } else {
-      self.fetch(callback);
-    }
-  });
-}
-
-/*
- * Gets feed for a group.
- *
- * @public
- * @method feed
- * @param {function} callback
- * @returns {callback} callback(err, data, activities)
- */
-Usergrid.Group.prototype.feed = function(callback) {
-  var self = this;
-
-  var endpoint = "groups/"+this._path+"/feed";
-
-  var options = {
-    method:"GET",
-    endpoint:endpoint
-  }
-
-  this._client.request(options, function(err, data){
-    if (err && self.logging) {
-      console.log('error trying to log user in');
-    }
-    if(typeof(callback) === 'function') {
-      callback(err, data, data.entities);
-    }
-  });
-}
-
-/*
- * Creates activity and posts to group feed.
- *
- * options object: {user: user_entity, content: "activity content"}
- *
- * @public
- * @method createGroupActivity
- * @params {object} options
- * @param {function} callback
- * @returns {callback} callback(err, entity)
- */
-Usergrid.Group.prototype.createGroupActivity = function(options, callback){
-  var user = options.user;
-  options = {
-    client: this._client,
-    data: {
-      actor: {
-        "displayName": user.get("username"),
-        "uuid": user.get("uuid"),
-        "username": user.get("username"),
-        "email": user.get("email"),
-        "picture": user.get("picture"),
-        "image": {
-          "duration": 0,
-          "height": 80,
-          "url": user.get("picture"),
-          "width": 80
-        },
-      },
-      "verb": "post",
-      "content": options.content,
-      "type": 'groups/' + this._path + '/activities'
-    }
-  }
-
-  var entity = new Usergrid.Entity(options);
-  entity.save(function(err, data) {
-    if (typeof(callback) === 'function') {
-      callback(err, entity);
-    }
-  });
-};

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9dfc5628/sdks/html5-javascript/lib/Module.js
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/lib/Module.js b/sdks/html5-javascript/lib/Module.js
new file mode 100644
index 0000000..d5c3251
--- /dev/null
+++ b/sdks/html5-javascript/lib/Module.js
@@ -0,0 +1,34 @@
+/**
+ * Created by ryan bridges on 2014-02-05.
+ */
+
+    //noinspection ThisExpressionReferencesGlobalObjectJS
+(function (global) {
+    var name = 'Module',
+        short = '_m',
+        _name = global[name],
+        _short = (short !== undefined) ? global[short] : undefined;
+
+    function Module() {
+        /* put code in here */
+
+    }
+
+    global[name] = Module;
+    if (short !== undefined) {
+        global[short] = Module;
+    }
+    global[name].global[name].noConflict = function () {
+        if (_name) {
+            global[name] = _name;
+        }
+        if (short !== undefined) {
+            global[short] = _short;
+        }
+        return Module;
+    };
+    if( typeof module !== "undefined" && ('exports' in module)){
+        module.exports	= global[name]
+    }
+    return global[name];
+}(this));


Mime
View raw message