import { CloseHandler, CreateHandler, DeleteHandler, GetAllHandler, GetHandler, MoveHandler, ReopenHandler, SyncHandler, UpdateHandler } from './OperationHandler'; import {Context} from './GenericFunctions'; import { IDataObject } from 'n8n-workflow'; export class TodoistService implements Service { async execute(ctx: Context, operation: OperationType, itemIndex: number): Promise { return this.handlers[operation].handleOperation(ctx, itemIndex); } private handlers = { 'create': new CreateHandler(), 'close': new CloseHandler(), 'delete': new DeleteHandler(), 'get': new GetHandler(), 'getAll': new GetAllHandler(), 'reopen': new ReopenHandler(), 'update': new UpdateHandler(), 'move': new MoveHandler(), 'sync': new SyncHandler(), }; } export enum OperationType { create = 'create', close = 'close', delete = 'delete', get = 'get', getAll = 'getAll', reopen = 'reopen', update = 'update', move = 'move', sync = 'sync', } export interface Section { name: string; id: string; } export interface Service { execute(ctx: Context, operation: OperationType, itemIndex: number): Promise; } export interface TodoistResponse { success?: boolean; data?: IDataObject; }