delight-im / Android-DDP

[UNMAINTAINED] Meteor's Distributed Data Protocol (DDP) for clients on Android
Apache License 2.0
274 stars 54 forks source link

Add convenience methods for "accounts-password" methods #14

Open ocram opened 9 years ago

ocram commented 9 years ago

Right now, the Meteor class already has convenience methods for the following two methods from the accounts-password package:

We should add further methods that wrap the following method calls:

FranciscoVictor commented 9 years ago

Hi there!

I had to code the changePassword convenience method on the application that I'm developing and it is declared as follows:

public void changePassword(final String currentPassword, final String newPassword, final ResultListener listener) {
        MeteorSingleton.getInstance().call("changePassword", new Object[]{currentPassword, newPassword}, listener);
}

Calling it this way:

changePassword(currentPassword, newPassword, new ResultListener() {
        @Override
        public void onSuccess(String result) {
        //TODO: Success logic goes here.
        System.out.println("Password changed: " + result);
        }

        @Override
        public void onError(String error, String reason, String details) {
        //TODO: Error logic goes here.
        System.out.println("Could not change password: " + error
                                        + " / " + reason + " / " + details);
        }
);

I make the necessary checks on the passwords before handling them to the method call.

I'm not a very experienced developer, but I thought that it would be nice to contribute to your project in some way.

Also, I think I will develop the forgotPassword and resetPassword methods in the future, since I'll need them too.

ocram commented 9 years ago

@FranciscoVictor Thank you, that was definitely helpful!

If you look at the login methods, you can see that they work in a similar way. Basically, one has to figure out which method name to call and then what parameters to pass.

Due to the lack of good documentation by Meteor for its DDP protocol, it's mainly trying what works.

So you tried your method above and it works correctly, right? So we can easily add it to the library soon :)

Feel free to share your implementations for the other methods as well when you do them.