| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- // Zoho Tasks Plugin v1.0.0
- // EU data center: accounts.zoho.eu / projectsapi.zoho.eu
- var auth = require('./lib/auth');
- var tasks = require('./lib/tasks');
- shadowman.log.info('Zoho Tasks plugin v1.0.0 loaded');
- // Auth tools
- shadowman.tools.register('setup_auth', function(args, context) {
- shadowman.storage.set('auth_conversation_id', context.conversationId);
- return auth.setupAuth(args.grant_token);
- });
- shadowman.tools.register('auth_status', function(args, context) {
- return auth.getStatus();
- });
- // Project tools
- shadowman.tools.register('list_projects', function(args, context) {
- var token = auth.getValidToken();
- if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
- return tasks.listProjects(token, args.index || 1);
- });
- // Task tools
- shadowman.tools.register('list_tasks', function(args, context) {
- var token = auth.getValidToken();
- if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
- if (!args.project_id) return { error: 'Missing project_id parameter' };
- return tasks.listTasks(token, args.project_id, args);
- });
- shadowman.tools.register('get_task', function(args, context) {
- var token = auth.getValidToken();
- if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
- if (!args.project_id) return { error: 'Missing project_id parameter' };
- if (!args.task_id) return { error: 'Missing task_id parameter' };
- return tasks.getTask(token, args.project_id, args.task_id);
- });
- shadowman.tools.register('create_task', function(args, context) {
- var token = auth.getValidToken();
- if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
- if (!args.project_id) return { error: 'Missing project_id parameter' };
- if (!args.name) return { error: 'Missing name parameter' };
- return tasks.createTask(token, args.project_id, args);
- });
- shadowman.tools.register('update_task', function(args, context) {
- var token = auth.getValidToken();
- if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
- if (!args.project_id) return { error: 'Missing project_id parameter' };
- if (!args.task_id) return { error: 'Missing task_id parameter' };
- return tasks.updateTask(token, args.project_id, args.task_id, args);
- });
- shadowman.tools.register('delete_task', function(args, context) {
- var token = auth.getValidToken();
- if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
- if (!args.project_id) return { error: 'Missing project_id parameter' };
- if (!args.task_id) return { error: 'Missing task_id parameter' };
- return tasks.deleteTask(token, args.project_id, args.task_id);
- });
- shadowman.tools.register('my_tasks', function(args, context) {
- var token = auth.getValidToken();
- if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
- return tasks.getMyTasks(token, args);
- });
- shadowman.tools.register('search_tasks', function(args, context) {
- var token = auth.getValidToken();
- if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
- if (!args.query) return { error: 'Missing query parameter' };
- return tasks.searchTasks(token, args);
- });
- // Comment tools
- shadowman.tools.register('add_comment', function(args, context) {
- var token = auth.getValidToken();
- if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
- if (!args.project_id) return { error: 'Missing project_id parameter' };
- if (!args.task_id) return { error: 'Missing task_id parameter' };
- if (!args.content) return { error: 'Missing content parameter' };
- return tasks.addComment(token, args.project_id, args.task_id, args.content);
- });
- shadowman.tools.register('update_comment', function(args, context) {
- var token = auth.getValidToken();
- if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
- if (!args.project_id) return { error: 'Missing project_id parameter' };
- if (!args.task_id) return { error: 'Missing task_id parameter' };
- if (!args.comment_id) return { error: 'Missing comment_id parameter' };
- if (!args.content) return { error: 'Missing content parameter' };
- return tasks.updateComment(token, args.project_id, args.task_id, args.comment_id, args.content);
- });
- shadowman.tools.register('delete_comment', function(args, context) {
- var token = auth.getValidToken();
- if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
- if (!args.project_id) return { error: 'Missing project_id parameter' };
- if (!args.task_id) return { error: 'Missing task_id parameter' };
- if (!args.comment_id) return { error: 'Missing comment_id parameter' };
- return tasks.deleteComment(token, args.project_id, args.task_id, args.comment_id);
- });
|