harvest
Version:
Harvest API client library
75 lines • 3.6 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const client_1 = require("./client");
const clients_1 = require("./api/clients");
const company_1 = require("./api/company");
const contacts_1 = require("./api/contacts");
const estimateItemCategories_1 = require("./api/estimateItemCategories");
const estimateMessages_1 = require("./api/estimateMessages");
const estimates_1 = require("./api/estimates");
const expenseCategories_1 = require("./api/expenseCategories");
const expenses_1 = require("./api/expenses");
const invoiceItemCategories_1 = require("./api/invoiceItemCategories");
const invoiceMessages_1 = require("./api/invoiceMessages");
const invoicePayments_1 = require("./api/invoicePayments");
const invoices_1 = require("./api/invoices");
const projectAssignments_1 = require("./api/projectAssignments");
const projects_1 = require("./api/projects");
const roles_1 = require("./api/roles");
const taskAssignments_1 = require("./api/taskAssignments");
const tasks_1 = require("./api/tasks");
const timeEntries_1 = require("./api/timeEntries");
const userAssignments_1 = require("./api/userAssignments");
const users_1 = require("./api/users");
class Harvest {
constructor(config) {
this.userAgent = null;
this.concurrency = null;
this.debug = false;
this.host = 'https://' + config.subdomain + '.harvestapp.com';
this.userAgent = config.userAgent;
this.concurrency = config.concurrency || null;
this.debug = config.debug || false;
this.client = new client_1.RequestClient(config);
this.request = this.requestGenerator();
this.clients = new clients_1.ClientsAPI(this);
this.company = new company_1.CompanyAPI(this);
this.contacts = new contacts_1.ContactsAPI(this);
this.estimates = new estimates_1.EstimatesAPI(this);
this.estimateItemCategories = new estimateItemCategories_1.EstimateItemCategoriesAPI(this);
this.estimateMessages = new estimateMessages_1.EstimateMessagesAPI(this);
this.expenses = new expenses_1.ExpensesAPI(this);
this.expenseCategories = new expenseCategories_1.ExpenseCategoriesAPI(this);
this.invoices = new invoices_1.InvoicesAPI(this);
this.invoiceItemCategories = new invoiceItemCategories_1.InvoiceItemCategoriesAPI(this);
this.invoiceMessages = new invoiceMessages_1.InvoiceMessagesAPI(this);
this.invoicePayments = new invoicePayments_1.InvoicePaymentsAPI(this);
this.projects = new projects_1.ProjectsAPI(this);
this.projectAssignments = new projectAssignments_1.ProjectAssignmentsAPI(this);
this.roles = new roles_1.RolesAPI(this);
this.tasks = new tasks_1.TasksAPI(this);
this.taskAssignments = new taskAssignments_1.TaskAssignmentsAPI(this);
this.timeEntries = new timeEntries_1.TimeEntriesAPI(this);
this.users = new users_1.UsersAPI(this);
this.userAssignments = new userAssignments_1.UserAssignmentsAPI(this);
}
requestGenerator() {
return (method, uri, data = {}) => {
return new Promise((resolve, reject) => {
this.client.push({
method,
uri,
data,
callback: (error, results) => {
if (error) {
reject(error);
}
resolve(results);
}
});
});
};
}
}
exports.default = Harvest;
//# sourceMappingURL=index.js.map