mirror of
https://github.com/n8n-io/n8n.git
synced 2024-11-13 16:14:07 -08:00
63 lines
1.2 KiB
TypeScript
63 lines
1.2 KiB
TypeScript
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<TodoistResponse> {
|
|
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<TodoistResponse>;
|
|
}
|
|
|
|
export interface TodoistResponse {
|
|
success?: boolean;
|
|
data?: IDataObject;
|
|
}
|