@@ -84,33 +84,46 @@ class ParseUser extends ParseObject implements ParseCloneable {
8484 ///
8585 /// Current user is stored locally, but in case of a server update [bool]
8686 /// fromServer can be called and an updated version of the [User] object will be
87- /// returned
88- static Future <ParseResponse > getCurrentUserFromServer (
89- {String token, bool debug, ParseHTTPClient client}) async {
87+ /// returned.
88+ ///
89+ /// NOTE: If using custom ParseUserObject create instance and user [getUpdatedUser]
90+ static Future <ParseResponse > getCurrentUserFromServer (String token,
91+ {bool debug, ParseHTTPClient client}) async {
92+ final ParseUser user = _getEmptyUser ();
93+ user.sessionToken = token;
94+ return user.getUpdatedUser (debug: debug, client: client);
95+ }
96+
97+ /// Get the updated version of the user from the server
98+ ///
99+ /// Uses token to get the latest version of the user. Prefer this to [getCurrentUserFromServer]
100+ /// if using custom ParseUser object
101+ Future <ParseResponse > getUpdatedUser (
102+ {bool debug, ParseHTTPClient client}) async {
90103 final bool _debug = isDebugEnabled (objectLevelDebug: debug);
91104 final ParseHTTPClient _client = client ??
92105 ParseHTTPClient (
93106 sendSessionId: true ,
94107 securityContext: ParseCoreData ().securityContext);
95108
96109 // We can't get the current user and session without a sessionId
97- if ((ParseCoreData ().sessionId == null ) && (token == null )) {
110+ if ((ParseCoreData ().sessionId == null ) && (sessionToken == null )) {
98111 return null ;
99112 }
100113
101114 final Map <String , String > headers = < String , String > {};
102- if (token != null ) {
103- headers[keyHeaderSessionToken] = token ;
115+ if (sessionToken != null ) {
116+ headers[keyHeaderSessionToken] = sessionToken ;
104117 }
105118
106119 try {
107120 final Uri url = getSanitisedUri (_client, '$keyEndPointUserName ' );
108121 final Response response = await _client.get (url, headers: headers);
109- return await _handleResponse (_getEmptyUser () , response,
110- ParseApiRQ .currentUser, _debug, _getEmptyUser () .parseClassName);
122+ return await _handleResponse (this , response,
123+ ParseApiRQ .currentUser, _debug, this .parseClassName);
111124 } on Exception catch (e) {
112125 return handleException (
113- e, ParseApiRQ .currentUser, _debug, _getEmptyUser (). parseClassName);
126+ e, ParseApiRQ .currentUser, _debug, parseClassName);
114127 }
115128 }
116129
0 commit comments