Skip to content

Instantly share code, notes, and snippets.

@alin-turcu
Last active November 7, 2017 21:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alin-turcu/337686c53299e5ed89b59e1dd3b8d6d0 to your computer and use it in GitHub Desktop.
Save alin-turcu/337686c53299e5ed89b59e1dd3b8d6d0 to your computer and use it in GitHub Desktop.
import static rx.Observable.error;
import static rx.Observable.fromCallable;
import static rx.Observable.just;
import static rx.schedulers.Schedulers.io;
import com.groupon.grox.Action;
import com.groupon.grox.commands.rxjava1.Command;
import rx.Observable;
public class LoginCommand implements Command {
private LoginApiClient loginApiClient;
private String username;
private String password;
public LoginCommand(CharSequence username, CharSequence password, LoginApiClient loginApiClient){
this.username = username;
this.password = password;
this.loginApiClient = loginApiClient;
}
@Override
public Observable<? extends Action> actions() {
return just(LogInProgressAction).concatWith(performLoginRequest());
}
public Observable<? extends Action> performLoginRequest(){
return loginApiClient.performLogin(username, password)
.subscribeOn(io())
.map(LoginSuccessfulAction::new)
.cast(Action.class)
.onErrorReturn(LoginFailedAction::new)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment