00952ef543
alias
78 lines
2.8 KiB
JavaScript
78 lines
2.8 KiB
JavaScript
// 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 <http://www.mozilla.org/MPL/>.
|
|
//
|
|
// 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 <erbo@users.sf.net>,
|
|
// 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 <session-id> <community> <conference> <topic> <pseud> <text>
|
|
// [<mode>]
|
|
// 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));
|