Files
alighasami 3d5eaf9445
Security: Sync from Public / sync-from-public (push) Has been cancelled
Test: Benchmark Nightly / build (push) Has been cancelled
Test: Benchmark Nightly / Notify Cats on failure (push) Has been cancelled
CI: Python / Checks (push) Has been cancelled
Test: Evals Python / Workflow Comparison Python (push) Has been cancelled
Util: Check Docs URLs / check-docs-urls (push) Has been cancelled
Test: Visual Storybook / Cloudflare Pages (push) Has been cancelled
Test: E2E Performance / build-and-test-performance (push) Has been cancelled
Test: Workflows Nightly / Run Workflow Tests (push) Has been cancelled
Util: Cleanup CI Docker Images / Delete stale CI images (push) Has been cancelled
Test: Benchmark Destroy Env / build (push) Has been cancelled
Util: Update Node Popularity / update-popularity (push) Has been cancelled
Test: E2E Coverage Weekly / Coverage Tests (push) Has been cancelled
first commit
2026-03-17 16:22:57 +03:30

62 lines
1.2 KiB
TypeScript

import type { IDataObject } from 'n8n-workflow';
import {
CloseHandler,
CreateHandler,
DeleteHandler,
GetAllHandler,
GetHandler,
MoveHandler,
ReopenHandler,
SyncHandler,
UpdateHandler,
} from './OperationHandler';
import type { Context } from '../GenericFunctions';
export class TodoistService implements Service {
async execute(
ctx: Context,
operation: OperationType,
itemIndex: number,
): Promise<TodoistResponse> {
return await 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 type OperationType =
| 'create'
| 'close'
| 'delete'
| 'get'
| 'getAll'
| 'reopen'
| 'update'
| 'move'
| 'sync';
export interface Section {
name: string;
id: string;
}
export interface Service {
execute(ctx: Context, operation: OperationType, itemIndex: number): Promise<TodoistResponse>;
}
export interface TodoistResponse {
success?: boolean;
data?: IDataObject;
}