package com.robonobo.midas.client;
import com.robonobo.core.api.model.User;
import com.robonobo.core.api.proto.CoreApi.UserMsg;
import com.robonobo.core.metadata.UserCallback;
import com.robonobo.midas.client.Params.Operation;
public class LoginRequest implements Request {
private MidasClientConfig cfg;
private String email;
private String password;
private UserCallback handler;
public LoginRequest(MidasClientConfig cfg, String email, String password, UserCallback handler) {
this.cfg = cfg;
this.email = email;
this.password = password;
this.handler = handler;
}
@Override
public int remaining() {
return (email == null) ? 0 : 1;
}
@Override
public Params getNextParams() {
Params p = new Params(Operation.Get, null, UserMsg.newBuilder(), cfg.getUserUrl(email), email);
p.username = email;
p.password = password;
email = null;
return p;
}
@Override
public void success(Object obj) {
UserMsg msg = (UserMsg) obj;
handler.success(new User(msg));
}
@Override
public void error(Params p, Exception e) {
handler.error(-1, e);
}
}