RenaiApp/src/main/modules/nhentai/nhentai-ipc-controller.ts

27 lines
791 B
TypeScript

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<void> {
return this.nhentaiApi.login(credentials.name, credentials.password);
}
@answer(IpcChannel.LOGGED_IN)
public loggedIn(): Promise<boolean> {
return this.nhentaiApi.isLoggedIn();
}
public get(): NhentaiIpcController {
const nhentaiApi: INhentaiApi = container.get(Symbol.for('nhentai-api'));
return new NhentaiIpcController(nhentaiApi);
}
}