import { container } from '../../core/container'; import { answer } from '../ipc/annotations/answer'; import { INhentaiApi } from './i-nhentai-api'; export class NhentaiIpcController implements IIpcController { private nhentaiApi: INhentaiApi; public constructor(nhentaiApi: INhentaiApi) { this.nhentaiApi = nhentaiApi; } @answer(IpcChannel.LOGIN) public login(credentials: ICredentials): Promise { return this.nhentaiApi.login(credentials.name, credentials.password); } @answer(IpcChannel.LOGGED_IN) public loggedIn(): Promise { return this.nhentaiApi.isLoggedIn(); } public get(): NhentaiIpcController { const nhentaiApi: INhentaiApi = container.get('nhentai-api'); return new NhentaiIpcController(nhentaiApi); } }