コード例 #1
0
    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));
        });
    }
コード例 #2
0
 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)));
 }
コード例 #3
0
    public BacktoryResponse <BacktoryUser> UpdateUser()
    {
        var updateResponse = Backtory.Execute <BacktoryUser>(UpdateUserRequest(this));

        if (updateResponse.Successful)
        {
            DispatchSaveCurrentUser(updateResponse.Body);
        }
        return(updateResponse);
    }
コード例 #4
0
    public BacktoryResponse <BacktoryUser> CompleteRegistration(GuestCompletionParam guestRegistrationParam)
    {
        var completeRegResponse = Backtory.Execute <BacktoryUser>(CompleteRegRequest(guestRegistrationParam));

        if (completeRegResponse.Successful)
        {
            DispatchSaveCurrentUser(completeRegResponse.Body);
        }
        return(completeRegResponse);
    }
コード例 #5
0
    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);
    }
コード例 #6
0
    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);
    }
コード例 #7
0
 public static void Logout()
 {
     Backtory.Execute <object>(LogoutRequest(ClearStorageAndReturnRefreshToken()));
 }
コード例 #8
0
 internal static BacktoryResponse <BacktoryUser> GetUserByUsername(string username)
 {
     return(Backtory.Execute <BacktoryUser>(UserByUsernameRequest(username)));
 }