index.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. // Zoho Tasks Plugin v1.0.0
  2. // EU data center: accounts.zoho.eu / projectsapi.zoho.eu
  3. var auth = require('./lib/auth');
  4. var tasks = require('./lib/tasks');
  5. shadowman.log.info('Zoho Tasks 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. // Project tools
  15. shadowman.tools.register('list_projects', 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 tasks.listProjects(token, args.index || 1);
  19. });
  20. // Task tools
  21. shadowman.tools.register('list_tasks', function(args, context) {
  22. var token = auth.getValidToken();
  23. if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
  24. if (!args.project_id) return { error: 'Missing project_id parameter' };
  25. return tasks.listTasks(token, args.project_id, args);
  26. });
  27. shadowman.tools.register('get_task', function(args, context) {
  28. var token = auth.getValidToken();
  29. if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
  30. if (!args.project_id) return { error: 'Missing project_id parameter' };
  31. if (!args.task_id) return { error: 'Missing task_id parameter' };
  32. return tasks.getTask(token, args.project_id, args.task_id);
  33. });
  34. shadowman.tools.register('create_task', function(args, context) {
  35. var token = auth.getValidToken();
  36. if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
  37. if (!args.project_id) return { error: 'Missing project_id parameter' };
  38. if (!args.name) return { error: 'Missing name parameter' };
  39. return tasks.createTask(token, args.project_id, args);
  40. });
  41. shadowman.tools.register('update_task', function(args, context) {
  42. var token = auth.getValidToken();
  43. if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
  44. if (!args.project_id) return { error: 'Missing project_id parameter' };
  45. if (!args.task_id) return { error: 'Missing task_id parameter' };
  46. return tasks.updateTask(token, args.project_id, args.task_id, args);
  47. });
  48. shadowman.tools.register('delete_task', function(args, context) {
  49. var token = auth.getValidToken();
  50. if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
  51. if (!args.project_id) return { error: 'Missing project_id parameter' };
  52. if (!args.task_id) return { error: 'Missing task_id parameter' };
  53. return tasks.deleteTask(token, args.project_id, args.task_id);
  54. });
  55. shadowman.tools.register('my_tasks', function(args, context) {
  56. var token = auth.getValidToken();
  57. if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
  58. return tasks.getMyTasks(token, args);
  59. });
  60. shadowman.tools.register('search_tasks', function(args, context) {
  61. var token = auth.getValidToken();
  62. if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
  63. if (!args.query) return { error: 'Missing query parameter' };
  64. return tasks.searchTasks(token, args);
  65. });
  66. // Comment tools
  67. shadowman.tools.register('add_comment', function(args, context) {
  68. var token = auth.getValidToken();
  69. if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
  70. if (!args.project_id) return { error: 'Missing project_id parameter' };
  71. if (!args.task_id) return { error: 'Missing task_id parameter' };
  72. if (!args.content) return { error: 'Missing content parameter' };
  73. return tasks.addComment(token, args.project_id, args.task_id, args.content);
  74. });
  75. shadowman.tools.register('update_comment', function(args, context) {
  76. var token = auth.getValidToken();
  77. if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
  78. if (!args.project_id) return { error: 'Missing project_id parameter' };
  79. if (!args.task_id) return { error: 'Missing task_id parameter' };
  80. if (!args.comment_id) return { error: 'Missing comment_id parameter' };
  81. if (!args.content) return { error: 'Missing content parameter' };
  82. return tasks.updateComment(token, args.project_id, args.task_id, args.comment_id, args.content);
  83. });
  84. shadowman.tools.register('delete_comment', function(args, context) {
  85. var token = auth.getValidToken();
  86. if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
  87. if (!args.project_id) return { error: 'Missing project_id parameter' };
  88. if (!args.task_id) return { error: 'Missing task_id parameter' };
  89. if (!args.comment_id) return { error: 'Missing comment_id parameter' };
  90. return tasks.deleteComment(token, args.project_id, args.task_id, args.comment_id);
  91. });