index.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // Zoho Cliq Plugin v1.0.0
  2. // Zoho Cliq chat/messaging integration (EU data center)
  3. var auth = require('./lib/auth');
  4. var cliq = require('./lib/cliq');
  5. shadowman.log.info('Zoho Cliq plugin v1.0.0 loaded');
  6. // Auth tools
  7. shadowman.tools.register('setup_auth', function(args, context) {
  8. shadowman.storage.set('auth_conversation_id', context.conversationId);
  9. return auth.setupAuth(args.grant_token);
  10. });
  11. shadowman.tools.register('auth_status', function(args, context) {
  12. return auth.getStatus();
  13. });
  14. // Chat tools
  15. shadowman.tools.register('list_chats', function(args, context) {
  16. var token = auth.getValidToken();
  17. if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
  18. return cliq.listChats(token);
  19. });
  20. shadowman.tools.register('list_channels', function(args, context) {
  21. var token = auth.getValidToken();
  22. if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
  23. return cliq.listChannels(token);
  24. });
  25. shadowman.tools.register('send_message', function(args, context) {
  26. var token = auth.getValidToken();
  27. if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
  28. if (!args.chat_id) return { error: 'Missing chat_id parameter' };
  29. if (!args.message) return { error: 'Missing message parameter' };
  30. return cliq.sendMessage(token, args.chat_id, args.message);
  31. });
  32. shadowman.tools.register('get_messages', function(args, context) {
  33. var token = auth.getValidToken();
  34. if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
  35. if (!args.chat_id) return { error: 'Missing chat_id parameter' };
  36. return cliq.getMessages(token, args.chat_id, args.index || 1);
  37. });
  38. shadowman.tools.register('post_to_channel', function(args, context) {
  39. var token = auth.getValidToken();
  40. if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
  41. if (!args.channel_name) return { error: 'Missing channel_name parameter' };
  42. if (!args.message) return { error: 'Missing message parameter' };
  43. return cliq.postToChannel(token, args.channel_name, args.message);
  44. });