import { ipcRenderer } from 'electron';
import { BaseApiClient } from '@sinotron/core';
import { TodoApi } from './todo-api.interface'
import { TodoApiMeta } from './todo-api.meta';

export class TodoApiClient extends BaseApiClient<TodoApi> {
  constructor() {
    super(TodoApiMeta.key);
  }

  getImpl(): TodoApi {
    return {
      getTodos() {
        return ipcRenderer.invoke(TodoApiMeta.channels.getTodos);
      },
      getTodo(id: number) {
        return ipcRenderer.invoke(TodoApiMeta.channels.getTodo, id);
      }
    };
  }
}

export const todoApiClient = new TodoApiClient();