blob: edcdb4af668c18350ddfd5b8d0aa8ec183674670 [file] [log] [blame]
window.console=window.console||{};window.console.log=window.console.log||function(){};window.Usergrid=window.Usergrid||{};Usergrid=Usergrid||{};Usergrid.SDK_VERSION="0.10.07";Usergrid.Client=function(a){this.URI=a.URI||"https://api.usergrid.com";if(a.orgName){this.set("orgName",a.orgName)}if(a.appName){this.set("appName",a.appName)}this.buildCurl=a.buildCurl||false;this.logging=a.logging||false;this._callTimeout=a.callTimeout||30000;this._callTimeoutCallback=a.callTimeoutCallback||null;this.logoutCallback=a.logoutCallback||null};Usergrid.Client.prototype.request=function(p,j){var o=this;var a=p.method||"GET";var n=p.endpoint;var c=p.body||{};var f=p.qs||{};var k=p.mQuery||false;var e=this.get("orgName");var d=this.get("appName");if(!k&&!e&&!d){if(typeof(this.logoutCallback)==="function"){return this.logoutCallback(true,"no_org_or_app_name_specified")}}if(k){var b=this.URI+"/"+n}else{var b=this.URI+"/"+e+"/"+d+"/"+n}if(o.getToken()){f.access_token=o.getToken()}var m=encodeParams(f);if(m){b+="?"+m}c=JSON.stringify(c);var l=new XMLHttpRequest();l.open(a,b,true);if(c){l.setRequestHeader("Content-Type","application/json");l.setRequestHeader("Accept","application/json")}l.onerror=function(q){o._end=new Date().getTime();if(o.logging){console.log("success (time: "+o.calcTimeDiff()+"): "+a+" "+b)}if(o.logging){console.log("Error: API call failed at the network level.")}clearTimeout(h);var r=true;if(typeof(j)==="function"){j(r,q)}};l.onload=function(q){o._end=new Date().getTime();if(o.logging){console.log("success (time: "+o.calcTimeDiff()+"): "+a+" "+b)}clearTimeout(h);q=JSON.parse(l.responseText);if(l.status!=200){var r=q.error;var s=q.error_description;if(o.logging){console.log("Error ("+l.status+")("+r+"): "+s)}if((r=="auth_expired_session_token")||(r=="auth_missing_credentials")||(r=="auth_unverified_oath")||(r=="expired_token")||(r=="unauthorized")||(r=="auth_invalid")){if(typeof(o.logoutCallback)==="function"){return o.logoutCallback(true,q)}}if(typeof(j)==="function"){j(true,q)}}else{if(typeof(j)==="function"){j(false,q)}}};var h=setTimeout(function(){l.abort();if(o._callTimeoutCallback==="function"){o._callTimeoutCallback("API CALL TIMEOUT")}else{o.callback("API CALL TIMEOUT")}},o._callTimeout);if(this.logging){console.log("calling: "+a+" "+b)}if(this.buildCurl){var g={uri:b,body:c,method:a};this.buildCurlCall(g)}this._start=new Date().getTime();l.send(c)};Usergrid.Client.prototype.createGroup=function(a,d){var c=a.getOnExist||false;var a={path:a.path,client:this,data:a};var b=new Usergrid.Group(a);b.fetch(function(f,g){var e=(f&&"service_resource_not_found"===g.error||"no_name_specified"===g.error||"null_pointer"===g.error)||(!f&&c);if(e){b.save(function(h,j){if(typeof(d)==="function"){d(h,b)}})}else{if(typeof(d)==="function"){d(f,b)}}})};Usergrid.Client.prototype.createEntity=function(b,d){var c=b.getOnExist||false;var b={client:this,data:b};var a=new Usergrid.Entity(b);a.fetch(function(f,g){var e=(f&&"service_resource_not_found"===g.error||"no_name_specified"===g.error||"null_pointer"===g.error)||(!f&&c);if(e){a.set(b.data);a.save(function(h,j){if(typeof(d)==="function"){d(h,a,j)}})}else{if(typeof(d)==="function"){d(f,a,g)}}})};Usergrid.Client.prototype.getEntity=function(b,c){var b={client:this,data:b};var a=new Usergrid.Entity(b);a.fetch(function(d,e){if(typeof(c)==="function"){c(d,a,e)}})};Usergrid.Client.prototype.restoreEntity=function(c){var d=JSON.parse(c);var b={client:this,data:d};var a=new Usergrid.Entity(b);return a};Usergrid.Client.prototype.createCollection=function(a,c){a.client=this;var b=new Usergrid.Collection(a,function(d,e){if(typeof(c)==="function"){c(d,b,e)}})};Usergrid.Client.prototype.restoreCollection=function(a){var b=JSON.parse(a);b.client=this;var c=new Usergrid.Collection(b);return c};Usergrid.Client.prototype.getFeedForUser=function(c,b){var a={method:"GET",endpoint:"users/"+c+"/feed"};this.request(a,function(d,e){if(typeof(b)==="function"){if(d){b(d)}else{b(d,e,e.entities)}}})};Usergrid.Client.prototype.createUserActivity=function(b,c,d){c.type="users/"+b+"/activities";var c={client:this,data:c};var a=new Usergrid.Entity(c);a.save(function(e,f){if(typeof(d)==="function"){d(e,a)}})};Usergrid.Client.prototype.createUserActivityWithEntity=function(a,c,e){var d=a.get("username");var b={actor:{displayName:d,uuid:a.get("uuid"),username:d,email:a.get("email"),picture:a.get("picture"),image:{duration:0,height:80,url:a.get("picture"),width:80},},verb:"post",content:c};this.createUserActivity(d,b,e)};Usergrid.Client.prototype.calcTimeDiff=function(){var c=0;var b=this._end-this._start;try{c=((b/10)/60).toFixed(2)}catch(a){return 0}return c};Usergrid.Client.prototype.setToken=function(a){this.set("token",a)};Usergrid.Client.prototype.getToken=function(){return this.get("token")};Usergrid.Client.prototype.setObject=function(a,b){if(b){b=JSON.stringify(b)}this.set(a,b)};Usergrid.Client.prototype.set=function(b,c){var a="apigee_"+b;this[b]=c;if(typeof(Storage)!=="undefined"){if(c){localStorage.setItem(a,c)}else{localStorage.removeItem(a)}}};Usergrid.Client.prototype.getObject=function(a){return JSON.parse(this.get(a))};Usergrid.Client.prototype.get=function(b){var a="apigee_"+b;if(this[b]){return this[b]}else{if(typeof(Storage)!=="undefined"){return localStorage.getItem(a)}}return null};Usergrid.Client.prototype.signup=function(g,e,d,c,f){var a=this;var b={type:"users",username:g,password:e,email:d,name:c};this.createEntity(b,f)};Usergrid.Client.prototype.login=function(e,c,d){var a=this;var b={method:"POST",endpoint:"token",body:{username:e,password:c,grant_type:"password"}};this.request(b,function(h,j){var f={};if(h&&a.logging){console.log("error trying to log user in")}else{var g={client:a,data:j.user};f=new Usergrid.Entity(g);a.setToken(j.access_token)}if(typeof(d)==="function"){d(h,j,f)}})};Usergrid.Client.prototype.reAuthenticateLite=function(c){var a=this;var b={method:"GET",endpoint:"management/me",mQuery:true};this.request(b,function(e,d){if(e&&a.logging){console.log("error trying to re-authenticate user")}else{a.setToken(d.access_token)}if(typeof(c)==="function"){c(e)}})};Usergrid.Client.prototype.reAuthenticate=function(c,d){var a=this;var b={method:"GET",endpoint:"management/users/"+c,mQuery:true};this.request(b,function(k,l){var f={};var j={};var m={};if(k&&a.logging){console.log("error trying to full authenticate user")}else{var n=l.data;a.setToken(n.token);a.set("email",n.email);localStorage.setItem("accessToken",n.token);localStorage.setItem("userUUID",n.uuid);localStorage.setItem("userEmail",n.email);var g={username:n.username,email:n.email,name:n.name,uuid:n.uuid};var q={client:a,data:g};m=new Usergrid.Entity(q);f=n.organizations;var p="";try{var h=a.get("orgName");p=(f[h])?f[h]:f[Object.keys(f)[0]];a.set("orgName",p.name)}catch(o){k=true;if(a.logging){console.log("error selecting org")}}j=a.parseApplicationsArray(p);a.selectFirstApp(j);a.setObject("organizations",f);a.setObject("applications",j)}if(typeof(d)==="function"){d(k,n,m,f,j)}})};Usergrid.Client.prototype.loginFacebook=function(a,d){var b=this;var c={method:"GET",endpoint:"auth/facebook",qs:{fb_access_token:a}};this.request(c,function(g,h){var e={};if(g&&b.logging){console.log("error trying to log user in")}else{var f={client:b,data:h.user};e=new Usergrid.Entity(f);b.setToken(h.access_token)}if(typeof(d)==="function"){d(g,h,e)}})};Usergrid.Client.prototype.getLoggedInUser=function(c){if(!this.getToken()){c(true,null,null)}else{var a=this;var b={method:"GET",endpoint:"users/me"};this.request(b,function(f,g){if(f){if(a.logging){console.log("error trying to log user in")}if(typeof(c)==="function"){c(f,g,null)}}else{var e={client:a,data:g.entities[0]};var d=new Usergrid.Entity(e);if(typeof(c)==="function"){c(f,g,d)}}})}};Usergrid.Client.prototype.isLoggedIn=function(){if(this.getToken()){return true}return false};Usergrid.Client.prototype.logout=function(){this.setToken(null)};Usergrid.Client.prototype.buildCurlCall=function(c){var b="curl";var e=(c.method||"GET").toUpperCase();var a=c.body||{};var d=c.uri;if(e==="POST"){b+=" -X POST"}else{if(e==="PUT"){b+=" -X PUT"}else{if(e==="DELETE"){b+=" -X DELETE"}else{b+=" -X GET"}}}b+=" "+d;if(a!=='"{}"'&&e!=="GET"&&e!=="DELETE"){b+=" -d '"+a+"'"}console.log(b);return b};Usergrid.Client.prototype.getDisplayImage=function(a,c,b){try{if(c){return c}var b=b||50;if(a.length){return"https://secure.gravatar.com/avatar/"+MD5(a)+"?s="+b+encodeURI("&d=https://apigee.com/usergrid/images/user_profile.png")}else{return"https://apigee.com/usergrid/images/user_profile.png"}}catch(d){return"https://apigee.com/usergrid/images/user_profile.png"}};Usergrid.Entity=function(a){if(a){this._data=a.data||{};this._client=a.client||{}}};Usergrid.Entity.prototype.serialize=function(){return JSON.stringify(this._data)};Usergrid.Entity.prototype.get=function(a){if(a){return this._data[a]}else{return this._data}};Usergrid.Entity.prototype.set=function(a,b){if(typeof a==="object"){for(var c in a){this._data[c]=a[c]}}else{if(typeof a==="string"){if(b===null){delete this._data[a]}else{this._data[a]=b}}else{this._data={}}}};Usergrid.Entity.prototype.save=function(h){var c=this.get("type");var g="POST";if(isUUID(this.get("uuid"))){g="PUT";c+="/"+this.get("uuid")}var a=this;var e={};var f=this.get();for(var d in f){if(d==="metadata"||d==="created"||d==="modified"||d==="type"||d==="activated"||d==="uuid"){continue}e[d]=f[d]}var b={method:g,endpoint:c,body:e};this._client.request(b,function(n,k){if(n&&a._client.logging){console.log("could not save entity");if(typeof(h)==="function"){return h(n,k,a)}}else{if(k.entities){if(k.entities.length){var j=k.entities[0];a.set(j);var p=k.path;while(p.substring(0,1)==="/"){p=p.substring(1)}a.set("type",p)}}var o=((a.get("type")==="user"||a.get("type")==="users")&&f.oldpassword&&f.newpassword);if(o){var m={};m.oldpassword=f.oldpassword;m.newpassword=f.newpassword;var l={method:"PUT",endpoint:c+"/password",body:m};a._client.request(l,function(q,r){if(q&&a._client.logging){console.log("could not update user")}a.set("oldpassword",null);a.set("newpassword",null);if(typeof(h)==="function"){h(q,r,a)}})}else{if(typeof(h)==="function"){h(n,k,a)}}}})};Usergrid.Entity.prototype.fetch=function(e){var d=this.get("type");var a=this;if(this.get("uuid")){d+="/"+this.get("uuid")}else{if(d==="users"){if(this.get("username")){d+="/"+this.get("username")}else{if(typeof(e)==="function"){var c="no_name_specified";if(a._client.logging){console.log(c)}return e(true,{error:c},a)}}}else{if(d==="a path"){if(this.get("path")){d+="/"+encodeURIComponent(this.get("name"))}else{if(typeof(e)==="function"){var c="no_name_specified";if(a._client.logging){console.log(c)}return e(true,{error:c},a)}}}else{if(this.get("name")){d+="/"+encodeURIComponent(this.get("name"))}else{if(typeof(e)==="function"){var c="no_name_specified";if(a._client.logging){console.log(c)}return e(true,{error:c},a)}}}}}var b={method:"GET",endpoint:d};this._client.request(b,function(g,h){if(g&&a._client.logging){console.log("could not get entity")}else{if(h.user){a.set(h.user);a._json=JSON.stringify(h.user,null,2)}else{if(h.entities){if(h.entities.length){var f=h.entities[0];a.set(f)}}}}if(typeof(e)==="function"){e(g,h,a)}})};Usergrid.Entity.prototype.destroy=function(e){var d=this.get("type");if(isUUID(this.get("uuid"))){d+="/"+this.get("uuid")}else{if(typeof(e)==="function"){var c="Error trying to delete object - no uuid specified.";if(a._client.logging){console.log(c)}e(true,c)}}var a=this;var b={method:"DELETE",endpoint:d};this._client.request(b,function(f,g){if(f&&a._client.logging){console.log("entity could not be deleted")}else{a.set(null)}if(typeof(e)==="function"){e(f,g)}})};Usergrid.Entity.prototype.connect=function(a,d,h){var k=this;var f=d.get("type");var c=this.getEntityId(d);if(!c){if(typeof(h)==="function"){var g="Error trying to delete object - no uuid specified.";if(k._client.logging){console.log(g)}h(true,g)}return}var e=this.get("type");var b=this.getEntityId(this);if(!b){if(typeof(h)==="function"){var g="Error in connect - no uuid specified.";if(k._client.logging){console.log(g)}h(true,g)}return}var j=e+"/"+b+"/"+a+"/"+f+"/"+c;var l={method:"POST",endpoint:j};this._client.request(l,function(m,n){if(m&&k._client.logging){console.log("entity could not be connected")}if(typeof(h)==="function"){h(m,n)}})};Usergrid.Entity.prototype.getEntityId=function(a){var b=false;if(isUUID(a.get("uuid"))){b=a.get("uuid")}else{if(type==="users"){b=a.get("username")}else{if(a.get("name")){b=a.get("name")}}}return b};Usergrid.Entity.prototype.getConnections=function(d,h){var c=this;var b=this.get("type");var a=this.getEntityId(this);if(!a){if(typeof(h)==="function"){var f="Error in getConnections - no uuid specified.";if(c._client.logging){console.log(f)}h(true,f)}return}var g=b+"/"+a+"/"+d+"/";var e={method:"GET",endpoint:g};this._client.request(e,function(l,m){if(l&&c._client.logging){console.log("entity could not be connected")}c[d]={};var k=m.entities.length;for(var j=0;j<k;j++){if(m.entities[j].type==="user"){c[d][m.entities[j].username]=m.entities[j]}else{c[d][m.entities[j].name]=m.entities[j]}}if(typeof(h)==="function"){h(l,m,m.entities)}})};Usergrid.Entity.prototype.getGroups=function(d){var a=this;var c="users/"+this.get("uuid")+"/groups";var b={method:"GET",endpoint:c};this._client.request(b,function(e,f){if(e&&a._client.logging){console.log("entity could not be connected")}a.groups=f.entities;if(typeof(d)==="function"){d(e,f,f.entities)}})};Usergrid.Entity.prototype.getActivities=function(d){var a=this;var c=this.get("type")+"/"+this.get("uuid")+"/activities";var b={method:"GET",endpoint:c};this._client.request(b,function(e,f){if(e&&a._client.logging){console.log("entity could not be connected")}for(entity in f.entities){f.entities[entity].createdDate=(new Date(f.entities[entity].created)).toUTCString()}a.activities=f.entities;if(typeof(d)==="function"){d(e,f,f.entities)}})};Usergrid.Entity.prototype.getFollowing=function(d){var a=this;var c="users/"+this.get("uuid")+"/following";var b={method:"GET",endpoint:c};this._client.request(b,function(e,f){if(e&&a._client.logging){console.log("could not get user following")}for(entity in f.entities){f.entities[entity].createdDate=(new Date(f.entities[entity].created)).toUTCString();var g=a._client.getDisplayImage(f.entities[entity].email,f.entities[entity].picture);f.entities[entity]._portal_image_icon=g}a.following=f.entities;if(typeof(d)==="function"){d(e,f,f.entities)}})};Usergrid.Entity.prototype.getFollowers=function(d){var a=this;var c="users/"+this.get("uuid")+"/followers";var b={method:"GET",endpoint:c};this._client.request(b,function(e,f){if(e&&a._client.logging){console.log("could not get user followers")}for(entity in f.entities){f.entities[entity].createdDate=(new Date(f.entities[entity].created)).toUTCString();var g=a._client.getDisplayImage(f.entities[entity].email,f.entities[entity].picture);f.entities[entity]._portal_image_icon=g}a.followers=f.entities;if(typeof(d)==="function"){d(e,f,f.entities)}})};Usergrid.Entity.prototype.getRoles=function(d){var a=this;var c=this.get("type")+"/"+this.get("uuid")+"/roles";var b={method:"GET",endpoint:c};this._client.request(b,function(e,f){if(e&&a._client.logging){console.log("could not get user roles")}a.roles=f.entities;if(typeof(d)==="function"){d(e,f,f.entities)}})};Usergrid.Entity.prototype.getPermissions=function(d){var a=this;var c=this.get("type")+"/"+this.get("uuid")+"/permissions";var b={method:"GET",endpoint:c};this._client.request(b,function(g,m){if(g&&a._client.logging){console.log("could not get user permissions")}var p=[];if(m.data){var r=m.data;var o=0;for(var n in r){o++;var h=r[n];var l=h.split(":");var s="";var q=l[0];if(l.length>1){s=l[0];q=l[1]}s.replace("*","get,post,put,delete");var e=s.split(",");var f={};f.get="no";f.post="no";f.put="no";f["delete"]="no";for(var k in e){f[e[k]]="yes"}p.push({operations:f,path:q,perm:h})}}a.permissions=p;if(typeof(d)==="function"){d(g,m,m.entities)}})};Usergrid.Entity.prototype.disconnect=function(a,d,h){var k=this;var f=d.get("type");var c=this.getEntityId(d);if(!c){if(typeof(h)==="function"){var g="Error trying to delete object - no uuid specified.";if(k._client.logging){console.log(g)}h(true,g)}return}var e=this.get("type");var b=this.getEntityId(this);if(!b){if(typeof(h)==="function"){var g="Error in connect - no uuid specified.";if(k._client.logging){console.log(g)}h(true,g)}return}var j=e+"/"+b+"/"+a+"/"+f+"/"+c;var l={method:"DELETE",endpoint:j};this._client.request(l,function(m,n){if(m&&k._client.logging){console.log("entity could not be disconnected")}if(typeof(h)==="function"){h(m,n)}})};Usergrid.Collection=function(b,e){if(b){this._client=b.client;this._type=b.type;this.qs=b.qs||{};this._list=b.list||[];this._iterator=b.iterator||-1;this._previous=b.previous||[];this._next=b.next||null;this._cursor=b.cursor||null;if(b.list){var d=b.list.length;for(var c=0;c<d;c++){var a=this._client.restoreEntity(b.list[c]);this._list[c]=a}}}if(e){this.fetch(e)}};Usergrid.Collection.prototype.serialize=function(){var c={};c.type=this._type;c.qs=this.qs;c.iterator=this._iterator;c.previous=this._previous;c.next=this._next;c.cursor=this._cursor;this.resetEntityPointer();var b=0;c.list=[];while(this.hasNextEntity()){var a=this.getNextEntity();c.list[b]=a.serialize();b++}c=JSON.stringify(c);return c};Usergrid.Collection.prototype.addCollection=function(b,a,d){self=this;a.client=this._client;var c=new Usergrid.Collection(a,function(g,h){if(typeof(d)==="function"){c.resetEntityPointer();while(c.hasNextEntity()){var e=c.getNextEntity();var f=e.get("email");var j=self._client.getDisplayImage(e.get("email"),e.get("picture"));e._portal_image_icon=j}self[b]=c;d(g,c)}})};Usergrid.Collection.prototype.fetch=function(d){var b=this;var a=this.qs;if(this._cursor){a.cursor=this._cursor}else{delete a.cursor}var c={method:"GET",endpoint:this._type,qs:this.qs};this._client.request(c,function(g,h){if(g&&b._client.logging){console.log("error getting collection")}else{var o=h.cursor||null;b.saveCursor(o);if(h.entities){b.resetEntityPointer();var l=h.entities.length;b._list=[];for(var j=0;j<l;j++){var e=h.entities[j].uuid;if(e){var f=h.entities[j]||{};b._baseType=h.entities[j].type;f.type=b._type;var n={type:b._type,client:b._client,uuid:e,data:f};var m=new Usergrid.Entity(n);m._json=JSON.stringify(f,null,2);var k=b._list.length;b._list[k]=m}}}}if(typeof(d)==="function"){d(g,h)}})};Usergrid.Collection.prototype.addEntity=function(b,c){var a=this;b.type=this._type;this._client.createEntity(b,function(f,d){if(!f){var e=a._list.length;a._list[e]=d}if(typeof(c)==="function"){c(f,d)}})};Usergrid.Collection.prototype.addExistingEntity=function(a){var b=this._list.length;this._list[b]=a};Usergrid.Collection.prototype.destroyEntity=function(b,c){var a=this;b.destroy(function(d,e){if(d){if(a._client.logging){console.log("could not destroy entity")}if(typeof(c)==="function"){c(d,e)}}else{a.fetch(c)}});this.removeEntity(b)};Usergrid.Collection.prototype.removeEntity=function(a){var b=a.get("uuid");for(key in this._list){var c=this._list[key];if(c.get("uuid")===b){return this._list.splice(key,1)}}return false};Usergrid.Collection.prototype.getEntityByUUID=function(c,e){for(key in this._list){var d=this._list[key];if(d.get("uuid")===c){return d}}var b={data:{type:this._type,uuid:c},client:this._client};var a=new Usergrid.Entity(b);a.fetch(e)};Usergrid.Collection.prototype.getFirstEntity=function(){var a=this._list.length;if(a>0){return this._list[0]}return null};Usergrid.Collection.prototype.getLastEntity=function(){var a=this._list.length;if(a>0){return this._list[a-1]}return null};Usergrid.Collection.prototype.hasNextEntity=function(){var a=this._iterator+1;var b=(a>=0&&a<this._list.length);if(b){return true}return false};Usergrid.Collection.prototype.getNextEntity=function(){this._iterator++;var a=(this._iterator>=0&&this._iterator<=this._list.length);if(a){return this._list[this._iterator]}return false};Usergrid.Collection.prototype.hasPrevEntity=function(){var b=this._iterator-1;var a=(b>=0&&b<this._list.length);if(a){return true}return false};Usergrid.Collection.prototype.getPrevEntity=function(){this._iterator--;var a=(this._iterator>=0&&this._iterator<=this._list.length);if(a){return this.list[this._iterator]}return false};Usergrid.Collection.prototype.resetEntityPointer=function(){this._iterator=-1};Usergrid.Collection.prototype.saveCursor=function(a){if(this._next!==a){this._next=a}};Usergrid.Collection.prototype.resetPaging=function(){this._previous=[];this._next=null;this._cursor=null};Usergrid.Collection.prototype.hasNextPage=function(){return(this._next)};Usergrid.Collection.prototype.getNextPage=function(a){if(this.hasNextPage()){this._previous.push(this._cursor);this._cursor=this._next;this._list=[];this.fetch(a)}};Usergrid.Collection.prototype.hasPreviousPage=function(){return(this._previous.length>0)};Usergrid.Collection.prototype.getPreviousPage=function(a){if(this.hasPreviousPage()){this._next=null;this._cursor=this._previous.pop();this._list=[];this.fetch(a)}};Usergrid.Group=function(a,b){this._path=a.path;this._list=[];this._client=a.client;this._data=a.data||{};this._data.type="groups"};Usergrid.Group.prototype=new Usergrid.Entity();Usergrid.Group.prototype.fetch=function(f){var a=this;var e="groups/"+this._path;var d="groups/"+this._path+"/users";var b={method:"GET",endpoint:e};var c={method:"GET",endpoint:d};this._client.request(b,function(h,j){if(h){if(a._client.logging){console.log("error getting group")}if(typeof(f)==="function"){f(h,j)}}else{if(j.entities){var g=j.entities[0];a._data=g||{};a._client.request(c,function(p,q){if(p&&a._client.logging){console.log("error getting group users")}else{if(q.entities){var o=q.entities.length;a._list=[];for(var l=0;l<o;l++){var n=q.entities[l].uuid;if(n){var r=q.entities[l]||{};var m={type:r.type,client:a._client,uuid:n,data:r};var k=new Usergrid.Entity(m);a._list.push(k)}}}}if(typeof(f)==="function"){f(p,q,a._list)}})}}})};Usergrid.Group.prototype.members=function(a){if(typeof(a)==="function"){a(null,this._list)}};Usergrid.Group.prototype.add=function(b,c){var a=this;var b={method:"POST",endpoint:"groups/"+this._path+"/users/"+b.user.get("username")};this._client.request(b,function(d,e){if(d){if(typeof(c)==="function"){c(d,e,e.entities)}}else{a.fetch(c)}})};Usergrid.Group.prototype.remove=function(b,c){var a=this;var b={method:"DELETE",endpoint:"groups/"+this._path+"/users/"+b.user.get("username")};this._client.request(b,function(d,e){if(d){if(typeof(c)==="function"){c(d,e)}}else{a.fetch(c)}})};Usergrid.Group.prototype.feed=function(d){var a=this;var c="groups/"+this._path+"/feed";var b={method:"GET",endpoint:c};this._client.request(b,function(e,f){if(e&&a.logging){console.log("error trying to log user in")}if(typeof(d)==="function"){d(e,f,f.entities)}})};Usergrid.Group.prototype.createGroupActivity=function(c,d){var b=c.user;var c={actor:{displayName:b.get("username"),uuid:b.get("uuid"),username:b.get("username"),email:b.get("email"),picture:b.get("picture"),image:{duration:0,height:80,url:b.get("picture"),width:80},},verb:"post",content:c.content};c.type="groups/"+this._path+"/activities";var c={client:this._client,data:c};var a=new Usergrid.Entity(c);a.save(function(e,f){if(typeof(d)==="function"){d(e,a)}})};function isUUID(a){var b=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;if(!a){return false}return b.test(a)}function encodeParams(d){tail=[];var b=[];if(d instanceof Array){for(i in d){b=d[i];if((b instanceof Array)&&(b.length>1)){tail.push(b[0]+"="+encodeURIComponent(b[1]))}}}else{for(var a in d){if(d.hasOwnProperty(a)){var c=d[a];if(c instanceof Array){for(i in c){b=c[i];tail.push(a+"="+encodeURIComponent(b))}}else{tail.push(a+"="+encodeURIComponent(c))}}}}return tail.join("&")};