public static void LoginAsGuestInBackground(Action <BacktoryResponse <LoginResponse> > callback) { // Simplifying this by removing "BacktoryUser" type parameter leads to error though compiler suggests, but why?! Backtory.RestClient.ExecuteAsync <BacktoryUser>(GuestRegisterRequest(), response => { // **this part will be called on background thread! (Since we're using restsharp async method)** // if guest register failed don't proceed to login if (!response.IsSuccessful()) { Backtory.Dispatch(() => BacktoryResponse <LoginResponse> .Unknown(response.ErrorMessage)); return; } var guest = response.Data; var loginResponse = Backtory.Execute <LoginResponse>(LoginRequest(guest.Username, guest.Password)); if (loginResponse.Successful) { DispatchSaveCurrentUser(guest); DispatchSaveGuestPassword(guest.Password); DispatchSaveLoginInfo(loginResponse.Body); } Backtory.Dispatch(() => callback(loginResponse)); }); }
public BacktoryResponse <object> ChangePassword(string oldPassword, string newPassword) { if (Guest) { throw new InvalidOperationException("guest user con not change it's password"); } return(Backtory.Execute <object>(ChangePassRequest(oldPassword, newPassword))); }
public BacktoryResponse <BacktoryUser> UpdateUser() { var updateResponse = Backtory.Execute <BacktoryUser>(UpdateUserRequest(this)); if (updateResponse.Successful) { DispatchSaveCurrentUser(updateResponse.Body); } return(updateResponse); }
public BacktoryResponse <BacktoryUser> CompleteRegistration(GuestCompletionParam guestRegistrationParam) { var completeRegResponse = Backtory.Execute <BacktoryUser>(CompleteRegRequest(guestRegistrationParam)); if (completeRegResponse.Successful) { DispatchSaveCurrentUser(completeRegResponse.Body); } return(completeRegResponse); }
public static BacktoryResponse <LoginResponse> LoginAsGuest() { var regResponse = Backtory.Execute <BacktoryUser>(GuestRegisterRequest()); if (!regResponse.Successful) { return(BacktoryResponse.Error <BacktoryUser, LoginResponse>(regResponse)); } var guest = regResponse.Body; var loginResponse = Backtory.Execute <LoginResponse>(LoginRequest(guest.Username, guest.Password)); if (loginResponse.Successful) { DispatchSaveCurrentUser(guest); DispatchSaveGuestPassword(guest.Password); DispatchSaveLoginInfo(loginResponse.Body); } return(loginResponse); }
public static BacktoryResponse <LoginResponse> Login(string username, string password) { var loginResponse = Backtory.Execute <LoginResponse>(LoginRequest(username, password)); if (loginResponse.Successful) { var userResponse = Backtory.Execute <BacktoryUser>(UserByUsernameRequest(username, loginResponse.Body.AccessToken)); if (userResponse.Successful) { DispatchSaveCurrentUser(userResponse.Body); DispatchSaveLoginInfo(loginResponse.Body); } else { BacktoryResponse <LoginResponse> .Unknown(userResponse.Message); Debug.Log("error getting user info by username\n" + userResponse.Message); } } return(loginResponse); }
public static void Logout() { Backtory.Execute <object>(LogoutRequest(ClearStorageAndReturnRefreshToken())); }
internal static BacktoryResponse <BacktoryUser> GetUserByUsername(string username) { return(Backtory.Execute <BacktoryUser>(UserByUsernameRequest(username))); }