| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- // Zoho Tasks Plugin v2.0.0
- // EU data center: accounts.zoho.eu
- var auth = require('./lib/auth');
- var tasks = require('./lib/tasks');
- shadowman.log.info('Zoho Tasks plugin v2.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();
- });
- shadowman.tools.register('resolve_portal', function(args, context) {
- var token = auth.getValidToken();
- if (!token) return { error: 'Not authenticated. Run setup_auth with a grant token first.' };
- return auth.resolvePortal(token, args);
- });
- // 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);
- });
- shadowman.tools.register('log_time', 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.hours === undefined) return { error: 'Missing hours parameter' };
- return tasks.logTime(token, args.project_id, args);
- });
- shadowman.tools.register('list_timesheets', 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.listTimesheets(token, args.project_id, args);
- });
- shadowman.tools.register('delete_timesheet', 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.log_id) return { error: 'Missing log_id parameter' };
- return tasks.deleteTimesheet(token, args.project_id, args.log_id);
- });
|