package kornell.api.client;
import com.google.gwt.http.client.URL;
import kornell.core.to.RegistrationRequestTO;
import kornell.core.to.UserHelloTO;
import kornell.core.to.UserInfoTO;
import kornell.core.util.StringUtils;
public class UserClient extends RESTClient {
// TODO: Is this safe?
public void getUser(String userUUID, Callback<UserInfoTO> cb) {
GET("/user/get/" + userUUID).sendRequest(null, cb);
}
public void getUserHello(String name, String hostName, Callback<UserHelloTO> cb) {
//TODO: AUTHDEBUG Move this to server?
if(StringUtils.isNone(name)){
String[] dots = hostName.split("\\.");
if(dots.length > 0){
String id = dots[0];
String[] slashes = id.split("-");
if (slashes.length > 0) //@TODO and is followed by only numbers
name = slashes[0];
}
}
String path = "/user/login?" + (StringUtils.isSome(name) ? "name="+name : "hostName="+hostName);
GET(path).sendRequest(null, cb);
}
public void checkUser(String institutionUUID, String email, Callback<UserInfoTO> cb) {
GET("/user/check",institutionUUID,email).sendRequest(null, cb);
}
public void requestRegistration(RegistrationRequestTO registrationRequestTO, Callback<UserInfoTO> cb) {
PUT("/user/registrationRequest").withContentType(RegistrationRequestTO.TYPE).withEntityBody(registrationRequestTO).go(cb);
}
public void requestPasswordChange(String email, String institutionName, Callback<Void> cb) {
GET("/user/requestPasswordChange/" + URL.encodePathSegment(email) + "/" + institutionName).sendRequest(null, cb);
}
public void changePassword(String password, String passwordChangeUUID, Callback<UserInfoTO> cb) {
PUT("/user/resetPassword/" + passwordChangeUUID).sendRequest(password, cb);
}
public void changeTargetPassword(String targetPersonUUID, String password, Callback<Void> cb) {
PUT("/user/changePassword/" + targetPersonUUID).sendRequest(password, cb);
}
public void forcedPasswordChange(String username, String password, Callback<UserInfoTO> cb) {
PUT("/user/updatePassword/" + username).sendRequest(password, cb);
}
public void hasPowerOver(String targetPersonUUID, Callback<Boolean> cb) {
GET("/user/hasPowerOver/" + targetPersonUUID).sendRequest(null, cb);
}
public void updateUser(UserInfoTO userInfo, Callback<UserInfoTO> cb) {
PUT("/user/" + userInfo.getPerson().getUUID()).withContentType(UserInfoTO.TYPE).withEntityBody(userInfo).go(cb);
}
public void acceptTerms(Callback<UserInfoTO> cb) {
PUT("/user/acceptTerms").sendRequest(null, cb);
}
}