import java.util.List;
import java.util.Map;
+import org.evergreen.android.globals.Utils;
import org.opensrf.Method;
import org.opensrf.net.http.GatewayRequest;
import org.opensrf.net.http.HttpConnection;
import org.opensrf.net.http.HttpRequest;
import org.opensrf.util.OSRFObject;
-import android.content.SharedPreferences;
-import android.preference.PreferenceManager;
-
/**
* The Class AuthenticateUser.
*/
*/
private String authenticateInit() {
- Method method = new Method(METHOD_AUTH_INIT);
-
- method.addParam(userName);
-
- // sync test
- HttpRequest req = new GatewayRequest(conn, SERVICE_AUTH, method).send();
- Object resp;
-
String seed = null;
-
- while ((resp = req.recv()) != null) {
- System.out.println("Sync Response: " + resp);
- seed = resp.toString();
- }
+
+ Object resp = (Object) Utils.doRequest(conn, SERVICE_AUTH, METHOD_AUTH_INIT, new Object[]{userName});
+ seed = resp.toString();
System.out.println("Seed " + seed);
String hash = md5(seed+md5(password));
System.out.println("Hash " + hash);
- Method method = new Method(METHOD_AUTH_COMPLETE);
-
HashMap<String,String> complexParam = new HashMap<String, String>();
//TODO parameter for user login
complexParam.put("type", "opac");
complexParam.put("username", userName);
complexParam.put("password", hash);
-
- method.addParam(complexParam);
System.out.println("Compelx param " + complexParam);
- // sync test
- HttpRequest req = new GatewayRequest(conn, SERVICE_AUTH, method).send();
- Object resp;
+ Object resp = Utils.doRequest(conn, SERVICE_AUTH, METHOD_AUTH_COMPLETE, new Object[]{complexParam});
-
- while ((resp = req.recv()) != null) {
- System.out.println("Sync Response: " + resp);
-
String queryResult = ((Map<String,String>) resp).get("textcode");
System.out.println("Result " + queryResult);
return true;
}
- }
return false;
//------------------------Checked Out Items Section -------------------------//
public void getItemsCheckedOut(){
-
- Method method = new Method(METHOD_FETCH_CHECKED_OUT_SUM);
- method.addParam(authToken);
- method.addParam(userID);
-
- //sync request
- HttpRequest req = new GatewayRequest(conn, SERVICE_ACTOR, method).send();
- Object resp;
-
-
ArrayList<OSRFObject> long_overdue = new ArrayList<OSRFObject>();
ArrayList<OSRFObject> claims_returned = new ArrayList<OSRFObject>();
ArrayList<OSRFObject> lost = new ArrayList<OSRFObject>();
List<String> claims_returned_id;
List<String> lost_id;
List<String> out_id;
- while ((resp = req.recv()) != null) {
- System.out.println("Sync Response: " + resp);
-
+
+ Object resp = Utils.doRequest(conn, SERVICE_ACTOR, METHOD_FETCH_CHECKED_OUT_SUM, new Object[]{authToken, userID});
+
long_overdue_id = (List<String>)((Map<String,?>)resp).get("long_overdue");
claims_returned_id = (List<String>)((Map<String,?>)resp).get("claims_returned");
lost_id = (List<String>)((Map<String,?>)resp).get("lost");
//System.out.println(out.get(i));
long_overdue.add(retrieveCircRecord(long_overdue_id.get(i)));
}
- }
+
}
/* Fetch info for Checked Out Items
* It uses two methods : open-ils.search.biblio.mods_from_copy or in case
* @returns : "circ" OSRFObject
*/
private OSRFObject retrieveCircRecord(String id){
-
- Method method = new Method(METHOD_FETCH_CIRC_BY_ID);
- method.addParam(authToken);
- method.addParam(id);
-
- //sync request
- HttpRequest req = new GatewayRequest(conn, SERVICE_CIRC, method).send();
- Object resp;
-
- while ((resp = req.recv()) != null) {
- System.out.println("Sync Response: " + resp);
- OSRFObject circ = (OSRFObject) resp;
- return circ;
- }
-
- return null;
+ OSRFObject circ = (OSRFObject) Utils.doRequest(conn, SERVICE_CIRC, METHOD_FETCH_CIRC_BY_ID, new Object[]{authToken,id});
+ return circ;
}
private OSRFObject fetchModsFromCopy(String target_copy){
-
- Method method = new Method(METHOD_FETCH_MODS_FROM_COPY);
- method.addParam(target_copy);
-
- //sync request
- HttpRequest req = new GatewayRequest(conn, SERVICE_SEARCH, method).send();
- Object resp;
-
- while ((resp = req.recv()) != null) {
- System.out.println("Sync Response: " + resp);
- OSRFObject mvr = (OSRFObject) resp;
-
- return mvr;
- }
-
- return null;
+ //sync request
+ OSRFObject mvr = (OSRFObject) Utils.doRequest(conn, SERVICE_SEARCH, METHOD_FETCH_MODS_FROM_COPY, new Object[]{target_copy});
+
+ return mvr;
}
private OSRFObject fetchAssetCopy(String target_copy){
- Method method = new Method(METHOD_FETCH_COPY);
-
- method.addParam(target_copy);
-
- //sync request
- HttpRequest req = new GatewayRequest(conn, SERVICE_SEARCH, method).send();
- Object resp;
-
- while ((resp = req.recv()) != null) {
- System.out.println("Sync Response: " + resp);
- OSRFObject acp = (OSRFObject) resp;
-
- return acp;
- }
+ OSRFObject acp = (OSRFObject) Utils.doRequest(conn, SERVICE_SEARCH, METHOD_FETCH_COPY, new Object[]{target_copy});
- return null;
+ return acp;
}
/* Method used to renew a circulation record based on target_copy_id
* Returns many objects, don't think they are needed
*/
private void renewCirc(Integer target_copy){
- Method method = new Method(METHOD_RENEW_CIRC);
-
HashMap<String,Integer> complexParam = new HashMap<String, Integer>();
complexParam.put("patron", this.userID);
complexParam.put("copyid", target_copy);
complexParam.put("opac_renewal", 1);
-
- method.addParam(complexParam);
- //sync request
- HttpRequest req = new GatewayRequest(conn, SERVICE_CIRC, method).send();
- Object resp;
-
- while ((resp = req.recv()) != null) {
- System.out.println("Sync Response: " + resp);
- OSRFObject a_lot = (OSRFObject) resp;
-
- }
+ OSRFObject a_lot = (OSRFObject) Utils.doRequest(conn, SERVICE_CIRC, METHOD_RENEW_CIRC, new Object[]{complexParam});
+
}
//------------------------Holds Section --------------------------------------//
public Object fetchOrgSettings(Integer org_id, String setting){
- Method method = new Method(METHOD_FETCH_ORG_SETTINGS);
-
- method.addParam(org_id);
- method.addParam(setting);
+ OSRFObject response = (OSRFObject) Utils.doRequest(conn, SERVICE_ACTOR, METHOD_FETCH_ORG_SETTINGS, new Object[]{org_id,setting});
+ return response;
- //sync request
- HttpRequest req = new GatewayRequest(conn, SERVICE_ACTOR, method).send();
- Object resp;
-
- while ((resp = req.recv()) != null) {
- System.out.println("Sync Response: " + resp);
- //TODO Do something with the property
- OSRFObject response = (OSRFObject) resp;
- return response;
- }
- return null;
}
public void getHolds(){
-
- Method method = new Method(METHOD_FETCH_HOLDS);
-
- method.addParam(authToken);
- method.addParam(userID);
-
- //sync request
- HttpRequest req = new GatewayRequest(conn, SERVICE_CIRC, method).send();
- Object resp;
List<OSRFObject> listHoldsAhr = null;
//status of holds, fields like : potential_copies, status, total_holds, queue_position, estimated_wait
List<HashMap<String,Integer>> listHoldsStatus = null;
- while ((resp = req.recv()) != null) {
- System.out.println("Sync Response: " + resp);
- //list of ahr objects
- listHoldsAhr = (List<OSRFObject>) resp;
-
- }
+ listHoldsAhr = (List<OSRFObject>) Utils.doRequest(conn, SERVICE_CIRC, METHOD_FETCH_HOLDS, new Object[]{authToken,userID});
for(int i=0;i<listHoldsAhr.size();i++){
fetchHoldTitleInfo(listHoldsAhr.get(i));
if(holdType.equals("M"))
method = METHOD_FETCH_RMODS;
- holdInfo = doRequest(SERVICE_SEARCH, method, new Object[]{holdArhObject.get("target")});
+ holdInfo = Utils.doRequest(conn,SERVICE_SEARCH, method, new Object[]{holdArhObject.get("target")});
}
else{
Integer call_number = copyObject.getInt("call_number");
if(call_number != null){
- OSRFObject volume = (OSRFObject) doRequest(SERVICE_CIRC, METHOD_FETCH_VOLUME, new Object[]{copyObject.getInt("call_number")});
+ OSRFObject volume = (OSRFObject) Utils.doRequest(conn,SERVICE_CIRC, METHOD_FETCH_VOLUME, new Object[]{copyObject.getInt("call_number")});
//in volume object : record
}
else
if(type.equals("V")){
//fetch_volume
- OSRFObject volume = (OSRFObject) doRequest(SERVICE_CIRC, METHOD_FETCH_VOLUME, new Object[]{hold.getInt("target")});
+ OSRFObject volume = (OSRFObject) Utils.doRequest(conn,SERVICE_CIRC, METHOD_FETCH_VOLUME, new Object[]{hold.getInt("target")});
//in volume object : record
}
else
if(type.equals("I")){
- OSRFObject issuance = (OSRFObject) doRequest(SERVICE_SERIAL, METHOD_FETCH_ISSUANCE, new Object[]{hold.getInt("target")});
+ OSRFObject issuance = (OSRFObject) Utils.doRequest(conn,SERVICE_SERIAL, METHOD_FETCH_ISSUANCE, new Object[]{hold.getInt("target")});
}
else
if(type.equals("P")){
param.put("query",queryParam);
//returns mvr object
- OSRFObject part = (OSRFObject) doRequest(SERVICE_FIELDER,"open-ils.fielder.bmp.atomic",new Object[]{});
+ OSRFObject part = (OSRFObject) Utils.doRequest(conn,SERVICE_FIELDER,"open-ils.fielder.bmp.atomic",new Object[]{});
}
return null;
Integer hold_id = hold.getInt("id");
// MAP : potential_copies, status, total_holds, queue_position, estimated_wait
- Object hold_status = doRequest(SERVICE_CIRC, METHOD_FETCH_HOLD_STATUS, new Object[]{authToken,hold_id});
+ Object hold_status = Utils.doRequest(conn,SERVICE_CIRC, METHOD_FETCH_HOLD_STATUS, new Object[]{authToken,hold_id});
return hold_status;
}
Integer hold_id = hold.getInt("id");
- Object response = doRequest(SERVICE_CIRC, METHOD_CANCEL_HOLD, new Object[]{authToken,hold_id});
+ Object response = Utils.doRequest(conn,SERVICE_CIRC, METHOD_CANCEL_HOLD, new Object[]{authToken,hold_id});
return response;
}
public Object updateHold(OSRFObject newHoldObject){
//TODO verify that object is correct passed to the server
- Object response = doRequest(SERVICE_CIRC, METHOD_UPDATE_HOLD, new Object[]{authToken,newHoldObject});
+ Object response = Utils.doRequest(conn,SERVICE_CIRC, METHOD_UPDATE_HOLD, new Object[]{authToken,newHoldObject});
return response;
}
public Object createHold(OSRFObject newHoldObject){
- Object response = doRequest(SERVICE_CIRC, METHOD_CREATE_HOLD, new Object[]{authToken,newHoldObject});
+ Object response = Utils.doRequest(conn,SERVICE_CIRC, METHOD_CREATE_HOLD, new Object[]{authToken,newHoldObject});
return response;
}
public Object isHoldPossible(HashMap<String,?> valuesHold){
- Object response = doRequest(SERVICE_CIRC, METHOD_VERIFY_HOLD_POSSIBLE, new Object[]{authToken,valuesHold});
+ Object response = Utils.doRequest(conn,SERVICE_CIRC, METHOD_VERIFY_HOLD_POSSIBLE, new Object[]{authToken,valuesHold});
return response;
}
public OSRFObject getFinesSummary(){
- OSRFObject finesSummary = (OSRFObject) doRequest(SERVICE_ACTOR, METHOD_FETCH_FINES_SUMMARY, new Object[]{authToken,userID});
+ OSRFObject finesSummary = (OSRFObject) Utils.doRequest(conn,SERVICE_ACTOR, METHOD_FETCH_FINES_SUMMARY, new Object[]{authToken,userID});
return finesSummary;
}
private Object getTransactions(){
- Object transactions = doRequest(SERVICE_ACTOR, METHOD_FETCH_TRANSACTIONS, new Object[]{authToken,userID});
+ Object transactions = Utils.doRequest(conn,SERVICE_ACTOR, METHOD_FETCH_TRANSACTIONS, new Object[]{authToken,userID});
return transactions;
}
public Object getBookbags(){
- Object response = doRequest(SERVICE_ACTOR, METHOD_FLESH_CONTAINERS, new Object[]{authToken,userID,"biblio","bookbag"});
+ Object response = Utils.doRequest(conn,SERVICE_ACTOR, METHOD_FLESH_CONTAINERS, new Object[]{authToken,userID,"biblio","bookbag"});
List<OSRFObject> bookbags = (List<OSRFObject>)response;
private Object getBookbagContent(Integer bookbagID){
- return doRequest(SERVICE_ACTOR, METHOD_FLESH_PUBLIC_CONTAINER, new Object[]{authToken,"biblio",bookbagID});
- }
-
- private Object doRequest(String service, String methodName, Object[] params){
-
-
- //TODO check params and throw errors
- Method method = new Method(methodName);
-
- for(int i=0;i<params.length;i++)
- method.addParam(params[i]);
-
- //sync request
- HttpRequest req = new GatewayRequest(conn, service, method).send();
- Object resp;
-
- while ((resp = req.recv()) != null) {
- System.out.println("Sync Response: " + resp);
- Object response = (Object) resp;
- return response;
- }
- return null;
-
+ return Utils.doRequest(conn,SERVICE_ACTOR, METHOD_FLESH_PUBLIC_CONTAINER, new Object[]{authToken,"biblio",bookbagID});
}
}