biz.freeside.SelfService class and sample applications
authorjeff <jeff>
Tue, 21 Oct 2008 15:50:39 +0000 (15:50 +0000)
committerjeff <jeff>
Tue, 21 Oct 2008 15:50:39 +0000 (15:50 +0000)
fs_selfservice/java/biz/freeside/SelfService.java [new file with mode: 0755]
fs_selfservice/java/freeside_login_example.java [new file with mode: 0755]
fs_selfservice/java/freeside_signup_example.java [new file with mode: 0755]

diff --git a/fs_selfservice/java/biz/freeside/SelfService.java b/fs_selfservice/java/biz/freeside/SelfService.java
new file mode 100755 (executable)
index 0000000..752815a
--- /dev/null
@@ -0,0 +1,52 @@
+package biz.freeside;
+
+// see http://ws.apache.org/xmlrpc/client.html for these classes
+import org.apache.xmlrpc.XmlRpcException;
+import org.apache.xmlrpc.client.XmlRpcClient;
+import org.apache.xmlrpc.client.XmlRpcClientConfig;
+import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
+
+import java.util.HashMap;
+import java.util.List;
+import java.net.URL;
+
+public class SelfService extends XmlRpcClient {
+
+  public SelfService( String url ) throws Exception {
+    super();
+    XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
+    config.setServerURL(new URL( url ));
+    this.setConfig(config);
+  }
+
+  private String canonicalMethod ( String method ) {
+    String canonical = new String(method);
+    if (!canonical.startsWith( "FS.SelfService.XMLRPC." )) {
+      canonical = "FS.SelfService.XMLRPC." + canonical;
+    }
+    return canonical;
+  }
+
+  private HashMap testResponse ( Object toTest ) throws XmlRpcException {
+    if (! ( toTest instanceof HashMap )) {
+      throw new XmlRpcException("expected HashMap but got" + toTest.getClass());
+    }
+    return (HashMap) toTest;
+  }
+
+  public HashMap execute( String method, List params ) throws XmlRpcException {
+    return testResponse(super.execute( canonicalMethod(method), params ));
+  }
+
+  public HashMap execute( String method, Object[] params ) throws XmlRpcException {
+    return testResponse(super.execute( canonicalMethod(method), params ));
+  }
+
+  public HashMap execute( XmlRpcClientConfig config, String method, List params ) throws XmlRpcException {
+    return testResponse(super.execute( config, canonicalMethod(method), params ));
+  }
+
+  public HashMap execute( XmlRpcClientConfig config, String method, Object[] params ) throws XmlRpcException {
+    return testResponse(super.execute( config, canonicalMethod(method), params ));
+  }
+}
diff --git a/fs_selfservice/java/freeside_login_example.java b/fs_selfservice/java/freeside_login_example.java
new file mode 100755 (executable)
index 0000000..cb6d2bc
--- /dev/null
@@ -0,0 +1,45 @@
+
+import biz.freeside.SelfService;
+import org.apache.commons.logging.impl.SimpleLog; //included in apache xmlrpc
+import java.util.HashMap;
+import java.util.Vector;
+
+public class freeside_login_example {
+  private static SimpleLog logger = new SimpleLog("SelfService");
+
+  public static void main( String args[] ) throws Exception {
+    SelfService client =
+      new SelfService( "http://192.168.1.221:8081/xmlrpc.cgi" );
+
+    Vector params = new Vector();
+    params.addElement( "username" );
+    params.addElement( "testuser" );
+    params.addElement( "domain" );
+    params.addElement( "example.com" );
+    params.addElement( "password" );
+    params.addElement( "testpass" );
+    HashMap result = client.execute( "login", params );
+
+    String error = (String) result.get("error");
+
+    if (error.length() < 1) {
+
+      // successful login
+
+      String sessionId = (String) result.get("session_id");
+
+      logger.trace("[login] logged into freeside with session_id="+sessionId);
+
+      // store session id in your session store to be used for other calls
+
+    }else{
+
+      // successful login
+
+      logger.warn("[login] error logging into freeside: "+error);
+
+      // display error message to user
+
+    }
+  }
+}
diff --git a/fs_selfservice/java/freeside_signup_example.java b/fs_selfservice/java/freeside_signup_example.java
new file mode 100755 (executable)
index 0000000..6c695c4
--- /dev/null
@@ -0,0 +1,69 @@
+
+import biz.freeside.SelfService;
+import org.apache.commons.logging.impl.SimpleLog; // included in apache xmlrpc
+import java.util.HashMap;
+import java.util.Vector;
+
+public class freeside_signup_example {
+  private static SimpleLog logger = new SimpleLog("SelfService");
+
+  public static void main( String args[] ) throws Exception {
+    SelfService client =
+      new SelfService( "http://192.168.1.221:8081/xmlrpc.cgi" );
+
+    Vector params = new Vector();
+    params.addElement( "first" );
+    params.addElement( "Test" );
+    params.addElement( "last" );
+    params.addElement( "User" );
+    params.addElement( "address1");
+    params.addElement( "123 Test Street" );
+    params.addElement( "address2");
+    params.addElement( "Suite A" );
+    params.addElement( "city");
+    params.addElement( "Testville" );
+    params.addElement( "state");
+    params.addElement( "OH" );
+    params.addElement( "zip");
+    params.addElement( "44632" );
+    params.addElement( "country");
+    params.addElement( "US" );
+    params.addElement( "daytime" );
+    params.addElement( "216-412-1234" );
+    params.addElement( "fax" );
+    params.addElement( "216-412-1235" );
+    params.addElement( "payby" );
+    params.addElement( "BILL" );
+    params.addElement( "invoicing_list" );
+    params.addElement( "test@test.example.com" );
+    params.addElement( "pkgpart" );
+    params.addElement( "101" );
+    params.addElement( "popnum" );
+    params.addElement( "4018" );
+    params.addElement( "username" );
+    params.addElement( "testy" );
+    params.addElement( "_password" );
+    params.addElement( "tester" );
+    HashMap result = client.execute( "new_customer", params );
+
+    String error = (String) result.get("error");
+
+    if (error.length() < 1) {
+
+      // successful signup
+
+      String custnum = (String) result.get("custnum");
+
+      logger.trace("[new_customer] signup with custnum "+custnum);
+
+    }else{
+
+      // unsuccessful signup
+
+      logger.warn("[new_customer] signup error: "+error);
+
+      // display error message to user
+
+    }
+  }
+}