Skip to content

Commit e58a7a9

Browse files
committed
Release/1.0.25 - Add ParseUser update method
1 parent eae57f5 commit e58a7a9

File tree

1 file changed

+22
-9
lines changed

1 file changed

+22
-9
lines changed

lib/src/objects/parse_user.dart

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)