Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions Parse/Internal/Encoding/ParseDecoder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,8 @@ public object Decode(object data) {
}

if (typeString == "Object") {
var output = ParseObject.CreateWithoutData(dict["className"] as string, null);
output.HandleFetchResult(ParseObjectCoder.Instance.Decode(dict, this));
return output;
var state = ParseObjectCoder.Instance.Decode(dict, this);
return ParseObject.FromState<ParseObject>(state, dict["className"] as string);
}

if (typeString == "Relation") {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@ public Task<ParseInstallation> GetAsync(CancellationToken cancellationToken) {
ParseInstallation installation = null;
if (installationDataString != null) {
var installationData = ParseClient.DeserializeJsonString(installationDataString);
installation = ParseObject.CreateWithoutData<ParseInstallation>(null);
installation.HandleFetchResult(ParseObjectCoder.Instance.Decode(installationData, ParseDecoder.Instance));
var state = ParseObjectCoder.Instance.Decode(installationData, ParseDecoder.Instance);
installation = ParseObject.FromState<ParseInstallation>(state, "_Installation");
} else {
installation = ParseObject.Create<ParseInstallation>();
installation.SetIfDifferent("installationId" , installationIdController.Get().ToString());
Expand Down
4 changes: 2 additions & 2 deletions Parse/Internal/User/Controller/ParseCurrentUserController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ public Task<ParseUser> GetAsync(CancellationToken cancellationToken) {
ParseUser user = null;
if (userDataString != null) {
var userData = Json.Parse(userDataString) as IDictionary<string, object>;
user = ParseObject.CreateWithoutData<ParseUser>(null);
user.HandleFetchResult(ParseObjectCoder.Instance.Decode(userData, ParseDecoder.Instance));
var state = ParseObjectCoder.Instance.Decode(userData, ParseDecoder.Instance);
user = ParseObject.FromState<ParseUser>(state, "_User");
}

CurrentUser = user;
Expand Down
6 changes: 2 additions & 4 deletions Parse/Public/ParseSession.cs
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,7 @@ public static Task<ParseSession> GetCurrentSessionAsync(CancellationToken cancel
}

return SessionController.GetSessionAsync(sessionToken, cancellationToken).OnSuccess(t => {
ParseSession session = (ParseSession)ParseObject.CreateWithoutData<ParseSession>(null);
session.HandleFetchResult(t.Result);
ParseSession session = ParseObject.FromState<ParseSession>(t.Result, "_Session");
return session;
});
}).Unwrap();
Expand All @@ -87,8 +86,7 @@ internal static Task<string> UpgradeToRevocableSessionAsync(string sessionToken,
}

return SessionController.UpgradeToRevocableSessionAsync(sessionToken, cancellationToken).OnSuccess(t => {
var session = (ParseSession)ParseObject.CreateWithoutData<ParseSession>(null);
session.HandleFetchResult(t.Result);
ParseSession session = ParseObject.FromState<ParseSession>(t.Result, "_Session");
return session.SessionToken;
});
}
Expand Down
9 changes: 3 additions & 6 deletions Parse/Public/ParseUser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -213,8 +213,7 @@ public static Task<ParseUser> LogInAsync(string username,
string password,
CancellationToken cancellationToken) {
return UserController.LogInAsync(username, password, cancellationToken).OnSuccess(t => {
var user = (ParseUser)ParseObject.CreateWithoutData<ParseUser>(null);
user.HandleFetchResult(t.Result);
ParseUser user = ParseObject.FromState<ParseUser>(t.Result, "_User");
return SaveCurrentUserAsync(user).OnSuccess(_ => user);
}).Unwrap();
}
Expand All @@ -238,8 +237,7 @@ public static Task<ParseUser> BecomeAsync(string sessionToken) {
/// <returns>The user if authorization was successful</returns>
public static Task<ParseUser> BecomeAsync(string sessionToken, CancellationToken cancellationToken) {
return UserController.GetUserAsync(sessionToken, cancellationToken).OnSuccess(t => {
var user = (ParseUser)ParseObject.CreateWithoutData<ParseUser>(null);
user.HandleFetchResult(t.Result);
ParseUser user = ParseObject.FromState<ParseUser>(t.Result, "_User");
return SaveCurrentUserAsync(user).OnSuccess(_ => user);
}).Unwrap();
}
Expand Down Expand Up @@ -592,8 +590,7 @@ internal static Task<ParseUser> LogInWithAsync(string authType,
ParseUser user = null;

return UserController.LogInAsync(authType, data, cancellationToken).OnSuccess(t => {
user = (ParseUser)ParseObject.CreateWithoutData<ParseUser>(null);
user.HandleFetchResult(t.Result);
user = ParseObject.FromState<ParseUser>(t.Result, "_User");

lock (user.mutex) {
if (user.AuthData == null) {
Expand Down