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;
}