index.js 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. });