venice-main-classic/rpcscripts/conf/message.js

61 lines
2.3 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 message 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 five parameters: session, community, conference, topic, message.
if (xreq.paramCount<5)
{ // 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);
msg = xreq.getParamPost(4,topic);
if ("attach"==call_name)
{ // venice:conferencing.message.attach <session-id> <community> <conference> <topic> <message> <mime-type>
// <filename> <data>
if (xreq.paramCount!=8)
vlib.output(new XmlRpcFault(XmlRpcFault.INVALID_PARAMS,"parameter count mismatch"));
else if ("base64"!=xreq.getParamType(7))
vlib.output(new XmlRpcFault(XmlRpcFault.INVALID_PARAMS,"data parameter type mismatch"));
else
{ // attach the data and return
msg.attachData(xreq.getParamString(5),xreq.getParamString(6),vlib.castByteArray(xreq.getParam(7)));
vlib.output(vlib.booleanObject(true));
} // 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));