import { StorageController } from '../storage.controller' import { TrelloController } from '../trello.controller' import { ZeebeController } from '../zeebe.controller' export class TrelloWorkerController { constructor( private zeebeController: ZeebeController, private store: StorageController, ) {} public createWorker(taskType: 'trelloAddCard') { this.zeebeController.getZeebeClient().createWorker({ taskType, taskHandler: async (job: any, complete: any, worker: any) => { const idList = job.customHeaders.idlist const name = job.customHeaders.name const trelloController = new TrelloController(this.store) try { switch (taskType) { case 'trelloAddCard': const id: string = await trelloController.addCard(idList, name) complete.success({ id }) break default: complete.failure(`Tasktype ${taskType} unknown`) } } catch (error) { complete.failure('Failed to send slack message') } }, }) } }