view modules/mod_adhoc.js @ 36:26eb015a7c40

Really should learn that “hg addremove” is good.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Wed, 10 Nov 2010 01:43:25 +0100
parents 6697f394301f
children 4c808bfe0658
line wrap: on
line source

var config = require('../configuration');
var storage = require('../storage');
var forms = require('../forms');
var errors = require('../errors');
var makeError = errors.makeError;
var toBareJID = require('../fdsq').toBareJID;
var NS = require('../namespaces');

// XEP-0050: Ad-Hoc Commands
exports.adHoc = {
	type: 'set',
	child: 'command',
	ns: NS.COMMANDS,
	func: function(response, stanza, request, to) {
		var action = request.getAttribute('action');
		if (action != 'execute')
			return makeError(response, errors.bad_request.n);

		var node = request.getAttribute('node');
		if (node == 'ping') {
			var cmd = xmpp.stanza('command', {xmlns: NS.COMMANDS,
	//				      sessionid: 'list:20020923T213616Z-700',
					      node: node,
					      'status': 'completed'})
				.c('note', {type: 'info'}).t('pong');
			response.cnode(cmd);
		} else if (node == 'reload') {
			storage.load();
			response.c('command', {xmlns: NS.COMMANDS,
					       node: node,
					       'status': 'completed'})
				.c('note', {type: 'info'}).t('The server has correctly reloaded.');
		} else
			return makeError(response, errors.bad_request.n);

		return response;
	}
}