@in.pulse-crm/sdk 1.5.2 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,109 @@
1
+ import { AxiosInstance } from "axios";
2
+ export interface Customer {
3
+ CODIGO: number;
4
+ RAZAO: string;
5
+ FANTASIA: string;
6
+ PESSOA: 'FIS' | 'JUR' | null;
7
+ ATIVO: 'SIM' | 'NAO' | null;
8
+ CPF_CNPJ: string;
9
+ IE_RG: string;
10
+ GRUPO: number;
11
+ END_RUA: string;
12
+ CIDADE: string;
13
+ BAIRRO: string;
14
+ ESTADO: string;
15
+ CEP: string;
16
+ COMPLEMENTO: string;
17
+ AREA1: number;
18
+ AREA2: number;
19
+ AREA3: number;
20
+ AREAFAX: number;
21
+ FONE1: string;
22
+ FONE2: string;
23
+ FONE3: string;
24
+ FAX: string;
25
+ DESC_FONE1: string;
26
+ DESC_FONE2: string;
27
+ DESC_FONE3: string;
28
+ DESCFAX: string;
29
+ EMAIL: string;
30
+ WEBSITE: string;
31
+ DATACAD: Date;
32
+ STATUS_CAD: string;
33
+ OBS_ADMIN: string;
34
+ OBS_OPERADOR: string;
35
+ ORIGEM: number;
36
+ OPERADOR: number;
37
+ COD_MIDIA: number;
38
+ COD_ERP: string;
39
+ BLOCK_COMPRAS: 'SIM' | 'NAO' | null;
40
+ COD_UNIDADE: number;
41
+ SALDO_DISPONIVEL: number;
42
+ SALDO_LIMITE: number;
43
+ POTENCIAL: number;
44
+ DATA_ULT_COMPRA: Date;
45
+ SEGMENTO: number;
46
+ ULTI_RESULTADO: Date;
47
+ DT_AGENDAMENTO: Date;
48
+ COD_CAMPANHA: number;
49
+ COD_RESULTADO: number;
50
+ CONTATO_MAIL: string;
51
+ ATUALIZADOR: 'CADASTRO' | 'ATUALIZAÇÃO' | null;
52
+ OPERADOR_LOGIN: string;
53
+ OBS_FONE1: string;
54
+ OBS_FONE2: string;
55
+ OBS_FONE3: string;
56
+ NR_FUNCIONARIOS: number;
57
+ EMAIL2: string;
58
+ OBS_CLIENTES: string;
59
+ VENCIMENTO_LIMITE_CREDITO: Date;
60
+ PERIODO_RECOMPRA: number;
61
+ DT_ULTIMO_ORCAMENTO_VENDA: Date;
62
+ POSSUI_ORCAMENTO: 'S' | 'N' | null;
63
+ POSSUI_VENDA: 'S' | 'N' | null;
64
+ CODIGOPRINCIPAL: number;
65
+ SETOR: number;
66
+ }
67
+ export type CreateCustomerDTO = Pick<Customer, "RAZAO" | "FANTASIA" | "CPF_CNPJ" | "PESSOA" | "CIDADE" | "ESTADO" | "COD_ERP">;
68
+ export type UpdateCustomerDTO = Partial<CreateCustomerDTO>;
69
+ declare class CustomerSDK {
70
+ private readonly httpClient;
71
+ /**
72
+ * Cria uma instância do SDK de usuários.
73
+ * @param httpClient - A instância do cliente HTTP a ser usada para fazer requisições à API.
74
+ */
75
+ constructor(httpClient: AxiosInstance);
76
+ /**
77
+ * Cria um novo cliente.
78
+ * @param data - Os dados do cliente a serem criados.
79
+ * @returns Uma Promise que resolve para o cliente criado.
80
+ */
81
+ createCustomer(data: CreateCustomerDTO): Promise<any>;
82
+ /**
83
+ * Obtém um cliente pelo ID.
84
+ * @param customerId - O ID do cliente a ser obtido.
85
+ * @returns Uma Promise que resolve para o cliente obtido.
86
+ */
87
+ getCustomerById(customerId: number): Promise<any>;
88
+ /**
89
+ * Atualiza um cliente existente.
90
+ * @param customerId - O ID do cliente a ser atualizado.
91
+ * @param data - Os dados atualizados do cliente.
92
+ * @returns Uma Promise que resolve para o cliente atualizado.
93
+ */
94
+ updateCustomer(customerId: number, data: UpdateCustomerDTO): Promise<any>;
95
+ /**
96
+ * Obtém todos os clientes.
97
+ *
98
+ * @param filters - Filtros opcionais para a busca de clientes.
99
+ * @todo Implementar tipagem para os filtros.
100
+ * @returns Uma Promise que resolve para uma lista de clientes.
101
+ */
102
+ getAllCustomers(filters: Record<string, string>): Promise<any>;
103
+ /**
104
+ * Define o token de autenticação para as requisições.
105
+ * @param token - O token de autenticação a ser definido.
106
+ */
107
+ setAuth(token: string): void;
108
+ }
109
+ export default CustomerSDK;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class CustomerSDK {
4
+ httpClient;
5
+ /**
6
+ * Cria uma instância do SDK de usuários.
7
+ * @param httpClient - A instância do cliente HTTP a ser usada para fazer requisições à API.
8
+ */
9
+ constructor(httpClient) {
10
+ this.httpClient = httpClient;
11
+ }
12
+ /**
13
+ * Cria um novo cliente.
14
+ * @param data - Os dados do cliente a serem criados.
15
+ * @returns Uma Promise que resolve para o cliente criado.
16
+ */
17
+ async createCustomer(data) {
18
+ const response = await this.httpClient.post(`/customers`, data);
19
+ return response.data;
20
+ }
21
+ /**
22
+ * Obtém um cliente pelo ID.
23
+ * @param customerId - O ID do cliente a ser obtido.
24
+ * @returns Uma Promise que resolve para o cliente obtido.
25
+ */
26
+ async getCustomerById(customerId) {
27
+ const response = await this.httpClient.get(`/customers/${customerId}`);
28
+ return response.data;
29
+ }
30
+ /**
31
+ * Atualiza um cliente existente.
32
+ * @param customerId - O ID do cliente a ser atualizado.
33
+ * @param data - Os dados atualizados do cliente.
34
+ * @returns Uma Promise que resolve para o cliente atualizado.
35
+ */
36
+ async updateCustomer(customerId, data) {
37
+ const response = await this.httpClient.patch(`/customers/${customerId}`, data);
38
+ return response.data;
39
+ }
40
+ /**
41
+ * Obtém todos os clientes.
42
+ *
43
+ * @param filters - Filtros opcionais para a busca de clientes.
44
+ * @todo Implementar tipagem para os filtros.
45
+ * @returns Uma Promise que resolve para uma lista de clientes.
46
+ */
47
+ async getAllCustomers(filters) {
48
+ let baseUrl = `/customers`;
49
+ const params = new URLSearchParams(filters);
50
+ if (params.toString()) {
51
+ baseUrl += `?${params.toString()}`;
52
+ }
53
+ const response = await this.httpClient.get(`/customers`);
54
+ return response.data;
55
+ }
56
+ /**
57
+ * Define o token de autenticação para as requisições.
58
+ * @param token - O token de autenticação a ser definido.
59
+ */
60
+ setAuth(token) {
61
+ this.httpClient.defaults.headers.common["Authorization"] = `Bearer ${token}`;
62
+ }
63
+ }
64
+ exports.default = CustomerSDK;
package/dist/index.d.ts CHANGED
@@ -2,10 +2,11 @@ import AuthSDK, { LoginData, SessionData } from "./auth";
2
2
  import FileSDK, { File, FileDirType } from "./file";
3
3
  import InstanceSDK from "./instance";
4
4
  import UserSDK, { CreateUserDTO, UpdateUserDTO, User, UserRole } from "./user";
5
+ import CustomerSDK, { Customer, CreateCustomerDTO, UpdateCustomerDTO } from "./customer";
5
6
  import { DataResponse, ErrorResponse, PaginatedResponse, QueryResponse } from "./response";
6
7
  import ReportSDK, { ChatsReport, ChatsReportFormat, GenerateChatsReportOptions } from "./report";
7
8
  import SocketClientSDK from "./socket-client";
8
9
  import SocketServerSDK from "./socket-server";
9
10
  import { EmitFunction, ChatsReportStatusData, SocketServerAdminRoom, SocketServerMonitorRoom, SocketServerReportsRoom, SocketServerRoom, ChatId, QRCode, SocketEventType } from "./types/socket-server.types";
10
11
  import { SocketClientChatRoom, SocketClientAdminRoom, SocketClientMonitorRoom, SocketClientReportsRoom, SocketClientRoom } from "./types/socket-client.types";
11
- export { AuthSDK, LoginData, SessionData, FileSDK, File, FileDirType, InstanceSDK, UserSDK, CreateUserDTO, UpdateUserDTO, User, UserRole, DataResponse, ErrorResponse, PaginatedResponse, QueryResponse, ReportSDK, ChatsReport, ChatsReportFormat as ChatsReportFileFormat, GenerateChatsReportOptions, SocketClientSDK, SocketClientChatRoom as SocketChatRoom, SocketClientAdminRoom, SocketClientMonitorRoom, SocketClientReportsRoom, SocketClientRoom, SocketServerSDK, EmitFunction, SocketEventType, ChatsReportStatusData, SocketServerAdminRoom, SocketServerMonitorRoom, SocketServerReportsRoom, SocketServerRoom, ChatId, QRCode, };
12
+ export { AuthSDK, LoginData, SessionData, FileSDK, File, FileDirType, InstanceSDK, UserSDK, CreateUserDTO, UpdateUserDTO, User, UserRole, CustomerSDK, Customer, CreateCustomerDTO, UpdateCustomerDTO, DataResponse, ErrorResponse, PaginatedResponse, QueryResponse, ReportSDK, ChatsReport, ChatsReportFormat as ChatsReportFileFormat, GenerateChatsReportOptions, SocketClientSDK, SocketClientChatRoom as SocketChatRoom, SocketClientAdminRoom, SocketClientMonitorRoom, SocketClientReportsRoom, SocketClientRoom, SocketServerSDK, EmitFunction, SocketEventType, ChatsReportStatusData, SocketServerAdminRoom, SocketServerMonitorRoom, SocketServerReportsRoom, SocketServerRoom, ChatId, QRCode, };
package/dist/index.js CHANGED
@@ -36,7 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.SocketServerSDK = exports.SocketClientSDK = exports.ReportSDK = exports.UserRole = exports.UserSDK = exports.InstanceSDK = exports.FileDirType = exports.FileSDK = exports.AuthSDK = void 0;
39
+ exports.SocketServerSDK = exports.SocketClientSDK = exports.ReportSDK = exports.CustomerSDK = exports.UserRole = exports.UserSDK = exports.InstanceSDK = exports.FileDirType = exports.FileSDK = exports.AuthSDK = void 0;
40
40
  const auth_1 = __importDefault(require("./auth"));
41
41
  exports.AuthSDK = auth_1.default;
42
42
  const file_1 = __importStar(require("./file"));
@@ -47,6 +47,8 @@ exports.InstanceSDK = instance_1.default;
47
47
  const user_1 = __importStar(require("./user"));
48
48
  exports.UserSDK = user_1.default;
49
49
  Object.defineProperty(exports, "UserRole", { enumerable: true, get: function () { return user_1.UserRole; } });
50
+ const customer_1 = __importDefault(require("./customer"));
51
+ exports.CustomerSDK = customer_1.default;
50
52
  const report_1 = __importDefault(require("./report"));
51
53
  exports.ReportSDK = report_1.default;
52
54
  const socket_client_1 = __importDefault(require("./socket-client"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@in.pulse-crm/sdk",
3
- "version": "1.5.2",
3
+ "version": "1.6.0",
4
4
  "description": "SDKs for abstraction of api consumption of in.pulse-crm application",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -0,0 +1,140 @@
1
+ import { AxiosInstance } from "axios";
2
+
3
+ export interface Customer {
4
+ CODIGO: number;
5
+ RAZAO: string;
6
+ FANTASIA: string;
7
+ PESSOA: 'FIS' | 'JUR' | null;
8
+ ATIVO: 'SIM' | 'NAO' | null;
9
+ CPF_CNPJ: string;
10
+ IE_RG: string;
11
+ GRUPO: number;
12
+ END_RUA: string;
13
+ CIDADE: string;
14
+ BAIRRO: string;
15
+ ESTADO: string;
16
+ CEP: string;
17
+ COMPLEMENTO: string;
18
+ AREA1: number;
19
+ AREA2: number;
20
+ AREA3: number;
21
+ AREAFAX: number;
22
+ FONE1: string;
23
+ FONE2: string;
24
+ FONE3: string;
25
+ FAX: string;
26
+ DESC_FONE1: string;
27
+ DESC_FONE2: string;
28
+ DESC_FONE3: string;
29
+ DESCFAX: string;
30
+ EMAIL: string;
31
+ WEBSITE: string;
32
+ DATACAD: Date;
33
+ STATUS_CAD: string;
34
+ OBS_ADMIN: string;
35
+ OBS_OPERADOR: string;
36
+ ORIGEM: number;
37
+ OPERADOR: number;
38
+ COD_MIDIA: number;
39
+ COD_ERP: string;
40
+ BLOCK_COMPRAS: 'SIM' | 'NAO' | null;
41
+ COD_UNIDADE: number;
42
+ SALDO_DISPONIVEL: number;
43
+ SALDO_LIMITE: number;
44
+ POTENCIAL: number;
45
+ DATA_ULT_COMPRA: Date;
46
+ SEGMENTO: number;
47
+ ULTI_RESULTADO: Date;
48
+ DT_AGENDAMENTO: Date;
49
+ COD_CAMPANHA: number;
50
+ COD_RESULTADO: number;
51
+ CONTATO_MAIL: string;
52
+ ATUALIZADOR: 'CADASTRO' | 'ATUALIZAÇÃO' | null;
53
+ OPERADOR_LOGIN: string;
54
+ OBS_FONE1: string;
55
+ OBS_FONE2: string;
56
+ OBS_FONE3: string;
57
+ NR_FUNCIONARIOS: number;
58
+ EMAIL2: string;
59
+ OBS_CLIENTES: string;
60
+ VENCIMENTO_LIMITE_CREDITO: Date;
61
+ PERIODO_RECOMPRA: number;
62
+ DT_ULTIMO_ORCAMENTO_VENDA: Date;
63
+ POSSUI_ORCAMENTO: 'S' | 'N' | null;
64
+ POSSUI_VENDA: 'S' | 'N' | null;
65
+ CODIGOPRINCIPAL: number;
66
+ SETOR: number;
67
+ }
68
+
69
+ export type CreateCustomerDTO = Pick<Customer, "RAZAO" | "FANTASIA" | "CPF_CNPJ" | "PESSOA" | "CIDADE" | "ESTADO" | "COD_ERP">;
70
+ export type UpdateCustomerDTO = Partial<CreateCustomerDTO>;
71
+
72
+ class CustomerSDK {
73
+ /**
74
+ * Cria uma instância do SDK de usuários.
75
+ * @param httpClient - A instância do cliente HTTP a ser usada para fazer requisições à API.
76
+ */
77
+ constructor(private readonly httpClient: AxiosInstance) { }
78
+
79
+ /**
80
+ * Cria um novo cliente.
81
+ * @param data - Os dados do cliente a serem criados.
82
+ * @returns Uma Promise que resolve para o cliente criado.
83
+ */
84
+ public async createCustomer(data: CreateCustomerDTO) {
85
+ const response = await this.httpClient.post(`/customers`, data);
86
+
87
+ return response.data;
88
+ }
89
+
90
+ /**
91
+ * Obtém um cliente pelo ID.
92
+ * @param customerId - O ID do cliente a ser obtido.
93
+ * @returns Uma Promise que resolve para o cliente obtido.
94
+ */
95
+ public async getCustomerById(customerId: number) {
96
+ const response = await this.httpClient.get(`/customers/${customerId}`);
97
+ return response.data;
98
+ }
99
+
100
+ /**
101
+ * Atualiza um cliente existente.
102
+ * @param customerId - O ID do cliente a ser atualizado.
103
+ * @param data - Os dados atualizados do cliente.
104
+ * @returns Uma Promise que resolve para o cliente atualizado.
105
+ */
106
+ public async updateCustomer(customerId: number, data: UpdateCustomerDTO) {
107
+ const response = await this.httpClient.patch(`/customers/${customerId}`, data);
108
+ return response.data;
109
+ }
110
+
111
+ /**
112
+ * Obtém todos os clientes.
113
+ *
114
+ * @param filters - Filtros opcionais para a busca de clientes.
115
+ * @todo Implementar tipagem para os filtros.
116
+ * @returns Uma Promise que resolve para uma lista de clientes.
117
+ */
118
+ public async getAllCustomers(filters: Record<string, string>) {
119
+ let baseUrl = `/customers`;
120
+ const params = new URLSearchParams(filters);
121
+
122
+ if (params.toString()) {
123
+ baseUrl += `?${params.toString()}`;
124
+ }
125
+
126
+ const response = await this.httpClient.get(`/customers`);
127
+
128
+ return response.data;
129
+ }
130
+
131
+ /**
132
+ * Define o token de autenticação para as requisições.
133
+ * @param token - O token de autenticação a ser definido.
134
+ */
135
+ public setAuth(token: string) {
136
+ this.httpClient.defaults.headers.common["Authorization"] = `Bearer ${token}`;
137
+ }
138
+ }
139
+
140
+ export default CustomerSDK;
package/src/index.ts CHANGED
@@ -2,6 +2,7 @@ import AuthSDK, { LoginData, SessionData } from "./auth";
2
2
  import FileSDK, { File, FileDirType } from "./file";
3
3
  import InstanceSDK from "./instance";
4
4
  import UserSDK, { CreateUserDTO, UpdateUserDTO, User, UserRole } from "./user";
5
+ import CustomerSDK, { Customer, CreateCustomerDTO, UpdateCustomerDTO } from "./customer";
5
6
  import { DataResponse, ErrorResponse, PaginatedResponse, QueryResponse } from "./response";
6
7
  import ReportSDK, { ChatsReport, ChatsReportFormat, GenerateChatsReportOptions } from "./report";
7
8
  import SocketClientSDK from "./socket-client";
@@ -46,6 +47,12 @@ export {
46
47
  User,
47
48
  UserRole,
48
49
 
50
+ // Customer
51
+ CustomerSDK,
52
+ Customer,
53
+ CreateCustomerDTO,
54
+ UpdateCustomerDTO,
55
+
49
56
  // Response
50
57
  DataResponse,
51
58
  ErrorResponse,