Moves request logic from pz2bean to individual commands
[mkjsf-moved-to-github.git] / src / main / java / com / indexdata / mkjsf / pazpar2 / commands / sp / AuthCommand.java
index 9a4fad7..3c9617e 100644 (file)
@@ -1,16 +1,44 @@
 package com.indexdata.mkjsf.pazpar2.commands.sp;\r
 \r
+import org.apache.log4j.Logger;\r
+\r
+import com.indexdata.mkjsf.pazpar2.ClientCommandResponse;\r
+import com.indexdata.mkjsf.pazpar2.Pz2Bean;\r
 import com.indexdata.mkjsf.pazpar2.commands.CommandParameter;\r
 import com.indexdata.mkjsf.pazpar2.commands.Pazpar2Command;\r
+import com.indexdata.mkjsf.pazpar2.data.ResponseParser;\r
+import com.indexdata.mkjsf.pazpar2.data.sp.SpResponseDataObject;\r
 \r
 public class AuthCommand extends Pazpar2Command implements ServiceProxyCommand {\r
 \r
   private static final long serialVersionUID = 5487611235664162578L;\r
+  private static Logger logger = Logger.getLogger(AuthCommand.class);\r
 \r
   public AuthCommand() {\r
     super("auth");\r
   }\r
   \r
+  public SpResponseDataObject run() {\r
+    ClientCommandResponse response = (ClientCommandResponse) Pz2Bean.get().getSearchClient().executeCommand(this);      \r
+    String renamedResponse = renameResponseElement(response.getResponseString(), "auth");    \r
+    response.setResponseToParse(renamedResponse);\r
+    SpResponseDataObject responseObject = (SpResponseDataObject) ResponseParser.getParser().getDataObject(response);    \r
+    if (ResponseParser.docTypes.contains(responseObject.getType())) {\r
+      Pz2Bean.get().getPzresp().put(getCommandName(), responseObject);\r
+    }\r
+    if (responseObject.unsupportedCommand()) {\r
+      logger.error("auth command does not seem to be supported by this Service Proxy");\r
+    }\r
+    return responseObject;\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 void setAction (String action) {\r
     setParameterInState(new CommandParameter("action","=",action));\r
   }  \r