27 lines
791 B
TypeScript
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);
|
|
}
|
|
}
|