ogojogi-hacks

Michael Dominok <[email protected]>
Newsgroups gmane.comp.cms.opengroupware.xmlrpc.devel
Organization natural computing
Message-ID <[email protected]>
Hi Lists, murphee,

as a result of some small Utilities beeing written around here a few
Hacks & Methods to ogojogi were created.
Maybe some of it's of use to someone. So here's the diff.

XmlRpcAccount:
account.setPassword (modified. works now)

XmlRpcTeam:
public String getNumber() 

XmlRpcTeamManager:
public Team getByNumber(String number)  
public boolean setMembers(String id, String[] memberList)
public boolean setMembers(String id, Vector memberList) 
public Vector getMemberIdsForTeam(String number)
public Vector getMembersForTeam(String number)

Cheers

Michael

-- 
Michael Dominok		Tel.: +49 231 61048 - 42
natural computing GmbH	Fax.: +49 231 61048 - 40
Martener Strasse 535 	Mail: [email protected]
44379 Dortmund 		http://www.natural-computing.de/
ogojogi.diff (text/x-patch, 8.3 KB)
diff -ru /tmp/ogojogi/src/product/org/opengroupware/jogi/connect/xmlrpc/XmlRpcAccount.java ./product/org/opengroupware/jogi/connect/xmlrpc/XmlRpcAccount.java
--- /tmp/ogojogi/src/product/org/opengroupware/jogi/connect/xmlrpc/XmlRpcAccount.java	2004-01-29 19:51:44.000000000 +0100
+++ ./product/org/opengroupware/jogi/connect/xmlrpc/XmlRpcAccount.java	2004-10-01 10:35:46.000000000 +0200
@@ -47,7 +47,7 @@
 public class XmlRpcAccount extends XmlRpcBaseDocument implements Account {
 
     public static final String KEY_LOGIN = "login";
-
+    
     public static final String OGO_CALL_ACCOUNT_SET_PASSWORD = "account.setPassword";
     public static final String OGO_CALL_ACCOUNT_GET_PASSWORD_BY_LOGIN = "account.passwordForLogin";
 
@@ -102,7 +102,12 @@
         throws OgoException, ConnectionException 
     {
         List params = new Vector();
+        params.add(id_);
         params.add(password);
+        // already crypted password
+//      params.add(Boolean.TRUE);
+		// plain text password
+		params.add(Boolean.FALSE);
         Object accTemp = caller_.invoke(OGO_CALL_ACCOUNT_SET_PASSWORD, params);
         if (accTemp instanceof Boolean) {
             if (((Boolean) accTemp).booleanValue()) {
diff -ru /tmp/ogojogi/src/product/org/opengroupware/jogi/connect/xmlrpc/XmlRpcAddress.java ./product/org/opengroupware/jogi/connect/xmlrpc/XmlRpcAddress.java
--- /tmp/ogojogi/src/product/org/opengroupware/jogi/connect/xmlrpc/XmlRpcAddress.java	2004-01-29 19:51:50.000000000 +0100
+++ ./product/org/opengroupware/jogi/connect/xmlrpc/XmlRpcAddress.java	2004-09-30 14:21:04.000000000 +0200
@@ -63,7 +63,7 @@
       content_ = new Hashtable();
    }
 
-   protected XmlRpcAddress(Map contents) {
+   private XmlRpcAddress(Map contents) {
       if (contents != null) {
          if (checkNewContent(contents)) {
             content_ = new Hashtable(contents);
diff -ru /tmp/ogojogi/src/product/org/opengroupware/jogi/connect/xmlrpc/XmlRpcTeam.java ./product/org/opengroupware/jogi/connect/xmlrpc/XmlRpcTeam.java
--- /tmp/ogojogi/src/product/org/opengroupware/jogi/connect/xmlrpc/XmlRpcTeam.java	2004-01-29 19:51:40.000000000 +0100
+++ ./product/org/opengroupware/jogi/connect/xmlrpc/XmlRpcTeam.java	2004-09-30 13:42:32.000000000 +0200
@@ -44,6 +44,7 @@
     // TODO: what is the owner Id? Is it a login string, or the Id of the
     // owners Person or Account entry; 
     public static final String KEY_OWNER_ID = "ownerId";
+    public static final String KEY_NUMBER = "number";
 
     XmlRpcCaller caller_;
 
@@ -81,6 +82,20 @@
         }
     }
 
+    public String getNumber() 
+    	throws OgoException, ConnectionException
+		{
+    	Object retVal = content_.get(KEY_NUMBER);
+    	if (retVal != null) 
+    		{
+    		return retVal.toString();
+    		} 
+    	else 
+    		{
+    		return null;
+    		}
+		}
+
     /* (non-Javadoc)
      * @see jogi.ogo.Team#setDescription(java.lang.String)
      */
diff -ru /tmp/ogojogi/src/product/org/opengroupware/jogi/connect/xmlrpc/XmlRpcTeamManager.java ./product/org/opengroupware/jogi/connect/xmlrpc/XmlRpcTeamManager.java
--- /tmp/ogojogi/src/product/org/opengroupware/jogi/connect/xmlrpc/XmlRpcTeamManager.java	2004-01-29 19:51:48.000000000 +0100
+++ ./product/org/opengroupware/jogi/connect/xmlrpc/XmlRpcTeamManager.java	2004-10-04 14:15:40.000000000 +0200
@@ -26,6 +26,7 @@
 package org.opengroupware.jogi.connect.xmlrpc;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -48,8 +49,11 @@
 
 	public static final String OGO_CALL_TEAM_INSERT = "team.insert";
 	public static final String OGO_CALL_TEAM_GET_TEAMS = "team.getTeams";
+	public static final String OGO_CALL_TEAM_GET_BY_NUMBER = "team.getByNumber";
 	public static final String OGO_CALL_TEAM_GET_BY_LOGIN = "team.getByLogin";
-
+	public static final String OGO_CALL_TEAM_SET_MEMBERS = "team.setMembers";
+	public static final String OGO_CALL_TEAM_GET_MEMBERS_FOR_TEAM = "team.getMembersForTeam";
+	 
 	protected Map cached_teams_;
 	protected XmlRpcCaller caller_;
 
@@ -88,6 +92,14 @@
 		return receiveTeam(caller_.invoke(OGO_CALL_TEAM_GET_BY_LOGIN, params));
 	}
 
+	public Team getByNumber(String number) 
+    	throws OgoException, ConnectionException
+		{
+		List params = new ArrayList();
+		params.add(number);
+		return receiveTeam(caller_.invoke(OGO_CALL_TEAM_GET_BY_NUMBER, params));
+		}
+
 	public Team insert(String desc) 
         throws OgoException, ConnectionException
     {
@@ -104,7 +116,67 @@
 
 		return null;
 	}
-
+	
+	//	 This setMembers function takes a Vector of Account Ids as argument;
+   public boolean setMembers(String id, Vector memberList)
+    	throws OgoException, ConnectionException
+	{
+	    List params = new Vector();
+	    params.add(id);
+	    // HACK: Apache XmlRpc needs Vectors, and not a List;
+	    params.add(memberList);
+	    Object retVal = caller_.invoke(OGO_CALL_TEAM_SET_MEMBERS, params);
+	
+	    if (retVal == null)
+	    	return false;
+	    if (retVal instanceof Boolean)
+	    	return ((Boolean)retVal).booleanValue();
+	    return true;
+	}
+    
+    // The setMembers function takes an array of Account Ids as argument;
+    public boolean setMembers(String id, String[] memberList)
+    	throws OgoException, ConnectionException
+	{
+	    List params = new Vector();
+	    params.add(id);
+	    // HACK: Apache XmlRpc needs Vectors, and not a List;
+	    params.add(new Vector(Arrays.asList(memberList)));
+	    Object retVal = caller_.invoke(OGO_CALL_TEAM_SET_MEMBERS, params);
+	
+	    if (retVal == null)
+	    	return false;
+	    if (retVal instanceof Boolean)
+	    	return ((Boolean)retVal).booleanValue();
+	    return true;
+	}
+    
+    // The getMemberIdsForTeam function takes a teams number as argument
+    public Vector getMemberIdsForTeam(String number)
+    	throws OgoException, ConnectionException
+		{
+    	List members = (List) caller_.invoke(OGO_CALL_TEAM_GET_MEMBERS_FOR_TEAM, number);
+    	Vector memberids = new Vector();
+    	int mmax=members.size();
+    	Map member=null;
+    	
+    	for (int i=0;i<mmax;i++)
+    		{
+    		member = (Map) members.get(i);
+        	memberids.add(member.get("companyId").toString());
+    		}
+    	return memberids;
+    	}    
+	
+    // The getMembersForTeam function takes a teams number as argument
+    public Vector getMembersForTeam(String number)
+    	throws OgoException, ConnectionException
+		{
+    	Vector members = (Vector) caller_.invoke(OGO_CALL_TEAM_GET_MEMBERS_FOR_TEAM, number);
+    	
+    	return members;
+    	}    
+	
 	protected XmlRpcTeam createNewTeam(Map newContents) 
         throws OgoException, ConnectionException
     {
diff -ru /tmp/ogojogi/src/product/org/opengroupware/jogi/ogo/Team.java ./product/org/opengroupware/jogi/ogo/Team.java
--- /tmp/ogojogi/src/product/org/opengroupware/jogi/ogo/Team.java	2004-01-29 19:11:10.000000000 +0100
+++ ./product/org/opengroupware/jogi/ogo/Team.java	2004-09-30 14:50:17.000000000 +0200
@@ -43,6 +43,7 @@
         throws OgoException, ConnectionException;
     
     public String getId() throws OgoException, ConnectionException;	
+    public String getNumber() throws OgoException, ConnectionException;	
     
     public boolean isLocationTeam() throws OgoException, ConnectionException;
     public void setIsLocationTeam(boolean isLocationTeam)
diff -ru /tmp/ogojogi/src/product/org/opengroupware/jogi/ogo/TeamManager.java ./product/org/opengroupware/jogi/ogo/TeamManager.java
--- /tmp/ogojogi/src/product/org/opengroupware/jogi/ogo/TeamManager.java	2004-01-29 19:11:10.000000000 +0100
+++ ./product/org/opengroupware/jogi/ogo/TeamManager.java	2004-10-04 14:15:13.000000000 +0200
@@ -26,6 +26,8 @@
 package org.opengroupware.jogi.ogo;
 
 import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
 
 /**
  * Allows management of the Team records on an OpenGroupware.org installation.
@@ -44,4 +46,16 @@
     // really the only required info???
     public Team insert(String description)
         throws OgoException, ConnectionException;
+    
+	public boolean setMembers(String id, String[] memberList)
+	    throws OgoException, ConnectionException;
+
+	public boolean setMembers(String id, Vector memberList)
+		throws OgoException, ConnectionException;
+
+	public Vector getMembersForTeam(String number)
+    	throws OgoException, ConnectionException;
+
+	public Vector getMemberIdsForTeam(String number)
+		throws OgoException, ConnectionException;
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.