Enable robot calling methods on Rocket.Chat

pull/1345/head
Marcelo Schmidt 10 years ago committed by Marcelo Schmidt
parent 8cdf78d2e8
commit 16051d479a
  1. 1
      packages/rocketchat-lib/package.js
  2. 16
      packages/rocketchat-lib/server/methods/robotMethods.coffee

@ -59,6 +59,7 @@ Package.onUse(function(api) {
api.addFiles('server/functions/setUsername.coffee', 'server');
api.addFiles('server/methods/joinDefaultChannels.coffee', 'server');
api.addFiles('server/methods/robotMethods.coffee', 'server');
api.addFiles('server/methods/sendInvitationEmail.coffee', 'server');
api.addFiles('server/methods/setAdminStatus.coffee', 'server');
api.addFiles('server/methods/setRealName.coffee', 'server');

@ -0,0 +1,16 @@
Meteor.methods
'robot.modelCall': (model, method, args) ->
unless Meteor.userId()
throw new Meteor.Error 'invalid-user', '[methods] robot.modelCall -> Invalid user'
unless RocketChat.authz.hasRole Meteor.userId(), 'robot'
throw new Meteor.Error 'unauthorized', '[methods] robot.modelCall -> Unauthorized'
console.log '[method] robot.modelCall'.green, arguments
unless _.isFunction RocketChat.models[model]?[method]
throw new Meteor.Error 'invalid-method', '[methods] robot.modelCall -> Invalid method'
call = RocketChat.models[model][method].apply(RocketChat.models[model], args)
console.log call
return call
Loading…
Cancel
Save