You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by to...@apache.org on 2014/09/29 22:52:53 UTC
[14/52] [abbrv] fix create collections
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/dc3e36c2/portal/js/libs/usergrid.sdk.js
----------------------------------------------------------------------
diff --git a/portal/js/libs/usergrid.sdk.js b/portal/js/libs/usergrid.sdk.js
index 824f293..795e3e2 100755
--- a/portal/js/libs/usergrid.sdk.js
+++ b/portal/js/libs/usergrid.sdk.js
@@ -1,278 +1,293 @@
/*
-* This module 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/usergrid
-*
-* 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.
-*
-* @author rod simpson (rod@apigee.com)
-*/
-(function(window, localStorage){
+ * This module 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/usergrid
+ *
+ * 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.
+ *
+ * @author rod simpson (rod@apigee.com)
+ */
+(function(window, localStorage) {
-//Hack around IE console.log
-window.console = window.console || {};
-window.console.log = window.console.log || function() {};
+ //Hack around IE console.log
+ 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.10.07';
-Usergrid.browser = Usergrid.browser || {};
+ //Usergrid namespace encapsulates this SDK
+ window.Usergrid = window.Usergrid || {};
+ Usergrid = Usergrid || {};
+ Usergrid.SDK_VERSION = '0.10.07';
+ Usergrid.browser = Usergrid.browser || {};
-Usergrid.Client = function(options,url) {
- //usergrid enpoint
- this.URI = url || 'https://api.usergrid.com';
+ Usergrid.Client = function(options, url) {
+ //usergrid enpoint
+ this.URI = url || '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);
- }
+ //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);
+ }
- if(options.keys){
- this._keys = options.keys;
- }
+ if (options.keys) {
+ this._keys = options.keys;
+ }
- //other options
- this.buildCurl = options.buildCurl || false;
- this.logging = options.logging || false;
+ //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;
-};
+ //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) {
- callback = callback || function(){console.error('no callback handed to client.request().')};
- 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");
- if (!mQuery && !orgName && !appName) {
- if (typeof this.logoutCallback === "function") {
- return this.logoutCallback(true, "no_org_or_app_name_specified");
- }
- }
- var uri;
- if (mQuery) {
- uri = this.URI + "/" + endpoint;
- } else {
- uri = this.URI + "/" + orgName + "/" + appName + "/" + endpoint;
- }
- if (self.getToken()) {
- qs.access_token = self.getToken();
- }
- var developerkey=self.get("developerkey");
- if (developerkey) {
- qs.key = developerkey;
- }
-
- var isIE9 = Usergrid.browser.isIE9 = $.browser.msie && $.browser.version <= 9;
-
- (isIE9) && (method === 'PUT' || method === 'DELETE') && (function(){ qs['method_override'] = method;})();
-
- //append params to the path
- var encoded_params = encodeParams(qs);
- if (encoded_params) {
- uri += "?" + encoded_params;
- }
- //stringify the body object
- body = options.formData ? null : JSON.stringify(body);
- //so far so good, so run the query
- //*** ie9 hack
- var xhr;
- //check to see if ie9 - if so, convert delete and put calls to a POST
- if (isIE9) { //XDomainRequest
- xhr = new XDomainRequest();
- (method === 'PUT' || method === 'DELETE') && (function() { method = 'POST';})();
- xhr.open(method, uri);
- }else{
- xhr = new XMLHttpRequest();
- xhr.open(method, uri, true);
- //add content type = json if there is a json payload
- if (!options.formData) {
- xhr.setRequestHeader("Content-Type", "application/json");
- xhr.setRequestHeader("Accept", "application/json");
- }
- }
- xhr.isIE9 = isIE9;
- // 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);
+ /*
+ * 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) {
+ callback = callback || function() {
+ console.error('no callback handed to client.request().')
+ };
+ 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");
+ if (!mQuery && !orgName && !appName) {
+ if (typeof this.logoutCallback === "function") {
+ return this.logoutCallback(true, "no_org_or_app_name_specified");
+ }
}
- };
- 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);
+ var uri;
+ if (mQuery) {
+ uri = this.URI + "/" + endpoint;
+ } else {
+ uri = this.URI + "/" + orgName + "/" + appName + "/" + endpoint;
+ }
+ if (self.getToken()) {
+ qs.access_token = self.getToken();
+ }
+ var developerkey = self.get("developerkey");
+ if (developerkey) {
+ qs.key = developerkey;
+ }
+
+ var isIE9 = Usergrid.browser.isIE9 = $.browser.msie && $.browser.version <=
+ 9;
+
+ (isIE9) && (method === 'PUT' || method === 'DELETE') && (function() {
+ qs['method_override'] = method;
+ })();
+
+ //append params to the path
+ var encoded_params = encodeParams(qs);
+ if (encoded_params) {
+ uri += "?" + encoded_params;
+ }
+ //stringify the body object
+ body = options.formData ? null : JSON.stringify(body);
+ //so far so good, so run the query
+ //*** ie9 hack
+ var xhr;
+ //check to see if ie9 - if so, convert delete and put calls to a POST
+ if (isIE9) { //XDomainRequest
+ xhr = new XDomainRequest();
+ (method === 'PUT' || method === 'DELETE') && (function() {
+ method = 'POST';
+ })();
+ xhr.open(method, uri);
+ } else {
+ xhr = new XMLHttpRequest();
+ xhr.open(method, uri, true);
+ //add content type = json if there is a json payload
+ if (!options.formData) {
+ xhr.setRequestHeader("Content-Type", "application/json");
+ xhr.setRequestHeader("Accept", "application/json");
+ }
}
- if (!xhr.isIE9 && xhr.status != 200) {
- //there was an api error
- var error = response.error;
- var error_description = response.error_description;
+ xhr.isIE9 = isIE9;
+ // Handle response.
+ xhr.onerror = function(response) {
+ self._end = new Date().getTime();
if (self.logging) {
- console.log("Error (" + xhr.status + ")(" + error + "): " + error_description);
+ console.log("success (time: " + self.calcTimeDiff() + "): " + method +
+ " " + uri);
}
- 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 (self.logging) {
+ console.log("Error: API call failed at the network level.");
}
+ //network error
+ clearTimeout(timeout);
+ var err = true;
if (typeof callback === "function") {
- callback(true, response);
+ callback(err, response);
}
- } else {
- if (typeof callback === "function") {
- callback(false, 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.isIE9 && 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 {
+ 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(options.formData || body);
};
- var timeout = setTimeout(function() {
- xhr.abort();
- if (self._callTimeoutCallback === "function") {
- self._callTimeoutCallback("API CALL TIMEOUT");
- } else {
- 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(options.formData || body);
-};
-Usergrid.Client.prototype.keys = function(o) {
- var a = [];
- for (var propertyName in o) {
- a.push(propertyName);
+ Usergrid.Client.prototype.keys = function(o) {
+ var a = [];
+ for (var propertyName in o) {
+ a.push(propertyName);
+ }
+ return a;
}
- return a;
-}
-
-/*
- * 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;
- var options = {
- path: options.path,
- client: this,
- data:options
- }
+ /*
+ * 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;
- 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 || Usergrid.browser.isIE9)) || (!err && getOnExist);
- if (okToSave) {
- group.save(function(err, data){
+ var 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 ||
+ Usergrid.browser.isIE9)) || (!err && getOnExist);
+ if (okToSave) {
+ group.save(function(err, data) {
+ if (typeof(callback) === 'function') {
+ callback(err, group);
+ }
+ });
+ } else {
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.
/*
+ * 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 options = {
client:this,
data:options
@@ -284,150 +299,152 @@ Usergrid.Client.prototype.createEntity = function (options, callback) {
}
});
*/
- var getOnExist = options.getOnExist || false; //if true, will return entity if one already exists
- 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
- if (Usergrid.browser.isIE9 || 'service_resource_not_found' === data.error || 'no_name_specified' === data.error || 'null_pointer' === data.error) {
-
- entity.set(options.data); //add the data again just in case
- entity.save(function(err, data) {
- if (typeof(callback) === 'function') {
- callback(err, entity, data);
- }
- });
+ var getOnExist = options.getOnExist || false; //if true, will return entity if one already exists
+ 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
+ if (Usergrid.browser.isIE9 || 'service_resource_not_found' === data.error ||
+ 'no_name_specified' === data.error || 'null_pointer' === data.error
+ ) {
+
+ 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 (getOnExist) {
- // entity exists and they want it returned
- if (typeof(callback) === 'function') {
- callback(err, entity, data);
- }
} else {
- //entity exists but they want an error to that effect
- err = true;
- callback(err, 'duplicate entity already exists');
+ if (getOnExist) {
+ // entity exists and they want it returned
+ if (typeof(callback) === 'function') {
+ callback(err, entity, data);
+ }
+ } else {
+ //entity exists but they want an error to that effect
+ err = true;
+ callback(err, 'duplicate entity already exists');
+ }
}
- }
- });
-
-}
+ });
-/*
- * 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 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
}
- });
-}
-/*
- * 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);
+ entity.fetch(function(err, data) {
+ if (typeof(callback) === 'function') {
+ callback(err, entity, 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 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 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 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 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"
+ /*
+ * 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;
}
- this.request(options, function(err, data){
- if(typeof(callback) === "function") {
- if(err) {
- callback(err);
- } else {
- callback(err, data, data.entities);
- }
+ /*
+ * 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
@@ -463,388 +480,408 @@ Usergrid.Client.prototype.getFeedForUser = function(username, callback) {
* @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);
+ 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 };
+ /*
+ * 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 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 get the OAuth token
- *
- * @method getToken
- * @public
- * @return {string} token
- */
-Usergrid.Client.prototype.getToken = function () {
- return this.get('token');
-}
+ /*
+ * 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);
+ }
-Usergrid.Client.prototype.setObject = function(key, value) {
- if (value) {
- value = JSON.stringify(value);
+ /*
+ * A public method to get the OAuth token
+ *
+ * @method getToken
+ * @public
+ * @return {string} token
+ */
+ Usergrid.Client.prototype.getToken = function() {
+ return this.get('token');
}
- this.set(key, value);
-}
-Usergrid.Client.prototype.set = function (key, value) {
- var keyStore = 'apigee_' + key;
- this[key] = value;
- if(typeof(Storage)!=="undefined"){
+ Usergrid.Client.prototype.setObject = function(key, value) {
if (value) {
- localStorage.setItem(keyStore, value);
- } else {
- localStorage.removeItem(keyStore);
+ value = JSON.stringify(value);
}
+ this.set(key, value);
}
-}
-
-Usergrid.Client.prototype.getObject = function(key) {
- return JSON.parse(this.get(key));
-}
-Usergrid.Client.prototype.get = function (key) {
- var keyStore = 'apigee_' + key;
- if (this[key]) {
- return this[key];
- } else if(typeof(Storage)!=="undefined") {
- return localStorage.getItem(keyStore);
+ 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);
+ }
+ }
}
- return null;
-}
-/*
- * 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
- };
+ Usergrid.Client.prototype.getObject = function(key) {
+ return JSON.parse(this.get(key));
+ }
- this.createEntity(options, callback);
-}
+ Usergrid.Client.prototype.get = function(key) {
+ var keyStore = 'apigee_' + key;
+ if (this[key]) {
+ return this[key];
+ } else if (typeof(Storage) !== "undefined") {
+ return localStorage.getItem(keyStore);
+ }
+ return null;
+ }
-/*
-*
-* 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:{
+ /*
+ * 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,
- 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);
+ email: email,
+ name: name
+ };
- }
- if (typeof(callback) === 'function') {
- callback(err);
- }
- });
-}
+ 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.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 = {};
- if (err && self.logging) {
- console.log('error trying to full authenticate user');
- } else {
- var 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
+ 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);
- var userData = {
- "username" : data.username,
- "email" : data.email,
- "name" : data.name,
- "uuid" : data.uuid
}
- var options = {
- client:self,
- data:userData
+ if (typeof(callback) === 'function') {
+ callback(err);
}
- 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);
+ 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 = {};
+ if (err && self.logging) {
+ console.log('error trying to full authenticate user');
+ } else {
+ var 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
- }
- if (typeof(callback) === 'function') {
- callback(err, data, user, organizations, applications);
- }
- });
-}
+ applications = self.parseApplicationsArray(org);
+ self.selectFirstApp(applications);
+
+ self.setObject('organizations', organizations);
+ self.setObject('applications', applications);
-Usergrid.Client.prototype.orgLogin = function (username, password, callback) {
- var self = this;
- var options = {
- method:'POST',
- endpoint:'management/token',
- mQuery:true,
- body:{
- username: username,
- password: password,
- grant_type: 'password'
- }
- };
- this.request(options, function(err, data) {
- var user = {};
- var organizations = {};
- var applications = {};
- 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);
- self.set('email', data.user.email);
+ if (typeof(callback) === 'function') {
+ callback(err, data, user, organizations, applications);
+ }
+ });
+ }
+ Usergrid.Client.prototype.orgLogin = function(username, password, callback) {
+ var self = this;
+ var options = {
+ method: 'POST',
+ endpoint: 'management/token',
+ mQuery: true,
+ body: {
+ username: username,
+ password: password,
+ grant_type: 'password'
+ }
+ };
+ this.request(options, function(err, data) {
+ var user = {};
+ var organizations = {};
+ var applications = {};
+ 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);
+ self.set('email', data.user.email);
+
+
+ //delete next block and corresponding function when iframes are refactored
+ localStorage.setItem('accessToken', data.access_token);
+ localStorage.setItem('userUUID', data.user.uuid);
+ localStorage.setItem('userEmail', data.user.email);
+ //end delete block
+
+
+ organizations = data.user.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
- //delete next block and corresponding function when iframes are refactored
- localStorage.setItem('accessToken', data.access_token);
- localStorage.setItem('userUUID', data.user.uuid);
- localStorage.setItem('userEmail', data.user.email);
- //end delete block
+ applications = self.parseApplicationsArray(org);
+ self.selectFirstApp(applications);
+ self.setObject('organizations', organizations);
+ self.setObject('applications', applications);
- organizations = data.user.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);
+ }
+ if (typeof(callback) === 'function') {
+ callback(err, data, user, organizations, applications);
+ }
+ });
+ }
- self.setObject('organizations', organizations);
- self.setObject('applications', applications);
+ Usergrid.Client.prototype.parseApplicationsArray = function(org) {
+ var applications = {};
+ for (var key in org.applications) {
+ var uuid = org.applications[key];
+ var name = key.split("/")[1];
+ applications[name] = ({
+ uuid: uuid,
+ name: name
+ });
}
- if (typeof(callback) === 'function') {
- callback(err, data, user, organizations, applications);
- }
- });
-}
-
-Usergrid.Client.prototype.parseApplicationsArray = function (org) {
- var applications = {};
- for (var key in org.applications) {
- var uuid = org.applications[key];
- var name = key.split("/")[1];
- applications[name] = ({uuid:uuid, name:name});
+ return applications;
}
- return applications;
-}
-
-Usergrid.Client.prototype.selectFirstApp = function (applications) {
- try {
- //try to select an app if one exists (will use existing if possible)
- var existingApp = this.get('appName');
- var firstApp = Object.keys(applications)[0];
- var appName = (applications[existingApp])?existingApp:Object.keys(applications)[0];
- this.set('appName', appName);
- } catch(e){}//may or may not be an application, if no, just fall through
- return appName;
-}
+ Usergrid.Client.prototype.selectFirstApp = function(applications) {
+ try {
+ //try to select an app if one exists (will use existing if possible)
+ var existingApp = this.get('appName');
+ var firstApp = Object.keys(applications)[0];
+ var appName = (applications[existingApp]) ? existingApp : Object.keys(
+ applications)[0];
+ this.set('appName', appName);
+ } catch (e) {} //may or may not be an application, if no, just fall through
+ return appName;
+ }
-Usergrid.Client.prototype.createApplication = function (name, callback) {
- var self = this;
- var options = {
- method:'POST',
- endpoint:'management/organizations/'+ this.get('orgName') + '/applications',
- mQuery:true,
- body:{name:name}
- };
- this.request(options, function(err, response) {
- var applications = {};
- if (err && self.logging) {
- console.log('error trying to create new application');
- if (typeof(callback) === 'function') {
- callback(err, applications);
+ Usergrid.Client.prototype.createApplication = function(name, callback) {
+ var self = this;
+ var options = {
+ method: 'POST',
+ endpoint: 'management/organizations/' + this.get('orgName') +
+ '/applications',
+ mQuery: true,
+ body: {
+ name: name
}
- } else {
- self.getApplications(callback);
- }
- });
-}
+ };
+ this.request(options, function(err, response) {
+ var applications = {};
+ if (err && self.logging) {
+ console.log('error trying to create new application');
+ if (typeof(callback) === 'function') {
+ callback(err, applications);
+ }
+ } else {
+ self.getApplications(callback);
+ }
+ });
+ }
-Usergrid.Client.prototype.getApplications = function(callback) {
- var self = this;
- var options = {
- method:'GET',
- endpoint:'management/organizations/'+this.get('orgName')+'/applications',
- mQuery:true
- };
- this.request(options, function(err, data) {
-/*
+ Usergrid.Client.prototype.getApplications = function(callback) {
+ var self = this;
+ var options = {
+ method: 'GET',
+ endpoint: 'management/organizations/' + this.get('orgName') +
+ '/applications',
+ mQuery: true
+ };
+ this.request(options, function(err, data) {
+ /*
//grab the applications
var applicationsData = data.data;
var applicationNames = self.keys(applicationsData).sort();
@@ -862,1571 +899,1609 @@ Usergrid.Client.prototype.getApplications = function(callback) {
count++;
} */
- applications = self.parseApplicationsArray({applications:data.data});
- self.selectFirstApp(applications);
- self.setObject('applications',applications);
-
- if(typeof(callback) === 'function') {
- callback(err, applications);
- }
- });
-}
-
-Usergrid.Client.prototype.getAdministrators = function (callback) {
- var self = this;
- var options = {
- method:'GET',
- endpoint:'management/organizations/'+this.get('orgName')+'/users',
- mQuery:true
- };
- this.request(options, function (err, data) {
- var administrators = [];
- if (err) {
+ applications = self.parseApplicationsArray({
+ applications: data.data
+ });
+ self.selectFirstApp(applications);
+ self.setObject('applications', applications);
- } else {
- var administrators = [];
- for(var i in data.data) {
- var admin = data.data[i];
- admin.image = self.getDisplayImage(admin.email, admin.picture);
- administrators.push(admin);
+ if (typeof(callback) === 'function') {
+ callback(err, applications);
}
- }
+ });
+ }
- if (typeof(callback) === 'function') {
- callback(err, administrators);
- }
- });
-}
+ Usergrid.Client.prototype.getAdministrators = function(callback) {
+ var self = this;
+ var options = {
+ method: 'GET',
+ endpoint: 'management/organizations/' + this.get('orgName') +
+ '/users',
+ mQuery: true
+ };
+ this.request(options, function(err, data) {
+ var administrators = [];
+ if (err) {
+ } else {
+ var administrators = [];
+ for (var i in data.data) {
+ var admin = data.data[i];
+ admin.image = self.getDisplayImage(admin.email, admin.picture);
+ administrators.push(admin);
+ }
+ }
-Usergrid.Client.prototype.createAdministrator = function (email, callback) {
- var self = this;
- var options = {
- method:'POST',
- endpoint:'management/organizations/'+ this.get('orgName') + '/users',
- mQuery:true,
- body:{email:email, password:''}
- };
- this.request(options, function(err, response) {
- var admins = {};
- if (err && self.logging) {
- console.log('error trying to create new administrator');
if (typeof(callback) === 'function') {
- callback(err, admins);
+ callback(err, administrators);
}
- } else {
- self.getAdministrators(callback);
- }
- });
-}
-
-
+ });
+ }
+ Usergrid.Client.prototype.createAdministrator = function(email, callback) {
+ var self = this;
+ var options = {
+ method: 'POST',
+ endpoint: 'management/organizations/' + this.get('orgName') +
+ '/users',
+ mQuery: true,
+ body: {
+ email: email,
+ password: ''
+ }
+ };
+ this.request(options, function(err, response) {
+ var admins = {};
+ if (err && self.logging) {
+ console.log('error trying to create new administrator');
+ if (typeof(callback) === 'function') {
+ callback(err, admins);
+ }
+ } else {
+ self.getAdministrators(callback);
+ }
+ });
+ }
-/*
-* 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 {
+ /*
+ * 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:'users/me'
+ method: 'GET',
+ endpoint: 'auth/facebook',
+ qs: {
+ fb_access_token: facebookToken
+ }
};
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);
- }
+ var user = {};
+ if (err && self.logging) {
+ console.log('error trying to log user in');
} else {
var options = {
- client:self,
- data:data.entities[0]
- }
- var user = new Usergrid.Entity(options);
- if (typeof(callback) === 'function') {
- callback(err, data, user);
+ 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 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 () {
- if (this.getToken()) {
- return true;
+ /*
+ * 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);
+ }
+ }
+ });
+ }
}
- return false;
-}
-/*
-* 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);
- this.setObject('organizations', null);
- this.setObject('applications', null);
- this.set('orgName', null);
- this.set('appName', null);
- this.set('email', null);
- this.set("developerkey", 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
+ *
+ * @method isLoggedIn
+ * @public
+ * @return {boolean} Returns true the user is logged in (has token and uuid), false if not
+ */
+ Usergrid.Client.prototype.isLoggedIn = function() {
+ if (this.getToken()) {
+ return true;
+ }
+ return false;
+ }
-/*
-* 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)
- 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 path
- curl += ' ' + uri;
-
- //curl - add the body
- if (body !== '"{}"' && method !== 'GET' && method !== 'DELETE') {
- //curl - add in the json obj
- curl += " -d '" + body + "'";
- }
-
- //log the curl command to the console
- console.log(curl);
-
- return curl;
-}
-Usergrid.Client.prototype.getDisplayImage = function (email, picture, size) {
- try {
- if (picture) {
- return picture;
- }
- var size = size || 50;
- if (email.length) {
- return 'https://secure.gravatar.com/avatar/' + MD5(email) + '?s=' + size;
+ /*
+ * 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);
+ this.setObject('organizations', null);
+ this.setObject('applications', null);
+ this.set('orgName', null);
+ this.set('appName', null);
+ this.set('email', null);
+ this.set("developerkey", 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)
+ if (method === 'POST') {
+ curl += ' -X POST';
+ } else if (method === 'PUT') {
+ curl += ' -X PUT';
+ } else if (method === 'DELETE') {
+ curl += ' -X DELETE';
} else {
- return 'https://apigee.com/usergrid/img/user_profile.png';
+ curl += ' -X GET';
}
- } catch(e) {
- return 'https://apigee.com/usergrid/img/user_profile.png';
- }
-}
-/*
-* A class to Model a Usergrid Entity.
-* Set the type of entity in the 'data' json object
-*
-* @constructor
-* @param {object} options {client:client, data:{'type':'collection_type', 'key':'value'}, uuid:uuid}}
-*/
-Usergrid.Entity = function(options) {
- if (options) {
- this._data = options.data || {};
- this._client = options.client || {};
+ //curl - append the path
+ curl += ' ' + uri;
+
+ //curl - add the body
+ if (body !== '"{}"' && method !== 'GET' && method !== 'DELETE') {
+ //curl - add in the json obj
+ curl += " -d '" + body + "'";
+ }
+
+ //log the curl command to the console
+ console.log(curl);
+
+ return curl;
+ }
+ Usergrid.Client.prototype.getDisplayImage = function(email, picture, size) {
+ try {
+ if (picture) {
+ return picture;
+ }
+ var size = size || 50;
+ if (email.length) {
+ return 'https://secure.gravatar.com/avatar/' + MD5(email) + '?s=' +
+ size;
+ } else {
+ return 'https://apigee.com/usergrid/img/user_profile.png';
+ }
+ } catch (e) {
+ return 'https://apigee.com/usergrid/img/user_profile.png';
+ }
}
-};
-/*
- * 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);
-}
+ /*
+ * A class to Model a Usergrid Entity.
+ * Set the type of entity in the 'data' json object
+ *
+ * @constructor
+ * @param {object} options {client:client, data:{'type':'collection_type', 'key':'value'}, uuid:uuid}}
+ */
+ Usergrid.Entity = function(options) {
+ if (options) {
+ this._data = options.data || {};
+ this._client = options.client || {};
+ }
+ };
-/*
-* 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;
+ /*
+ * 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);
}
-}
-/*
-* 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];
+ /*
+ * 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 {
- this._data[key] = value;
+ return this._data;
}
- } 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 type = this.get('type');
- var method = 'POST';
- if (isUUID(this.get('uuid'))) {
- method = 'PUT';
- type += '/' + this.get('uuid');
- }
-
- //update the entity
- var self = this;
- var data = {};
- var entityData = this.get();
- //remove system specific properties
- for (var item in entityData) {
- if (item === 'metadata' || item === 'created' || item === 'modified' ||
- item === 'type' || item === 'activated' || item ==='uuid') { continue; }
- data[item] = entityData[item];
- }
- var options = {
- method:method,
- endpoint:type,
- body:data
- };
- //save the entity first
- this._client.request(options, function (err, retdata) {
- if (err && self._client.logging) {
- console.log('could not save entity');
- if (typeof(callback) === 'function') {
- return callback(err, retdata, self);
+ /*
+ * 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 {
- if (retdata.entities) {
- if (retdata.entities.length) {
- var entity = retdata.entities[0];
- self.set(entity);
- //for connections, API returns type
- self.set('type', retdata.path);
- }
+ 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 type = this.get('type');
+ var method = 'POST';
+ if (isUUID(this.get('uuid'))) {
+ method = 'PUT';
+ type += '/' + this.get('uuid');
+ }
+
+ //update the entity
+ var self = this;
+ var data = {};
+ var entityData = this.get();
+ //remove system specific properties
+ for (var item in entityData) {
+ if (item === 'metadata' || item === 'created' || item === 'modified' ||
+ item === 'type' || item === 'activated' || item === 'uuid') {
+ continue;
}
- //if this is a user, update the password if it has been specified;
- var needPasswordChange = (self.get('type') === 'user' && entityData.oldpassword && entityData.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 = entityData.oldpassword;
- pwdata.newpassword = entityData.newpassword;
- var options = {
- method:'PUT',
- endpoint:type+'/password',
- body:pwdata
+ data[item] = entityData[item];
+ }
+ var options = {
+ method: method,
+ endpoint: type,
+ body: data
+ };
+ //save the entity first
+ this._client.request(options, function(err, retdata) {
+ if (err && self._client.logging) {
+ console.log('could not save entity');
+ if (typeof(callback) === 'function') {
+ return callback(err, retdata, self);
}
- self._client.request(options, function (err, data) {
- if (err && self._client.logging) {
- console.log('could not update user');
+ } else {
+ if (retdata.entities) {
+ if (retdata.entities.length) {
+ var entity = retdata.entities[0];
+ self.set(entity);
+ //for connections, API returns type
+ self.set('type', retdata.path);
}
- //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);
+ }
+ //if this is a user, update the password if it has been specified;
+ var needPasswordChange = (self.get('type') === 'user' && entityData
+ .oldpassword && entityData.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 = entityData.oldpassword;
+ pwdata.newpassword = entityData.newpassword;
+ var options = {
+ method: 'PUT',
+ endpoint: type + '/password',
+ body: pwdata
}
- });
- } else if (typeof(callback) === 'function') {
- callback(err, retdata, self);
+ 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;
-
- //if a uuid is available, use that, otherwise, use the name
- if (this.get('uuid')) {
- type += '/' + this.get('uuid');
- } else {
- if (type === 'users') {
- if (this.get('username')) {
- type += '/' + this.get('username');
- } else {
- if (typeof(callback) === 'function') {
- var error = 'no_name_specified';
- if (self._client.logging) {
- console.log(error);
+ /*
+ * 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;
+
+ //if a uuid is available, use that, otherwise, use the name
+ if (this.get('uuid')) {
+ type += '/' + this.get('uuid');
+ } else {
+ if (type === 'users') {
+ if (this.get('username')) {
+ type += '/' + this.get('username');
+ } else {
+ if (typeof(callback) === 'function') {
+ var error = 'no_name_specified';
+ if (self._client.logging) {
+ console.log(error);
+ }
+ return callback(true, {
+ error: error
+ }, self)
}
- return callback(true, {error:error}, self)
}
- }
- } else if (type === 'a path') {
+ } else if (type === 'a path') {
- ///TODO add code to deal with the type as a path
+ ///TODO add code to deal with the type as a path
- if (this.get('path')) {
- type += '/' + encodeURIComponent(this.get('name'));
- } else {
- if (typeof(callback) === 'function') {
- var error = 'no_name_specified';
- if (self._client.logging) {
- console.log(error);
+ if (this.get('path')) {
+ type += '/' + encodeURIComponent(this.get('name'));
+ } else {
+ if (typeof(callback) === 'function') {
+ var error = 'no_name_specified';
+ if (self._client.logging) {
+ console.log(error);
+ }
+ return callback(true, {
+ error: error
+ }, self)
}
- return callback(true, {error:error}, self)
}
- }
- } else {
- if (this.get('name')) {
- type += '/' + encodeURIComponent(this.get('name'));
} else {
- if (typeof(callback) === 'function') {
- var error = 'no_name_specified';
- if (self._client.logging) {
- console.log(error);
+ if (this.get('name')) {
+ type += '/' + encodeURIComponent(this.get('name'));
+ } else {
+ if (typeof(callback) === 'function') {
+ var error = 'no_name_specified';
+ if (self._client.logging) {
+ console.log(error);
+ }
+ return callback(true, {
+ error: error
+ }, self)
}
- return callback(true, {error:error}, 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);
+ }
+ });
}
- var options = {
- method:'GET',
- endpoint:type
- };
- this._client.request(options, function (err, data) {
- if (err && self._client.logging) {
- console.log('could not get entity');
+
+ /*
+ * 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 type = this.get('type');
+ if (isUUID(this.get('uuid'))) {
+ type += '/' + this.get('uuid');
} 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') {
+ var error = 'Error trying to delete object - no uuid specified.';
+ if (self._client.logging) {
+ console.log(error);
}
+ callback(true, error);
}
}
- 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 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);
+ var self = this;
+ 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);
}
- callback(true, error);
- }
+ if (typeof(callback) === 'function') {
+ callback(err, data);
+ }
+ });
}
- var self = this;
- 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) {
+ /*
+ * 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 self = this;
- //connectee info
- var connecteeType = entity.get('type');
- var connectee = this.getEntityId(entity);
- if (!connectee) {
- if (typeof(callback) === 'function') {
- var error = 'Error trying to delete object - no uuid specified.';
- if (self._client.logging) {
- console.log(error);
+ //connectee info
+ var connecteeType = entity.get('type');
+ var connectee = this.getEntityId(entity);
+ if (!connectee) {
+ if (typeof(callback) === 'function') {
+ var error = 'Error trying to delete object - no uuid specified.';
+ if (self._client.logging) {
+ console.log(error);
+ }
+ callback(true, error);
}
- callback(true, error);
+ return;
}
- return;
- }
- //connector info
- var connectorType = this.get('type');
- var connector = this.getEntityId(this);
- if (!connector) {
- if (typeof(callback) === 'function') {
- var error = 'Error in connect - no uuid specified.';
- if (self._client.logging) {
- console.log(error);
+ //connector info
+ var connectorType = this.get('type');
+ var connector = this.getEntityId(this);
+ if (!connector) {
+ if (typeof(callback) === 'function') {
+ var error = 'Error in connect - no uuid specified.';
+ if (self._client.logging) {
+ console.log(error);
+ }
+ callback(true, error);
}
- callback(true, error);
+ return;
}
- 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);
- }
- });
-}
+ 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 (type === 'users') {
- id = entity.get('username');
- } else if (entity.get('name')) {
- id = entity.get('name');
+ /*
+ * 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 (type === 'users') {
+ id = entity.get('username');
+ } else if (entity.get('name')) {
+ id = entity.get('name');
+ }
}
+ return id;
}
- 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) {
+ /*
+ * 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;
+ 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);
+ //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);
}
- callback(true, error);
+ return;
}
- 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');
- }
+ 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] = {};
+ 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]
+ 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);
- }
- });
+ if (typeof(callback) === 'function') {
+ callback(err, data, data.entities);
+ }
+ });
-}
+ }
-Usergrid.Entity.prototype.getGroups = function (callback) {
+ Usergrid.Entity.prototype.getGroups = function(callback) {
- var self = this;
+ 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');
- }
+ 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;
+ self['groups'] = data.entities;
- if (typeof(callback) === 'function') {
- callback(err, data, data.entities);
- }
- });
+ if (typeof(callback) === 'function') {
+ callback(err, data, data.entities);
+ }
+ });
-}
+ }
-Usergrid.Entity.prototype.getActivities = function (callback) {
+ Usergrid.Entity.prototype.getActivities = function(callback) {
- var self = this;
+ 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');
- }
+ 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(entity in data.entities) {
- data.entities[entity].createdDate = (new Date(data.entities[entity].created)).toUTCString();
- }
+ for (entity in data.entities) {
+ data.entities[entity].createdDate = (new Date(data.entities[entity]
+ .created)).toUTCString();
+ }
- self['activities'] = data.entities;
+ self['activities'] = data.entities;
- if (typeof(callback) === 'function') {
- callback(err, data, data.entities);
- }
- });
+ if (typeof(callback) === 'function') {
+ callback(err, data, data.entities);
+ }
+ });
+
+ }
-}
+ Usergrid.Entity.prototype.getFollowing = function(callback) {
-Usergrid.Entity.prototype.getFollowing = function (callback) {
+ var self = this;
- 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');
+ }
- 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 (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;
+ }
- for(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;
- self['following'] = data.entities;
+ if (typeof(callback) === 'function') {
+ callback(err, data, data.entities);
+ }
+ });
- if (typeof(callback) === 'function') {
- callback(err, data, data.entities);
- }
- });
+ }
-}
+ Usergrid.Entity.prototype.getFollowers = function(callback) {
-Usergrid.Entity.prototype.getFollowers = function (callback) {
+ var self = this;
- 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');
+ }
- 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 (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;
+ }
- for(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;
- self['followers'] = data.entities;
+ if (typeof(callback) === 'function') {
+ callback(err, data, data.entities);
+ }
+ });
- if (typeof(callback) === 'function') {
- callback(err, data, data.entities);
- }
- });
+ }
-}
+ Usergrid.Entity.prototype.getRoles = function(callback) {
-Usergrid.Entity.pr
<TRUNCATED>