Moves request logic from pz2bean to individual commands
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / ServiceProxyExtensions.java
index c10c55e..6595059 100644 (file)
@@ -3,8 +3,6 @@ package com.indexdata.mkjsf.pazpar2;
 import java.io.IOException;\r
 import java.io.Serializable;\r
 import java.io.UnsupportedEncodingException;\r
-import java.util.ArrayList;\r
-import java.util.List;\r
 \r
 import javax.enterprise.context.SessionScoped;\r
 import javax.inject.Inject;\r
@@ -15,12 +13,10 @@ import org.apache.myfaces.custom.fileupload.UploadedFile;
 \r
 import com.indexdata.mkjsf.config.ConfigurationReader;\r
 import com.indexdata.mkjsf.pazpar2.commands.CommandParameter;\r
-import com.indexdata.mkjsf.pazpar2.commands.Pazpar2Commands;\r
 import com.indexdata.mkjsf.pazpar2.commands.sp.AuthCommand;\r
 import com.indexdata.mkjsf.pazpar2.commands.sp.InitDocUpload;\r
 import com.indexdata.mkjsf.pazpar2.data.ResponseDataObject;\r
 import com.indexdata.mkjsf.pazpar2.data.ResponseParser;\r
-import com.indexdata.mkjsf.pazpar2.data.Responses;\r
 import com.indexdata.mkjsf.pazpar2.data.sp.CategoriesResponse;\r
 import com.indexdata.mkjsf.pazpar2.data.sp.SpResponseDataObject;\r
 import com.indexdata.mkjsf.utils.Utils;\r
@@ -34,10 +30,7 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab
   private String initDocResponse = "";  \r
   private InitDocUpload initDocUpload; \r
     \r
-  @Inject ConfigurationReader configurator;  \r
-  @Inject Pz2Bean pz2;\r
-  @Inject Pazpar2Commands pzreq;\r
-  @Inject Responses pzresp;\r
+  @Inject ConfigurationReader configurator;    \r
     \r
   public ServiceProxyExtensions() {\r
     this.initDocUpload = new InitDocUpload(this);\r
@@ -45,26 +38,13 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab
     //stateMgr.addStateListener(this);\r
   }\r
      \r
-  public void authenticate() {\r
-    String command = "auth";\r
-    if (pzresp.getSp().getAuth().unsupportedCommand()) {\r
+  public void authenticate() {    \r
+    if (Pz2Bean.get().getPzresp().getSp().getAuth().unsupportedCommand()) {\r
       logger.warn("Running seemingly unsupported command [auth] against SP.");\r
     }\r
-    pz2.resetSearchAndRecordCommands();\r
-    pzresp.getSp().resetAuthAndBeyond(true);\r
-    AuthCommand auth = pzreq.getSp().getAuth();     \r
-    ClientCommandResponse commandResponse = pz2.getSpClient().send(auth);      \r
-    String renamedResponse = renameResponseElement(commandResponse.getResponseString(), "auth");    \r
-    commandResponse.setResponseToParse(renamedResponse);\r
-    SpResponseDataObject responseObject = (SpResponseDataObject) ResponseParser.getParser().getDataObject(commandResponse);    \r
-    if (ResponseParser.docTypes.contains(responseObject.getType())) {\r
-      pzresp.put(auth.getCommandName(), responseObject);\r
-    }\r
-    if (responseObject.unsupportedCommand()) {\r
-      logger.error("auth command does not seem to be supported by this Service Proxy");\r
-    }\r
-    String responseStr = commandResponse.getResponseString();\r
-    logger.info(responseStr);          \r
+    Pz2Bean.get().resetSearchAndRecordCommands();\r
+    Pz2Bean.get().getPzresp().getSp().resetAuthAndBeyond(true);\r
+    Pz2Bean.get().getPzreq().getSp().getAuth().run();\r
   }\r
   \r
   public void login(String un, String pw) {      \r
@@ -72,33 +52,27 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab
   }\r
   \r
   public void login(String un, String pw, String navigateTo) {      \r
-    pzreq.getSp().getAuth().setUsername(un);\r
-    pzreq.getSp().getAuth().setPassword(pw);\r
+    Pz2Bean.get().getPzreq().getSp().getAuth().setUsername(un);\r
+    Pz2Bean.get().getPzreq().getSp().getAuth().setPassword(pw);\r
     login("");\r
   }  \r
     \r
   @Override  \r
   public String login(String navigateTo) {\r
-    AuthCommand auth = pzreq.getSp().getAuth(); \r
+    AuthCommand auth = Pz2Bean.get().getPzreq().getSp().getAuth(); \r
     auth.setParameterInState(new CommandParameter("action","=","login"));\r
     authenticate();\r
     return navigateTo;\r
   }\r
     \r
   public void ipAuthenticate () {  \r
-    AuthCommand auth = pzreq.getSp().getAuth(); \r
+    AuthCommand auth = Pz2Bean.get().getPzreq().getSp().getAuth(); \r
     auth.setParameterInState(new CommandParameter("action","=","ipAuth"));\r
     authenticate();\r
   }\r
-  \r
-  private String renameResponseElement(String responseString, String newName) {\r
-    responseString = responseString.replace("<response>", "<" + newName + ">");\r
-    responseString = responseString.replace("</response>", "</" + newName + ">");\r
-    return responseString;\r
-  }\r
-    \r
+      \r
   public String getInitDocPath () {\r
-    return pz2.getSpClient().getConfiguration().get("INIT_DOC_PATH");\r
+    return Pz2Bean.get().getSpClient().getConfiguration().get("INIT_DOC_PATH");\r
   }\r
   \r
   @Override\r
@@ -114,20 +88,20 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab
 \r
   @Override\r
   public ClientCommandResponse postInit() throws UnsupportedEncodingException, IOException {    \r
-    String initDocPath = pz2.getSpClient().getInitDocPaths().get(0);\r
-    logger.info("Paths: " + pz2.getSpClient().getInitDocPaths());\r
+    String initDocPath = Pz2Bean.get().getSpClient().getInitDocPaths().get(0);\r
+    logger.info("Paths: " + Pz2Bean.get().getSpClient().getInitDocPaths());\r
     logger.info("Path: " + initDocPath);   \r
-    pz2.resetSearchAndRecordCommands();\r
-    pzresp.getSp().resetAuthAndBeyond(true);\r
-    ClientCommandResponse response = pz2.getSpClient().postInitDoc(initDocPath + getInitFileName());    \r
+    Pz2Bean.get().resetSearchAndRecordCommands();\r
+    Pz2Bean.get().getPzresp().getSp().resetAuthAndBeyond(true);\r
+    ClientCommandResponse response = Pz2Bean.get().getSpClient().postInitDoc(initDocPath + getInitFileName());    \r
     return response;\r
   }\r
   \r
   @Override\r
   public HttpResponseWrapper postInit(byte[] initDoc, boolean includeDebug) throws UnsupportedEncodingException, IOException {    \r
-    pz2.resetSearchAndRecordCommands();\r
-    pzresp.getSp().resetAuthAndBeyond(true);\r
-    HttpResponseWrapper response = pz2.getSpClient().postInitDoc(initDoc,includeDebug);    \r
+    Pz2Bean.get().resetSearchAndRecordCommands();\r
+    Pz2Bean.get().getPzresp().getSp().resetAuthAndBeyond(true);\r
+    HttpResponseWrapper response = Pz2Bean.get().getSpClient().postInitDoc(initDoc,includeDebug);    \r
     return response;\r
   }\r
 \r
@@ -146,9 +120,8 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab
   \r
   public void submitInitDoc () throws IOException {\r
     ClientCommandResponse response =  (ClientCommandResponse) initDocUpload.submit();\r
-    ResponseDataObject responseObject = ResponseParser.getParser().getDataObject(response);\r
-    logger.info("Putting init response to : " + Utils.objectId(pzresp));\r
-    pzresp.put("init", responseObject);\r
+    ResponseDataObject responseObject = ResponseParser.getParser().getDataObject(response);    \r
+    Pz2Bean.get().getPzresp().put("init", responseObject);\r
   }\r
   \r
   public void setIncludeInitDocDebug(boolean bool) {\r
@@ -167,12 +140,12 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab
   \r
   public CategoriesResponse getCategories () {       \r
     String command="categories";\r
-    if (pz2.isServiceProxyService()) {\r
-      if (pzresp.getSp().getCategories().unsupportedCommand()) {\r
+    if (Pz2Bean.get().isServiceProxyService()) {\r
+      if (Pz2Bean.get().getPzresp().getSp().getCategories().unsupportedCommand()) {\r
         logger.info("Skipping seemingly unsupported command: " + command);  \r
         return new CategoriesResponse();\r
       } else {\r
-        SpResponseDataObject response = (SpResponseDataObject) pz2.doCommand(command);\r
+        SpResponseDataObject response = (SpResponseDataObject) Pz2Bean.get().getPzreq().getSp().getCategories().run();\r
         if (response.unsupportedCommand()) {\r
           logger.warn("Command 'categories' not supported by this Service Proxy");          \r
         } else if (response.hasApplicationError()) {\r