package org.droidplanner.android.utils.connection;
import android.util.Log;
import com.geeksville.apiproxy.GCSHookImpl;
import com.geeksville.apiproxy.LoginFailedException;
import java.io.IOException;
/**
* Created by Fredia Huya-Kouadio on 1/22/15.
*/
public class DroneshareClient extends GCSHookImpl {
private static final String TAG = DroneshareClient.class.getSimpleName();
public static final int SIGNUP_SUCCESSFUL = 0;
public static final int SIGNUP_FAILED = 1;
public static final int SIGNUP_USERNAME_NOT_AVAILABLE = 2;
public boolean login(String login, String password) throws LoginFailedException {
try {
super.connect();
loginUser(login, password);
return true;
} catch (Exception e) {
Log.e(TAG, "Failed to connect due to " + e, e);
if(e instanceof LoginFailedException)
throw (LoginFailedException) e;
}
finally{
try {
super.close();
} catch (IOException e) {
Log.e(TAG, "Failed to close connection due to " + e, e);
}
}
return false;
}
public int signupUser(String login, String password, String email) throws LoginFailedException{
try{
super.connect();
if(isUsernameAvailable(login)) {
createUser(login, password, email);
return SIGNUP_SUCCESSFUL;
}
return SIGNUP_USERNAME_NOT_AVAILABLE;
}catch(Exception e){
Log.e(TAG, "Failed to sign up due to " + e, e);
if(e instanceof LoginFailedException)
throw (LoginFailedException) e;
}
finally{
try {
super.close();
} catch (IOException e) {
Log.e(TAG, "Failed to close connection due to " + e, e);
}
}
return SIGNUP_FAILED;
}
}