Moves request logic from pz2bean to individual commands
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / ServiceProxyExtensions.java
index d085c31..6595059 100644 (file)
@@ -30,8 +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 ConfigurationReader configurator;    \r
     \r
   public ServiceProxyExtensions() {\r
     this.initDocUpload = new InitDocUpload(this);\r
@@ -40,24 +39,12 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab
   }\r
      \r
   public void authenticate() {    \r
-    if (pz2.getPzresp().getSp().getAuth().unsupportedCommand()) {\r
+    if (Pz2Bean.get().getPzresp().getSp().getAuth().unsupportedCommand()) {\r
       logger.warn("Running seemingly unsupported command [auth] against SP.");\r
     }\r
-    pz2.resetSearchAndRecordCommands();\r
-    pz2.getPzresp().getSp().resetAuthAndBeyond(true);\r
-    AuthCommand auth = pz2.getPzreq().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
-      pz2.getPzresp().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
@@ -65,33 +52,27 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab
   }\r
   \r
   public void login(String un, String pw, String navigateTo) {      \r
-    pz2.getPzreq().getSp().getAuth().setUsername(un);\r
-    pz2.getPzreq().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 = pz2.getPzreq().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 = pz2.getPzreq().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
@@ -107,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
-    pz2.getPzresp().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
-    pz2.getPzresp().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
@@ -139,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(pz2.getPzresp()));\r
-    pz2.getPzresp().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
@@ -160,12 +140,12 @@ public class ServiceProxyExtensions implements ServiceProxyInterface, Serializab
   \r
   public CategoriesResponse getCategories () {       \r
     String command="categories";\r
-    if (pz2.isServiceProxyService()) {\r
-      if (pz2.getPzresp().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