lundi 11 juillet 2016

Is doOnCompleted a valid way to handle token authentication?

I was wondering about token authentication with Retrofit/RxJava. I was refactoring my code to use a DataManager, such that the activity evokes a method in the presenter, the presenter subscribes to the datamanager.getTrips which is then responsible for the call to the api.

I want to make sure that my accesstoken is valid, and if it is not generate it first and then complete the task. Would doOnCompleted be a good way of achieving this or is there a better way?

/*In DataManager, service is the REST Interface*/
public Observable<VtTripResponseModel> getTrips(final String start, final String end, final String time, final String date){
        if(accessToken.isValid()){
            return service.getTrip(accessToken.getAccessString(),start,end,time,date,JSON_PARAM);
        }
        else{
            generateAccessToken().doOnCompleted(new Action0() {
                @Override
                public void call() {
                    getTrips(start, end, time, date);
                }
            });
        }

/*What do I return here? Since this will not be reached*/
    }

Aucun commentaire:

Enregistrer un commentaire