import { inject, injectable } from 'tsyringe'; import FindRepository from '../repositories/FindRepository'; import TabPresenter from '../presenters/TabPresenter'; import ConsoleClient from '../infrastructures/ConsoleClient'; @injectable() export default class FindUseCase { constructor( @inject('TabPresenter') private tabPresenter: TabPresenter, private findRepository: FindRepository, private consoleClient: ConsoleClient, ) { } getKeyword(): Promise { return this.findRepository.getKeyword(); } setKeyword(keyword: string): Promise { return this.findRepository.setKeyword(keyword); } async findStart(): Promise { const tab = await this.tabPresenter.getCurrent(); return this.consoleClient.showFind(tab.id as number); } }