// The contents of this file are subject to the Mozilla Public License Version 1.1 // (the "License"); you may not use this file except in compliance with the License. // You may obtain a copy of the License at . // // Software distributed under the License is distributed on an "AS IS" basis, WITHOUT // WARRANTY OF ANY KIND, either express or implied. See the License for the specific // language governing rights and limitations under the License. // // The Original Code is the Venice Web Communities System. // // The Initial Developer of the Original Code is Eric J. Bowersox , // for Silverwrist Design Studios. Portions created by Eric J. Bowersox are // Copyright (C) 2002 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved. // // Contributor(s): // Implements the conferencing topic API importPackage(java.util); importPackage(Packages.com.silverwrist.venice.core); importPackage(Packages.com.silverwrist.venice.ui.rpc); rinput = bsf.lookupBean("request"); xreq = bsf.lookupBean("xmlrpc"); env = bsf.lookupBean("environment"); call_name = env.get("call"); // All methods have at least four parameters: session, community, conference, topic. if (xreq.paramCount<4) { // not enough parameters vlib.output(new XmlRpcFault(XmlRpcFault.INVALID_PARAMS,"parameter count mismatch")); vlib.done(); } // end if comm = xreq.getParamCommunity(1); conf = xreq.getParamConference(2,comm); topic = xreq.getParamTopic(3,conf); if ("postMessage"==call_name) { // venice:conferencing.topic.postMessage // [] // Posts a message, returns the message number within the topic if ((xreq.paramCount!=6) && (xreq.paramCount!=7)) vlib.output(new XmlRpcFault(XmlRpcFault.INVALID_PARAMS,"parameter count mismatch")); else { // determine the mode mode = TopicContext.POST_MODE_NORMAL; if (xreq.paramCount==7) { // interpret the posting mode s = xreq.getParamString(6); if (s.equalsIgnoreCase("normal")) mode = TopicContext.POST_MODE_NORMAL; else if (s.equalsIgnoreCase("email")) mode = TopicContext.POST_MODE_EMAIL; else { // invalid mode parameter vlib.output(new XmlRpcFault(XmlRpcFault.INVALID_PARAMS,"invalid post mode")); vlib.done(); } // end else } // end if // else use the default of "normal" // post the message msg = topic.postNewMessage(0,xreq.getParamString(4),xreq.getParamString(5),mode); vlib.output(vlib.createInteger(msg.postNumber)); } // end else vlib.done(); } // end if // just in case there's a method name that wasn't listed vlib.output(new XmlRpcFault(XmlRpcFault.METHOD_NOT_FOUND,"invalid method name: " + xreq.method));