@@ -83,33 +83,46 @@ class ParseUser extends ParseObject implements ParseCloneable {
83
83
///
84
84
/// Current user is stored locally, but in case of a server update [bool]
85
85
/// fromServer can be called and an updated version of the [User] object will be
86
- /// returned
87
- static Future <ParseResponse > getCurrentUserFromServer (
88
- {String token, bool debug, ParseHTTPClient client}) async {
86
+ /// returned.
87
+ ///
88
+ /// NOTE: If using custom ParseUserObject create instance and user [getUpdatedUser]
89
+ static Future <ParseResponse > getCurrentUserFromServer (String token,
90
+ {bool debug, ParseHTTPClient client}) async {
91
+ final ParseUser user = _getEmptyUser ();
92
+ user.sessionToken = token;
93
+ return user.getUpdatedUser (debug: debug, client: client);
94
+ }
95
+
96
+ /// Get the updated version of the user from the server
97
+ ///
98
+ /// Uses token to get the latest version of the user. Prefer this to [getCurrentUserFromServer]
99
+ /// if using custom ParseUser object
100
+ Future <ParseResponse > getUpdatedUser (
101
+ {bool debug, ParseHTTPClient client}) async {
89
102
final bool _debug = isDebugEnabled (objectLevelDebug: debug);
90
103
final ParseHTTPClient _client = client ??
91
104
ParseHTTPClient (
92
105
sendSessionId: true ,
93
106
securityContext: ParseCoreData ().securityContext);
94
107
95
108
// We can't get the current user and session without a sessionId
96
- if ((ParseCoreData ().sessionId == null ) && (token == null )) {
109
+ if ((ParseCoreData ().sessionId == null ) && (sessionToken == null )) {
97
110
return null ;
98
111
}
99
112
100
113
final Map <String , String > headers = < String , String > {};
101
- if (token != null ) {
102
- headers[keyHeaderSessionToken] = token ;
114
+ if (sessionToken != null ) {
115
+ headers[keyHeaderSessionToken] = sessionToken ;
103
116
}
104
117
105
118
try {
106
119
final Uri url = getSanitisedUri (_client, '$keyEndPointUserName ' );
107
120
final Response response = await _client.get (url, headers: headers);
108
- return await _handleResponse (_getEmptyUser () , response,
109
- ParseApiRQ .currentUser, _debug, _getEmptyUser () .parseClassName);
121
+ return await _handleResponse (this , response,
122
+ ParseApiRQ .currentUser, _debug, this .parseClassName);
110
123
} on Exception catch (e) {
111
124
return handleException (
112
- e, ParseApiRQ .currentUser, _debug, _getEmptyUser (). parseClassName);
125
+ e, ParseApiRQ .currentUser, _debug, parseClassName);
113
126
}
114
127
}
115
128
0 commit comments