add ticket creation to self-service API, RT#7007
[freeside.git] / fs_selfservice / java / freeside_create_ticket_example.java
diff --git a/fs_selfservice/java/freeside_create_ticket_example.java b/fs_selfservice/java/freeside_create_ticket_example.java
new file mode 100755 (executable)
index 0000000..8e79ca6
--- /dev/null
@@ -0,0 +1,79 @@
+
+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_create_ticket_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( "4155551212" ); // svc_phone.phonenum
+    params.addElement( "password" );
+    params.addElement( "5454" );       // svc_phone.pin
+    params.addElement( "domain" );
+    params.addElement( "svc_phone" );
+    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
+
+      // like, say, this one to create a ticket
+
+      Vector ticket_params = new Vector();
+      ticket_params.addElement( "session_id" );
+      ticket_params.addElement( sessionId );
+      ticket_params.addElement( "requestor" );         // these
+      ticket_params.addElement( "email@example.com" ); // are
+      ticket_params.addElement( "cc" );                // optional
+      ticket_params.addElement( "joe@example.com" );   // 
+      ticket_params.addElement( "subject" );
+      ticket_params.addElement( "Houston, we have a problem." );
+      ticket_params.addElement( "message" );
+      ticket_params.addElement( "The Oscillation Overthurster has gone out of alignment!\n\nIt needs to be fixed immediately!" );
+
+      HashMap ticket_result = client.execute( "create_ticket", ticket_params);
+
+      String error = (String) ticket_result.get("error");
+
+      if (error.length() < 1) {
+
+        // successful ticket creation
+
+        String ticketId = (String) ticket_result.get("ticket_id");
+
+        logger.trace("[login] ticket created with id="+ticketId);
+
+      } else {
+
+        // unsuccesful creating ticket
+
+        logger.warn("[login] error creating ticket: "+error);
+
+      }
+
+    }else{
+
+      // unsuccessful login
+
+      logger.warn("[login] error logging into freeside: "+error);
+
+      // display/say error message to user
+
+    }
+  }
+}