harvest
Version:
Harvest API client library
62 lines (61 loc) • 2.33 kB
TypeScript
import { RequestClient } from './client';
import { ClientsAPI } from './api/clients';
import { CompanyAPI } from './api/company';
import { ContactsAPI } from './api/contacts';
import { EstimateItemCategoriesAPI } from './api/estimateItemCategories';
import { EstimateMessagesAPI } from './api/estimateMessages';
import { EstimatesAPI } from './api/estimates';
import { ExpenseCategoriesAPI } from './api/expenseCategories';
import { ExpensesAPI } from './api/expenses';
import { InvoiceItemCategoriesAPI } from './api/invoiceItemCategories';
import { InvoiceMessagesAPI } from './api/invoiceMessages';
import { InvoicePaymentsAPI } from './api/invoicePayments';
import { InvoicesAPI } from './api/invoices';
import { ProjectAssignmentsAPI } from './api/projectAssignments';
import { ProjectsAPI } from './api/projects';
import { RolesAPI } from './api/roles';
import { TaskAssignmentsAPI } from './api/taskAssignments';
import { TasksAPI } from './api/tasks';
import { TimeEntriesAPI } from './api/timeEntries';
import { UserAssignmentsAPI } from './api/userAssignments';
import { UsersAPI } from './api/users';
export interface Config {
subdomain: string;
userAgent: string;
concurrency?: number;
debug?: boolean;
auth: {
accessToken: string;
accountId: string;
};
}
export default class Harvest {
host: string;
userAgent: string;
concurrency: number;
debug: boolean;
client: RequestClient;
request: <T>(method: string, uri: string, data?: any) => Promise<T>;
clients: ClientsAPI;
company: CompanyAPI;
contacts: ContactsAPI;
estimateItemCategories: EstimateItemCategoriesAPI;
estimateMessages: EstimateMessagesAPI;
estimates: EstimatesAPI;
expenseCategories: ExpenseCategoriesAPI;
expenses: ExpensesAPI;
invoiceItemCategories: InvoiceItemCategoriesAPI;
invoiceMessages: InvoiceMessagesAPI;
invoicePayments: InvoicePaymentsAPI;
invoices: InvoicesAPI;
projectAssignments: ProjectAssignmentsAPI;
projects: ProjectsAPI;
roles: RolesAPI;
taskAssignments: TaskAssignmentsAPI;
tasks: TasksAPI;
timeEntries: TimeEntriesAPI;
userAssignments: UserAssignmentsAPI;
users: UsersAPI;
constructor(config: Config);
requestGenerator<T>(): (method: string, uri: string, data?: any) => Promise<T>;
}