UNPKG

amocrm-client

Version:
52 lines 2.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Client = void 0; require("reflect-metadata"); const EventEmitter_1 = require("./common/EventEmitter"); const Connection_1 = require("./common/Connection"); const Environment_1 = require("./common/Environment"); const ClientRequest_1 = require("./common/ClientRequest"); const Auth_1 = require("./common/Auth"); const Token_1 = require("./common/Token"); const CompanyFactory_1 = require("./api/factories/CompanyFactory"); const ContactFactory_1 = require("./api/factories/ContactFactory"); const LeadFactory_1 = require("./api/factories/LeadFactory"); const AccountFactory_1 = require("./api/factories/AccountFactory"); const UserFactory_1 = require("./api/factories/UserFactory"); /** * Основной класс библиотеки * */ class Client extends EventEmitter_1.EventEmitter { constructor(options) { super(); if (!options) { throw new Error('NO_OPTIONS'); } this.environment = new Environment_1.Environment(options); this.token = new Token_1.Token(this.environment); this.auth = new Auth_1.Auth(this.environment, this.token); this.connection = new Connection_1.Connection(this.environment, this.token, this.auth); this.request = new ClientRequest_1.ClientRequest(this.connection); this.account = new AccountFactory_1.AccountFactory(this.request); this.users = new UserFactory_1.UserFactory(this.request); this.User = this.assignEntity(this.users); this.leads = new LeadFactory_1.LeadFactory(this.request); this.Lead = this.assignEntity(this.leads); this.contacts = new ContactFactory_1.ContactFactory(this.request); this.Contact = this.assignEntity(this.contacts); this.companies = new CompanyFactory_1.CompanyFactory(this.request); this.Company = this.assignEntity(this.companies); } /** * Привязывает конструктор сущностей * @param factory - фабрика сущностей * @returns функция конструктор для вызова new client[Entity] * */ assignEntity(factory) { return function (attributes) { return factory.from(attributes); }; } } exports.Client = Client; //# sourceMappingURL=client.js.map