@in.pulse-crm/sdk 1.3.5 → 1.3.7

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.
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import FileSDK, { File, FileDirType } from "./file";
3
3
  import InstanceSDK from "./instance";
4
4
  import UserSDK, { CreateUserDTO, UpdateUserDTO, User, UserRole } from "./user";
5
5
  import { DataResponse, ErrorResponse, PaginatedResponse, QueryResponse } from "./response";
6
- import ReportSDK, { ChatReport, ChatReportFileFormat, GenerateChatReportOptions } from "./report";
6
+ import ReportSDK, { ChatsReport, ChatsReportFileFormat, GenerateChatsReportOptions } from "./report";
7
7
  import SocketClientSDK, { JoinChatFunction, JoinRoomFunction, ListenEventFunction } from "./socket-client";
8
8
  import SocketServerSDK, { EmitFunction, InstanceName, SocketAdminRoom, SocketChatRoom, SocketMonitorRoom, SocketReportsRoom, SocketRoomType, SocketEventType } from "./socket-server";
9
- export { AuthSDK, LoginData, SessionData, FileSDK, File, FileDirType, InstanceSDK, UserSDK, CreateUserDTO, UpdateUserDTO, User, UserRole, DataResponse, ErrorResponse, PaginatedResponse, QueryResponse, ReportSDK, ChatReport, ChatReportFileFormat, GenerateChatReportOptions, SocketClientSDK, JoinChatFunction, JoinRoomFunction, ListenEventFunction, SocketServerSDK, EmitFunction, InstanceName, SocketAdminRoom, SocketReportsRoom, SocketChatRoom, SocketEventType, SocketMonitorRoom, SocketRoomType };
9
+ export { AuthSDK, LoginData, SessionData, FileSDK, File, FileDirType, InstanceSDK, UserSDK, CreateUserDTO, UpdateUserDTO, User, UserRole, DataResponse, ErrorResponse, PaginatedResponse, QueryResponse, ReportSDK, ChatsReport as ChatReport, ChatsReportFileFormat as ChatReportFileFormat, GenerateChatsReportOptions as GenerateChatReportOptions, SocketClientSDK, JoinChatFunction, JoinRoomFunction, ListenEventFunction, SocketServerSDK, EmitFunction, InstanceName, SocketAdminRoom, SocketReportsRoom, SocketChatRoom, SocketEventType, SocketMonitorRoom, SocketRoomType };
package/dist/index.js CHANGED
@@ -49,7 +49,7 @@ exports.UserSDK = user_1.default;
49
49
  Object.defineProperty(exports, "UserRole", { enumerable: true, get: function () { return user_1.UserRole; } });
50
50
  const report_1 = __importStar(require("./report"));
51
51
  exports.ReportSDK = report_1.default;
52
- Object.defineProperty(exports, "ChatReportFileFormat", { enumerable: true, get: function () { return report_1.ChatReportFileFormat; } });
52
+ Object.defineProperty(exports, "ChatReportFileFormat", { enumerable: true, get: function () { return report_1.ChatsReportFileFormat; } });
53
53
  const socket_client_1 = __importDefault(require("./socket-client"));
54
54
  exports.SocketClientSDK = socket_client_1.default;
55
55
  const socket_server_1 = __importStar(require("./socket-server"));
package/dist/report.d.ts CHANGED
@@ -1,6 +1,11 @@
1
1
  import { AxiosInstance } from "axios";
2
2
  import { DataResponse, MessageResponse } from "./response";
3
- export interface ChatReport {
3
+ export declare enum ChatsReportStatus {
4
+ PENDING = "PENDING",
5
+ COMPLETED = "COMPLETED",
6
+ FAILED = "FAILED"
7
+ }
8
+ export interface ChatsReport {
4
9
  id: number;
5
10
  userId: string;
6
11
  fileId: number;
@@ -9,15 +14,18 @@ export interface ChatReport {
9
14
  startDate: string;
10
15
  endDate: string;
11
16
  exportDate: string;
17
+ chats: number;
18
+ messages: number;
19
+ status: ChatsReportStatus;
12
20
  }
13
- export interface GenerateChatReportOptions {
21
+ export interface GenerateChatsReportOptions {
14
22
  instance: string;
15
23
  userId: string;
16
- format: ChatReportFileFormat;
24
+ format: ChatsReportFileFormat;
17
25
  startDate: string;
18
26
  endDate: string;
19
27
  }
20
- export declare enum ChatReportFileFormat {
28
+ export declare enum ChatsReportFileFormat {
21
29
  TXT = "txt",
22
30
  CSV = "csv",
23
31
  PDF = "pdf"
@@ -25,7 +33,7 @@ export declare enum ChatReportFileFormat {
25
33
  export default class ReportSDK {
26
34
  private readonly httpClient;
27
35
  constructor(httpClient: AxiosInstance);
28
- getChatsReports(instanceName: string): Promise<DataResponse<ChatReport[]>>;
29
- generateChatReport({ instance, ...body }: GenerateChatReportOptions): Promise<DataResponse<ChatReport>>;
30
- deleteReport(instanceName: string, reportId: number): Promise<MessageResponse>;
36
+ getChatsReports(instanceName: string): Promise<DataResponse<ChatsReport[]>>;
37
+ generateChatsReport({ instance, ...body }: GenerateChatsReportOptions): Promise<DataResponse<ChatsReport>>;
38
+ deleteChatsReport(instanceName: string, chatsReportId: number): Promise<MessageResponse>;
31
39
  }
package/dist/report.js CHANGED
@@ -1,12 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ChatReportFileFormat = void 0;
4
- var ChatReportFileFormat;
5
- (function (ChatReportFileFormat) {
6
- ChatReportFileFormat["TXT"] = "txt";
7
- ChatReportFileFormat["CSV"] = "csv";
8
- ChatReportFileFormat["PDF"] = "pdf";
9
- })(ChatReportFileFormat || (exports.ChatReportFileFormat = ChatReportFileFormat = {}));
3
+ exports.ChatsReportFileFormat = exports.ChatsReportStatus = void 0;
4
+ var ChatsReportStatus;
5
+ (function (ChatsReportStatus) {
6
+ ChatsReportStatus["PENDING"] = "PENDING";
7
+ ChatsReportStatus["COMPLETED"] = "COMPLETED";
8
+ ChatsReportStatus["FAILED"] = "FAILED";
9
+ })(ChatsReportStatus || (exports.ChatsReportStatus = ChatsReportStatus = {}));
10
+ var ChatsReportFileFormat;
11
+ (function (ChatsReportFileFormat) {
12
+ ChatsReportFileFormat["TXT"] = "txt";
13
+ ChatsReportFileFormat["CSV"] = "csv";
14
+ ChatsReportFileFormat["PDF"] = "pdf";
15
+ })(ChatsReportFileFormat || (exports.ChatsReportFileFormat = ChatsReportFileFormat = {}));
10
16
  class ReportSDK {
11
17
  httpClient;
12
18
  constructor(httpClient) {
@@ -17,13 +23,13 @@ class ReportSDK {
17
23
  const response = await this.httpClient.get(url);
18
24
  return response.data;
19
25
  }
20
- async generateChatReport({ instance, ...body }) {
26
+ async generateChatsReport({ instance, ...body }) {
21
27
  const url = `/${instance}/reports/chats`;
22
28
  const response = await this.httpClient.post(url, body);
23
29
  return response.data;
24
30
  }
25
- async deleteReport(instanceName, reportId) {
26
- const url = `/${instanceName}/reports/chats/${reportId}`;
31
+ async deleteChatsReport(instanceName, chatsReportId) {
32
+ const url = `/${instanceName}/reports/chats/${chatsReportId}`;
27
33
  const response = await this.httpClient.delete(url);
28
34
  return response.data;
29
35
  }
@@ -1,6 +1,6 @@
1
1
  import { Socket } from "socket.io-client";
2
2
  import { PhoneNumber } from "@in.pulse-crm/utils";
3
- import { ChatId, NotImplemented, QRCode, ReportStatusData, SocketEventType, SocketRoomType } from "./socket-server";
3
+ import { ChatId, NotImplemented, QRCode, ChatsReportStatusData, SocketEventType, SocketRoomType } from "./socket-server";
4
4
  /**
5
5
  * Função para entrar em uma sala de socket.
6
6
  */
@@ -61,7 +61,7 @@ export type ListenEventFunction = {
61
61
  * @trigger Quando o status de um relatório é atualizado
62
62
  * @target Sala de relatórios
63
63
  */
64
- (event: SocketEventType.REPORT_STATUS, listener: (data: ReportStatusData) => void): void;
64
+ (event: SocketEventType.REPORT_STATUS, listener: (data: ChatsReportStatusData) => void): void;
65
65
  };
66
66
  /**
67
67
  * Classe para consumo dos eventos de socket.
@@ -38,23 +38,25 @@ export type SocketRoomType = SocketChatRoom | SocketAdminRoom | SocketReportsRoo
38
38
  */
39
39
  export type NotImplemented = unknown;
40
40
  /**
41
- * Dados de status de um relatório.
41
+ * Dados de status de um relatório de conversas.
42
42
  */
43
- export type ReportStatusData = {
43
+ export type ChatsReportStatusData = {
44
44
  id: number;
45
- type: string;
45
+ type: "chats-report";
46
46
  isCompleted: false;
47
47
  isFailed: false;
48
48
  progress: number;
49
49
  } | {
50
50
  id: number;
51
- type: string;
51
+ type: "chats-report";
52
52
  isCompleted: true;
53
53
  isFailed: false;
54
54
  fileId: number;
55
+ chats: number;
56
+ messages: number;
55
57
  } | {
56
58
  id: number;
57
- type: string;
59
+ type: "chats-report";
58
60
  isCompleted: false;
59
61
  isFailed: true;
60
62
  error: string;
@@ -146,7 +148,7 @@ export type EmitFunction = {
146
148
  (instanceName: string, room: SocketAdminRoom, event: SocketEventType.NOTIFICATION, value: NotImplemented): void;
147
149
  (instanceName: string, room: SocketChatRoom, event: SocketEventType.MESSAGE_EDIT, value: NotImplemented): void;
148
150
  (instanceName: string, room: SocketChatRoom, event: SocketEventType.MESSAGE_STATUS, value: NotImplemented): void;
149
- (instanceName: string, room: SocketReportsRoom, event: SocketEventType.REPORT_STATUS, value: ReportStatusData): void;
151
+ (instanceName: string, room: SocketReportsRoom, event: SocketEventType.REPORT_STATUS, value: ChatsReportStatusData): void;
150
152
  };
151
153
  /**
152
154
  * Classe para manipulação de eventos de socket.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@in.pulse-crm/sdk",
3
- "version": "1.3.5",
3
+ "version": "1.3.7",
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",
package/src/auth.ts CHANGED
@@ -60,13 +60,12 @@ export default class AuthSDK {
60
60
 
61
61
  /**
62
62
  * Busca os dados da sessão.
63
- * @param {string} instanceName Nome da instância do Inpulse.
64
63
  * @param {string} authToken Token de autenticação.
65
64
  * @returns {Promise<DataResponse<AuthTypes.SessionData>>} Dados da sessão.
66
65
  */
67
- public async fetchSessionData(instanceName: string, authToken: string): Promise<DataResponse<SessionData>> {
66
+ public async fetchSessionData(authToken: string): Promise<DataResponse<SessionData>> {
68
67
  const response = await this.httpClient
69
- .get<DataResponse<SessionData>>(`/${instanceName}/auth`, {
68
+ .get<DataResponse<SessionData>>(`/auth`, {
70
69
  headers: {
71
70
  authorization: authToken,
72
71
  },
@@ -81,13 +80,12 @@ export default class AuthSDK {
81
80
 
82
81
  /**
83
82
  * Busca os dados do usuário da sessão.
84
- * @param {string} instanceName Nome da instância do Inpulse.
85
83
  * @param {string} authToken Token de autenticação.
86
84
  * @returns {Promise<DataResponse<AuthTypes.User>>} Dados do usuário.
87
85
  */
88
- public async fetchSessionUser(instanceName: string, authToken: string): Promise<DataResponse<User>> {
86
+ public async fetchSessionUser(authToken: string): Promise<DataResponse<User>> {
89
87
  const response = await this.httpClient
90
- .get<DataResponse<User>>(`/${instanceName}/auth/user`, {
88
+ .get<DataResponse<User>>(`/auth/user`, {
91
89
  headers: {
92
90
  authorization: authToken,
93
91
  },
@@ -108,9 +106,9 @@ export default class AuthSDK {
108
106
  */
109
107
  public async isAuthenticated(instanceName: string, authToken: string): Promise<boolean> {
110
108
  try {
111
- const { data } = await this.fetchSessionData(instanceName, authToken);
109
+ const { data } = await this.fetchSessionData(authToken);
112
110
 
113
- return !!data.userId;
111
+ return !!data.userId && data.instance === instanceName;
114
112
  } catch {
115
113
  return false;
116
114
  }
@@ -129,9 +127,9 @@ export default class AuthSDK {
129
127
  authorizedRoles: string[],
130
128
  ): Promise<boolean> {
131
129
  try {
132
- const { data } = await this.fetchSessionData(instanceName, authToken);
130
+ const { data } = await this.fetchSessionData(authToken);
133
131
 
134
- return authorizedRoles.includes(data.role);
132
+ return authorizedRoles.includes(data.role) && data.instance === instanceName;
135
133
  } catch {
136
134
  return false;
137
135
  }
package/src/file.ts CHANGED
@@ -35,7 +35,6 @@ export enum FileDirType {
35
35
  MODELS = "models",
36
36
  }
37
37
 
38
-
39
38
  /**
40
39
  * Representa um arquivo no sistema.
41
40
  */
package/src/index.ts CHANGED
@@ -3,7 +3,7 @@ import FileSDK, { File, FileDirType } from "./file";
3
3
  import InstanceSDK from "./instance";
4
4
  import UserSDK, { CreateUserDTO, UpdateUserDTO, User, UserRole } from "./user";
5
5
  import { DataResponse, ErrorResponse, PaginatedResponse, QueryResponse } from "./response";
6
- import ReportSDK, { ChatReport, ChatReportFileFormat, GenerateChatReportOptions } from "./report";
6
+ import ReportSDK, { ChatsReport, ChatsReportFileFormat, GenerateChatsReportOptions } from "./report";
7
7
  import SocketClientSDK, { JoinChatFunction, JoinRoomFunction, ListenEventFunction } from "./socket-client";
8
8
  import
9
9
  SocketServerSDK,
@@ -36,9 +36,9 @@ export {
36
36
  PaginatedResponse,
37
37
  QueryResponse,
38
38
  ReportSDK,
39
- ChatReport,
40
- ChatReportFileFormat,
41
- GenerateChatReportOptions,
39
+ ChatsReport as ChatReport,
40
+ ChatsReportFileFormat as ChatReportFileFormat,
41
+ GenerateChatsReportOptions as GenerateChatReportOptions,
42
42
  SocketClientSDK,
43
43
  JoinChatFunction,
44
44
  JoinRoomFunction,
package/src/report.ts CHANGED
@@ -1,7 +1,13 @@
1
1
  import { AxiosInstance } from "axios";
2
2
  import { DataResponse, MessageResponse } from "./response";
3
3
 
4
- export interface ChatReport {
4
+ export enum ChatsReportStatus {
5
+ PENDING = "PENDING",
6
+ COMPLETED = "COMPLETED",
7
+ FAILED = "FAILED",
8
+ }
9
+
10
+ export interface ChatsReport {
5
11
  id: number;
6
12
  userId: string;
7
13
  fileId: number;
@@ -10,17 +16,20 @@ export interface ChatReport {
10
16
  startDate: string;
11
17
  endDate: string;
12
18
  exportDate: string;
19
+ chats: number;
20
+ messages: number;
21
+ status: ChatsReportStatus;
13
22
  }
14
23
 
15
- export interface GenerateChatReportOptions {
24
+ export interface GenerateChatsReportOptions {
16
25
  instance: string;
17
26
  userId: string;
18
- format: ChatReportFileFormat;
27
+ format: ChatsReportFileFormat;
19
28
  startDate: string;
20
29
  endDate: string;
21
30
  }
22
31
 
23
- export enum ChatReportFileFormat {
32
+ export enum ChatsReportFileFormat {
24
33
  TXT = "txt",
25
34
  CSV = "csv",
26
35
  PDF = "pdf",
@@ -32,17 +41,17 @@ export default class ReportSDK {
32
41
  public async getChatsReports(instanceName: string) {
33
42
  const url = `/${instanceName}/reports/chats`;
34
43
  const response =
35
- await this.httpClient.get<DataResponse<Array<ChatReport>>>(url);
44
+ await this.httpClient.get<DataResponse<Array<ChatsReport>>>(url);
36
45
 
37
46
  return response.data;
38
47
  }
39
48
 
40
- public async generateChatReport({
49
+ public async generateChatsReport({
41
50
  instance,
42
51
  ...body
43
- }: GenerateChatReportOptions) {
52
+ }: GenerateChatsReportOptions) {
44
53
  const url = `/${instance}/reports/chats`;
45
- const response = await this.httpClient.post<DataResponse<ChatReport>>(
54
+ const response = await this.httpClient.post<DataResponse<ChatsReport>>(
46
55
  url,
47
56
  body,
48
57
  );
@@ -50,8 +59,8 @@ export default class ReportSDK {
50
59
  return response.data;
51
60
  }
52
61
 
53
- public async deleteReport(instanceName: string, reportId: number) {
54
- const url = `/${instanceName}/reports/chats/${reportId}`;
62
+ public async deleteChatsReport(instanceName: string, chatsReportId: number) {
63
+ const url = `/${instanceName}/reports/chats/${chatsReportId}`;
55
64
  const response = await this.httpClient.delete<MessageResponse>(url);
56
65
 
57
66
  return response.data;
@@ -1,6 +1,6 @@
1
1
  import { Socket } from "socket.io-client";
2
2
  import { PhoneNumber } from "@in.pulse-crm/utils";
3
- import { ChatId, NotImplemented, QRCode, ReportStatusData, SocketEventType, SocketRoomType } from "./socket-server";
3
+ import { ChatId, NotImplemented, QRCode, ChatsReportStatusData, SocketEventType, SocketRoomType } from "./socket-server";
4
4
 
5
5
  /**
6
6
  * Função para entrar em uma sala de socket.
@@ -71,7 +71,7 @@ export type ListenEventFunction = {
71
71
  * @trigger Quando o status de um relatório é atualizado
72
72
  * @target Sala de relatórios
73
73
  */
74
- (event: SocketEventType.REPORT_STATUS, listener: (data: ReportStatusData) => void): void;
74
+ (event: SocketEventType.REPORT_STATUS, listener: (data: ChatsReportStatusData) => void): void;
75
75
  }
76
76
 
77
77
  /**
@@ -46,23 +46,25 @@ export type SocketRoomType = SocketChatRoom | SocketAdminRoom | SocketReportsRoo
46
46
  export type NotImplemented = unknown;
47
47
 
48
48
  /**
49
- * Dados de status de um relatório.
49
+ * Dados de status de um relatório de conversas.
50
50
  */
51
- export type ReportStatusData = {
51
+ export type ChatsReportStatusData = {
52
52
  id: number;
53
- type: string;
53
+ type: "chats-report";
54
54
  isCompleted: false;
55
55
  isFailed: false;
56
56
  progress: number;
57
57
  } | {
58
58
  id: number;
59
- type: string;
59
+ type: "chats-report";
60
60
  isCompleted: true;
61
61
  isFailed: false;
62
62
  fileId: number;
63
+ chats: number;
64
+ messages: number;
63
65
  } | {
64
66
  id: number;
65
- type: string;
67
+ type: "chats-report";
66
68
  isCompleted: false;
67
69
  isFailed: true;
68
70
  error: string;
@@ -198,7 +200,7 @@ export type EmitFunction = {
198
200
  instanceName: string,
199
201
  room: SocketReportsRoom,
200
202
  event: SocketEventType.REPORT_STATUS,
201
- value: ReportStatusData
203
+ value: ChatsReportStatusData
202
204
  ): void;
203
205
  };
204
206