rez_core 2.2.258 → 2.2.259

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.
Files changed (233) hide show
  1. package/dist/app.module.js +2 -2
  2. package/dist/app.module.js.map +1 -1
  3. package/dist/module/integration/controller/calender-event.controller.js.map +1 -0
  4. package/dist/module/integration/controller/integration.controller.d.ts +113 -0
  5. package/dist/module/{communication/controller/communication.controller.js → integration/controller/integration.controller.js} +197 -75
  6. package/dist/module/integration/controller/integration.controller.js.map +1 -0
  7. package/dist/module/{communication → integration}/controller/wrapper.controller.d.ts +1 -1
  8. package/dist/module/integration/controller/wrapper.controller.js.map +1 -0
  9. package/dist/module/{communication → integration}/dto/create-config.dto.d.ts +48 -4
  10. package/dist/module/{communication → integration}/dto/create-config.dto.js +96 -18
  11. package/dist/module/integration/dto/create-config.dto.js.map +1 -0
  12. package/dist/module/{communication/entity/communication-config.entity.d.ts → integration/entity/integration-config.entity.d.ts} +11 -1
  13. package/dist/module/integration/entity/integration-config.entity.js +78 -0
  14. package/dist/module/integration/entity/integration-config.entity.js.map +1 -0
  15. package/dist/module/{communication → integration}/entity/integration-source.entity.d.ts +1 -1
  16. package/dist/module/{communication → integration}/entity/integration-source.entity.js +8 -8
  17. package/dist/module/integration/entity/integration-source.entity.js.map +1 -0
  18. package/dist/module/integration/entity/user-integration.entity.d.ts +23 -0
  19. package/dist/module/integration/entity/user-integration.entity.js +70 -0
  20. package/dist/module/integration/entity/user-integration.entity.js.map +1 -0
  21. package/dist/module/integration/examples/usage.example.d.ts +16 -0
  22. package/dist/module/integration/examples/usage.example.js +217 -0
  23. package/dist/module/integration/examples/usage.example.js.map +1 -0
  24. package/dist/module/{communication → integration}/factories/base.factory.d.ts +2 -2
  25. package/dist/module/integration/factories/base.factory.js.map +1 -0
  26. package/dist/module/{communication → integration}/factories/email.factory.d.ts +3 -7
  27. package/dist/module/{communication → integration}/factories/email.factory.js +1 -13
  28. package/dist/module/integration/factories/email.factory.js.map +1 -0
  29. package/dist/module/{communication/factories/communication.factory.d.ts → integration/factories/integration.factory.d.ts} +4 -4
  30. package/dist/module/{communication/factories/communication.factory.js → integration/factories/integration.factory.js} +26 -26
  31. package/dist/module/integration/factories/integration.factory.js.map +1 -0
  32. package/dist/module/integration/factories/sms.factory.d.ts +9 -0
  33. package/dist/module/integration/factories/sms.factory.js +26 -0
  34. package/dist/module/integration/factories/sms.factory.js.map +1 -0
  35. package/dist/module/{communication → integration}/factories/telephone.factory.d.ts +3 -5
  36. package/dist/module/{communication → integration}/factories/telephone.factory.js +11 -17
  37. package/dist/module/integration/factories/telephone.factory.js.map +1 -0
  38. package/dist/module/{communication → integration}/factories/whatsapp.factory.d.ts +2 -2
  39. package/dist/module/integration/factories/whatsapp.factory.js.map +1 -0
  40. package/dist/module/integration/integration.module.d.ts +2 -0
  41. package/dist/module/{communication/communication.module.js → integration/integration.module.js} +22 -42
  42. package/dist/module/integration/integration.module.js.map +1 -0
  43. package/dist/module/integration/service/calendar-event.service.js.map +1 -0
  44. package/dist/module/{communication/service/communication-queue.service.d.ts → integration/service/integration-queue.service.d.ts} +1 -1
  45. package/dist/module/{communication/service/communication-queue.service.js → integration/service/integration-queue.service.js} +8 -8
  46. package/dist/module/integration/service/integration-queue.service.js.map +1 -0
  47. package/dist/module/integration/service/integration.service.d.ts +155 -0
  48. package/dist/module/{communication/service/communication.service.js → integration/service/integration.service.js} +391 -307
  49. package/dist/module/integration/service/integration.service.js.map +1 -0
  50. package/dist/module/{communication → integration}/service/oauth.service.js +1 -1
  51. package/dist/module/integration/service/oauth.service.js.map +1 -0
  52. package/dist/module/{communication → integration}/service/wrapper.service.d.ts +4 -4
  53. package/dist/module/{communication → integration}/service/wrapper.service.js +25 -26
  54. package/dist/module/integration/service/wrapper.service.js.map +1 -0
  55. package/dist/module/{communication → integration}/strategies/email/gmail-api.strategy.d.ts +3 -3
  56. package/dist/module/{communication → integration}/strategies/email/gmail-api.strategy.js +2 -6
  57. package/dist/module/integration/strategies/email/gmail-api.strategy.js.map +1 -0
  58. package/dist/module/integration/strategies/email/outlook-api.strategy.d.ts +5 -0
  59. package/dist/module/integration/strategies/email/outlook-api.strategy.js.map +1 -0
  60. package/dist/module/integration/strategies/email/outlook.strategy.d.ts +5 -0
  61. package/dist/module/integration/strategies/email/outlook.strategy.js.map +1 -0
  62. package/dist/module/{communication → integration}/strategies/email/sendgrid-api.strategy.d.ts +3 -3
  63. package/dist/module/integration/strategies/email/sendgrid-api.strategy.js.map +1 -0
  64. package/dist/module/{communication/strategies/communication.strategy.d.ts → integration/strategies/integration.strategy.d.ts} +4 -3
  65. package/dist/module/{communication/strategies/communication.strategy.js → integration/strategies/integration.strategy.js} +1 -1
  66. package/dist/module/integration/strategies/integration.strategy.js.map +1 -0
  67. package/dist/module/integration/strategies/telephone/ozonetel-voice.strategy.d.ts +17 -0
  68. package/dist/module/{communication → integration}/strategies/telephone/ozonetel-voice.strategy.js +13 -5
  69. package/dist/module/integration/strategies/telephone/ozonetel-voice.strategy.js.map +1 -0
  70. package/dist/module/{communication → integration}/strategies/telephone/tubelight-voice.strategy.d.ts +6 -4
  71. package/dist/module/{communication → integration}/strategies/telephone/tubelight-voice.strategy.js +3 -7
  72. package/dist/module/integration/strategies/telephone/tubelight-voice.strategy.js.map +1 -0
  73. package/dist/module/{communication → integration}/strategies/whatsapp/whatsapp-cloud.strategy.d.ts +3 -3
  74. package/dist/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.js.map +1 -0
  75. package/dist/module/integration/strategies/whatsapp/whatsapp.strategy.d.ts +5 -0
  76. package/dist/module/integration/strategies/whatsapp/whatsapp.strategy.js.map +1 -0
  77. package/dist/module/meta/entity/entity-master.entity.d.ts +1 -1
  78. package/dist/module/meta/entity/entity-master.entity.js +2 -2
  79. package/dist/module/meta/entity/entity-master.entity.js.map +1 -1
  80. package/dist/module/meta/service/entity-dynamic.service.js +47 -27
  81. package/dist/module/meta/service/entity-dynamic.service.js.map +1 -1
  82. package/dist/module/user/controller/login.controller.d.ts +3 -3
  83. package/dist/module/user/controller/login.controller.js +5 -5
  84. package/dist/module/user/controller/login.controller.js.map +1 -1
  85. package/dist/module/user/user.module.js +2 -2
  86. package/dist/module/user/user.module.js.map +1 -1
  87. package/dist/module/workflow-automation/entity/workflow-automation-action.entity.d.ts +1 -0
  88. package/dist/module/workflow-automation/entity/workflow-automation-action.entity.js +4 -0
  89. package/dist/module/workflow-automation/entity/workflow-automation-action.entity.js.map +1 -1
  90. package/dist/module/workflow-automation/service/workflow-automation.service.d.ts +2 -1
  91. package/dist/module/workflow-automation/service/workflow-automation.service.js +8 -4
  92. package/dist/module/workflow-automation/service/workflow-automation.service.js.map +1 -1
  93. package/dist/tsconfig.build.tsbuildinfo +1 -1
  94. package/docs/modules/event-driven-integration-design.md +92 -0
  95. package/docs/modules/integration.md +197 -0
  96. package/package.json +1 -1
  97. package/src/app.module.ts +2 -2
  98. package/src/module/integration/controller/integration.controller.ts +411 -0
  99. package/src/module/{communication → integration}/dto/create-config.dto.ts +110 -18
  100. package/src/module/{communication/entity/communication-config.entity.ts → integration/entity/integration-config.entity.ts} +33 -6
  101. package/src/module/{communication → integration}/entity/integration-source.entity.ts +1 -1
  102. package/src/module/integration/entity/user-integration.entity.ts +71 -0
  103. package/src/module/integration/examples/usage.example.ts +338 -0
  104. package/src/module/{communication → integration}/factories/base.factory.ts +2 -2
  105. package/src/module/{communication → integration}/factories/email.factory.ts +2 -12
  106. package/src/module/{communication/factories/communication.factory.ts → integration/factories/integration.factory.ts} +18 -18
  107. package/src/module/integration/factories/sms.factory.ts +19 -0
  108. package/src/module/integration/factories/telephone.factory.ts +41 -0
  109. package/src/module/{communication → integration}/factories/whatsapp.factory.ts +2 -2
  110. package/src/module/integration/integration.module.ts +86 -0
  111. package/src/module/{communication/service/communication-queue.service.ts → integration/service/integration-queue.service.ts} +2 -2
  112. package/src/module/{communication/service/communication.service.ts → integration/service/integration.service.ts} +598 -448
  113. package/src/module/{communication → integration}/service/oauth.service.ts +1 -1
  114. package/src/module/{communication → integration}/service/wrapper.service.ts +24 -25
  115. package/src/module/{communication → integration}/strategies/email/gmail-api.strategy.ts +6 -18
  116. package/src/module/{communication → integration}/strategies/email/outlook-api.strategy.ts +5 -5
  117. package/src/module/{communication → integration}/strategies/email/outlook.strategy.ts +5 -5
  118. package/src/module/{communication → integration}/strategies/email/sendgrid-api.strategy.ts +5 -5
  119. package/src/module/{communication/strategies/communication.strategy.ts → integration/strategies/integration.strategy.ts} +7 -3
  120. package/src/module/{communication → integration}/strategies/telephone/ozonetel-voice.strategy.ts +40 -12
  121. package/src/module/{communication → integration}/strategies/telephone/tubelight-voice.strategy.ts +24 -17
  122. package/src/module/{communication → integration}/strategies/whatsapp/whatsapp-cloud.strategy.ts +5 -5
  123. package/src/module/{communication → integration}/strategies/whatsapp/whatsapp.strategy.ts +5 -5
  124. package/src/module/meta/entity/entity-master.entity.ts +2 -2
  125. package/src/module/meta/service/entity-dynamic.service.ts +55 -28
  126. package/src/module/user/controller/login.controller.ts +3 -3
  127. package/src/module/user/user.module.ts +2 -2
  128. package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +3 -0
  129. package/src/module/workflow-automation/service/workflow-automation.service.ts +8 -4
  130. package/src/resources/dev.properties.yaml +3 -3
  131. package/.vscode/extensions.json +0 -5
  132. package/dist/module/communication/communication.module.d.ts +0 -2
  133. package/dist/module/communication/communication.module.js.map +0 -1
  134. package/dist/module/communication/controller/calender-event.controller.js.map +0 -1
  135. package/dist/module/communication/controller/communication.controller.d.ts +0 -99
  136. package/dist/module/communication/controller/communication.controller.js.map +0 -1
  137. package/dist/module/communication/controller/wrapper.controller.js.map +0 -1
  138. package/dist/module/communication/dto/create-config.dto.js.map +0 -1
  139. package/dist/module/communication/entity/communication-config.entity.js +0 -45
  140. package/dist/module/communication/entity/communication-config.entity.js.map +0 -1
  141. package/dist/module/communication/entity/communication-hub.entity.d.ts +0 -20
  142. package/dist/module/communication/entity/communication-hub.entity.js +0 -115
  143. package/dist/module/communication/entity/communication-hub.entity.js.map +0 -1
  144. package/dist/module/communication/entity/integration-source.entity.js.map +0 -1
  145. package/dist/module/communication/examples/usage.example.d.ts +0 -11
  146. package/dist/module/communication/examples/usage.example.js +0 -89
  147. package/dist/module/communication/examples/usage.example.js.map +0 -1
  148. package/dist/module/communication/factories/base.factory.js.map +0 -1
  149. package/dist/module/communication/factories/communication.factory.js.map +0 -1
  150. package/dist/module/communication/factories/email.factory.js.map +0 -1
  151. package/dist/module/communication/factories/sms.factory.d.ts +0 -15
  152. package/dist/module/communication/factories/sms.factory.js +0 -49
  153. package/dist/module/communication/factories/sms.factory.js.map +0 -1
  154. package/dist/module/communication/factories/telephone.factory.js.map +0 -1
  155. package/dist/module/communication/factories/whatsapp.factory.js.map +0 -1
  156. package/dist/module/communication/service/calendar-event.service.js.map +0 -1
  157. package/dist/module/communication/service/communication-queue.service.js.map +0 -1
  158. package/dist/module/communication/service/communication.service.d.ts +0 -155
  159. package/dist/module/communication/service/communication.service.js.map +0 -1
  160. package/dist/module/communication/service/oauth.service.js.map +0 -1
  161. package/dist/module/communication/service/wrapper.service.js.map +0 -1
  162. package/dist/module/communication/strategies/communication.strategy.js.map +0 -1
  163. package/dist/module/communication/strategies/email/gmail-api.strategy.js.map +0 -1
  164. package/dist/module/communication/strategies/email/gmail-smtp-v2.strategy.d.ts +0 -5
  165. package/dist/module/communication/strategies/email/gmail-smtp-v2.strategy.js +0 -60
  166. package/dist/module/communication/strategies/email/gmail-smtp-v2.strategy.js.map +0 -1
  167. package/dist/module/communication/strategies/email/gmail-smtp.strategy.d.ts +0 -5
  168. package/dist/module/communication/strategies/email/gmail-smtp.strategy.js +0 -49
  169. package/dist/module/communication/strategies/email/gmail-smtp.strategy.js.map +0 -1
  170. package/dist/module/communication/strategies/email/outlook-api.strategy.d.ts +0 -5
  171. package/dist/module/communication/strategies/email/outlook-api.strategy.js.map +0 -1
  172. package/dist/module/communication/strategies/email/outlook-smtp.strategy.d.ts +0 -5
  173. package/dist/module/communication/strategies/email/outlook-smtp.strategy.js +0 -65
  174. package/dist/module/communication/strategies/email/outlook-smtp.strategy.js.map +0 -1
  175. package/dist/module/communication/strategies/email/outlook.strategy.d.ts +0 -5
  176. package/dist/module/communication/strategies/email/outlook.strategy.js.map +0 -1
  177. package/dist/module/communication/strategies/email/sendgrid-api.strategy.js.map +0 -1
  178. package/dist/module/communication/strategies/sms/knowlarity-multi.strategy.d.ts +0 -6
  179. package/dist/module/communication/strategies/sms/knowlarity-multi.strategy.js +0 -121
  180. package/dist/module/communication/strategies/sms/knowlarity-multi.strategy.js.map +0 -1
  181. package/dist/module/communication/strategies/sms/knowlarity.strategy.d.ts +0 -5
  182. package/dist/module/communication/strategies/sms/knowlarity.strategy.js +0 -44
  183. package/dist/module/communication/strategies/sms/knowlarity.strategy.js.map +0 -1
  184. package/dist/module/communication/strategies/sms/twilio-v2.strategy.d.ts +0 -5
  185. package/dist/module/communication/strategies/sms/twilio-v2.strategy.js +0 -48
  186. package/dist/module/communication/strategies/sms/twilio-v2.strategy.js.map +0 -1
  187. package/dist/module/communication/strategies/sms/twilio.strategy.d.ts +0 -5
  188. package/dist/module/communication/strategies/sms/twilio.strategy.js +0 -44
  189. package/dist/module/communication/strategies/sms/twilio.strategy.js.map +0 -1
  190. package/dist/module/communication/strategies/telephone/knowlarity-multi.strategy.d.ts +0 -6
  191. package/dist/module/communication/strategies/telephone/knowlarity-multi.strategy.js +0 -121
  192. package/dist/module/communication/strategies/telephone/knowlarity-multi.strategy.js.map +0 -1
  193. package/dist/module/communication/strategies/telephone/knowlarity-voice.strategy.d.ts +0 -5
  194. package/dist/module/communication/strategies/telephone/knowlarity-voice.strategy.js +0 -44
  195. package/dist/module/communication/strategies/telephone/knowlarity-voice.strategy.js.map +0 -1
  196. package/dist/module/communication/strategies/telephone/ozonetel-voice.strategy.d.ts +0 -15
  197. package/dist/module/communication/strategies/telephone/ozonetel-voice.strategy.js.map +0 -1
  198. package/dist/module/communication/strategies/telephone/tubelight-voice.strategy.js.map +0 -1
  199. package/dist/module/communication/strategies/whatsapp/whatsapp-cloud.strategy.js.map +0 -1
  200. package/dist/module/communication/strategies/whatsapp/whatsapp.strategy.d.ts +0 -5
  201. package/dist/module/communication/strategies/whatsapp/whatsapp.strategy.js.map +0 -1
  202. package/docs/modules/communication.md +0 -177
  203. package/src/module/communication/communication.module.ts +0 -106
  204. package/src/module/communication/controller/communication.controller.ts +0 -293
  205. package/src/module/communication/entity/communication-hub.entity.ts +0 -103
  206. package/src/module/communication/examples/usage.example.ts +0 -170
  207. package/src/module/communication/factories/sms.factory.ts +0 -44
  208. package/src/module/communication/factories/telephone.factory.ts +0 -49
  209. package/src/module/communication/strategies/email/gmail-smtp-v2.strategy.ts +0 -68
  210. package/src/module/communication/strategies/email/gmail-smtp.strategy.ts +0 -51
  211. package/src/module/communication/strategies/email/outlook-smtp.strategy.ts +0 -73
  212. package/src/module/communication/strategies/sms/knowlarity-multi.strategy.ts +0 -158
  213. package/src/module/communication/strategies/sms/knowlarity.strategy.ts +0 -44
  214. package/src/module/communication/strategies/sms/twilio-v2.strategy.ts +0 -47
  215. package/src/module/communication/strategies/sms/twilio.strategy.ts +0 -44
  216. package/src/module/communication/strategies/telephone/knowlarity-multi.strategy.ts +0 -158
  217. package/src/module/communication/strategies/telephone/knowlarity-voice.strategy.ts +0 -44
  218. /package/dist/module/{communication → integration}/controller/calender-event.controller.d.ts +0 -0
  219. /package/dist/module/{communication → integration}/controller/calender-event.controller.js +0 -0
  220. /package/dist/module/{communication → integration}/controller/wrapper.controller.js +0 -0
  221. /package/dist/module/{communication → integration}/factories/base.factory.js +0 -0
  222. /package/dist/module/{communication → integration}/factories/whatsapp.factory.js +0 -0
  223. /package/dist/module/{communication → integration}/service/calendar-event.service.d.ts +0 -0
  224. /package/dist/module/{communication → integration}/service/calendar-event.service.js +0 -0
  225. /package/dist/module/{communication → integration}/service/oauth.service.d.ts +0 -0
  226. /package/dist/module/{communication → integration}/strategies/email/outlook-api.strategy.js +0 -0
  227. /package/dist/module/{communication → integration}/strategies/email/outlook.strategy.js +0 -0
  228. /package/dist/module/{communication → integration}/strategies/email/sendgrid-api.strategy.js +0 -0
  229. /package/dist/module/{communication → integration}/strategies/whatsapp/whatsapp-cloud.strategy.js +0 -0
  230. /package/dist/module/{communication → integration}/strategies/whatsapp/whatsapp.strategy.js +0 -0
  231. /package/src/module/{communication → integration}/controller/calender-event.controller.ts +0 -0
  232. /package/src/module/{communication → integration}/controller/wrapper.controller.ts +0 -0
  233. /package/src/module/{communication → integration}/service/calendar-event.service.ts +0 -0
@@ -1,68 +0,0 @@
1
- import { Injectable } from '@nestjs/common';
2
- import * as nodemailer from 'nodemailer';
3
- import {
4
- CommunicationStrategy,
5
- CommunicationResult,
6
- } from '../communication.strategy';
7
-
8
- @Injectable()
9
- export class GmailSMTPStrategy implements CommunicationStrategy {
10
- async sendMessage(
11
- to: string,
12
- message: string,
13
- config: any,
14
- ): Promise<CommunicationResult> {
15
- try {
16
- const {
17
- email,
18
- password,
19
- subject = 'Notification',
20
- html,
21
- attachments,
22
- cc,
23
- bcc,
24
- } = config;
25
-
26
- const transporter = nodemailer.createTransport({
27
- service: 'gmail',
28
- auth: {
29
- user: email,
30
- pass: password,
31
- },
32
- });
33
-
34
- const mailOptions = {
35
- from: email,
36
- to: Array.isArray(to) ? to.join(',') : to,
37
- cc: cc ? (Array.isArray(cc) ? cc.join(',') : cc) : undefined,
38
- bcc: bcc ? (Array.isArray(bcc) ? bcc.join(',') : bcc) : undefined,
39
- subject,
40
- text: message,
41
- html: html || message,
42
- attachments: attachments || [],
43
- };
44
-
45
- const result = await transporter.sendMail(mailOptions);
46
-
47
- return {
48
- success: true,
49
- provider: 'gmail',
50
- service: 'SMTP',
51
- messageId: result.messageId,
52
- timestamp: new Date(),
53
- };
54
- } catch (error) {
55
- return {
56
- success: false,
57
- provider: 'gmail',
58
- service: 'SMTP',
59
- error: error.message,
60
- timestamp: new Date(),
61
- };
62
- }
63
- }
64
-
65
- validateConfig(config: any): boolean {
66
- return !!(config.email && config.password);
67
- }
68
- }
@@ -1,51 +0,0 @@
1
- import { Injectable } from '@nestjs/common';
2
- import {
3
- CommunicationStrategy,
4
- CommunicationResult,
5
- } from '../communication.strategy';
6
-
7
- @Injectable()
8
- export class GmailSmtpStrategy implements CommunicationStrategy {
9
- async sendMessage(
10
- to: string,
11
- message: string,
12
- config: any,
13
- ): Promise<CommunicationResult> {
14
- try {
15
- if (!this.validateConfig(config)) {
16
- throw new Error('Invalid Gmail SMTP configuration');
17
- }
18
-
19
- // SMTP implementation would go here using nodemailer
20
- // This is a placeholder for actual SMTP integration
21
- console.log('Sending email via Gmail SMTP to:', to);
22
-
23
- return {
24
- success: true,
25
- messageId: `gmail-smtp-${Date.now()}`,
26
- provider: 'gmail',
27
- service: 'SMTP',
28
- timestamp: new Date(),
29
- };
30
- } catch (error) {
31
- return {
32
- success: false,
33
- provider: 'gmail',
34
- service: 'SMTP',
35
- error: error.message,
36
- timestamp: new Date(),
37
- };
38
- }
39
- }
40
-
41
- validateConfig(config: any): boolean {
42
- return (
43
- config &&
44
- config.host &&
45
- config.port &&
46
- config.auth &&
47
- config.auth.user &&
48
- config.auth.pass
49
- );
50
- }
51
- }
@@ -1,73 +0,0 @@
1
- import { Injectable } from '@nestjs/common';
2
- import * as nodemailer from 'nodemailer';
3
- import {
4
- CommunicationStrategy,
5
- CommunicationResult,
6
- } from '../communication.strategy';
7
-
8
- @Injectable()
9
- export class OutlookSMTPStrategy implements CommunicationStrategy {
10
- async sendMessage(
11
- to: string,
12
- message: string,
13
- config: any,
14
- ): Promise<CommunicationResult> {
15
- try {
16
- const {
17
- email,
18
- password,
19
- subject = 'Notification',
20
- html,
21
- attachments,
22
- cc,
23
- bcc,
24
- } = config;
25
-
26
- const transporter = nodemailer.createTransport({
27
- host: 'smtp-mail.outlook.com',
28
- port: 587,
29
- secure: false,
30
- auth: {
31
- user: email,
32
- pass: password,
33
- },
34
- tls: {
35
- ciphers: 'SSLv3',
36
- },
37
- });
38
-
39
- const mailOptions = {
40
- from: email,
41
- to: Array.isArray(to) ? to.join(',') : to,
42
- cc: cc ? (Array.isArray(cc) ? cc.join(',') : cc) : undefined,
43
- bcc: bcc ? (Array.isArray(bcc) ? bcc.join(',') : bcc) : undefined,
44
- subject,
45
- text: message,
46
- html: html || message,
47
- attachments: attachments || [],
48
- };
49
-
50
- const result = await transporter.sendMail(mailOptions);
51
-
52
- return {
53
- success: true,
54
- provider: 'outlook',
55
- service: 'SMTP',
56
- messageId: result.messageId,
57
- timestamp: new Date(),
58
- };
59
- } catch (error) {
60
- return {
61
- success: false,
62
- provider: 'outlook',
63
- service: 'SMTP',
64
- error: error.message,
65
- timestamp: new Date(),
66
- };
67
- }
68
- }
69
-
70
- validateConfig(config: any): boolean {
71
- return !!(config.email && config.password);
72
- }
73
- }
@@ -1,158 +0,0 @@
1
- import { Injectable } from '@nestjs/common';
2
- import axios from 'axios';
3
- import {
4
- CommunicationStrategy,
5
- CommunicationResult,
6
- } from '../communication.strategy';
7
-
8
- @Injectable()
9
- export class KnowlarityStrategy implements CommunicationStrategy {
10
- async sendMessage(
11
- to: string,
12
- message: string,
13
- config: any,
14
- ): Promise<CommunicationResult> {
15
- try {
16
- const {
17
- apiKey,
18
- apiSecret,
19
- callerNumber,
20
- baseUrl = 'https://kpi.knowlarity.com/Basic',
21
- callType = 'voice',
22
- language = 'en',
23
- } = config;
24
-
25
- if (callType === 'voice') {
26
- const callData = {
27
- k_number: callerNumber,
28
- agent_number: to,
29
- caller_id: callerNumber,
30
- voice_message: config.voiceMessage || message,
31
- language: language,
32
- api_key: apiKey,
33
- api_secret: apiSecret,
34
- format: 'json',
35
- };
36
-
37
- const response = await axios.post(
38
- `${baseUrl}/start_call.php`,
39
- callData,
40
- {
41
- headers: {
42
- 'Content-Type': 'application/x-www-form-urlencoded',
43
- },
44
- transformRequest: [
45
- (data) => {
46
- return Object.keys(data)
47
- .map(
48
- (key) =>
49
- `${encodeURIComponent(key)}=${encodeURIComponent(data[key])}`,
50
- )
51
- .join('&');
52
- },
53
- ],
54
- },
55
- );
56
-
57
- return {
58
- success: response.data.status === 'success',
59
- provider: 'knowlarity',
60
- service: 'THIRD_PARTY',
61
- messageId: response.data.call_id,
62
- timestamp: new Date(),
63
- };
64
- }
65
-
66
- if (callType === 'sms') {
67
- const smsData = {
68
- k_number: callerNumber,
69
- agent_number: to,
70
- sms_text: message,
71
- api_key: apiKey,
72
- api_secret: apiSecret,
73
- format: 'json',
74
- };
75
-
76
- const response = await axios.post(`${baseUrl}/send_sms.php`, smsData, {
77
- headers: {
78
- 'Content-Type': 'application/x-www-form-urlencoded',
79
- },
80
- transformRequest: [
81
- (data) => {
82
- return Object.keys(data)
83
- .map(
84
- (key) =>
85
- `${encodeURIComponent(key)}=${encodeURIComponent(data[key])}`,
86
- )
87
- .join('&');
88
- },
89
- ],
90
- });
91
-
92
- return {
93
- success: response.data.status === 'success',
94
- provider: 'knowlarity',
95
- service: 'THIRD_PARTY',
96
- messageId: response.data.message_id,
97
- timestamp: new Date(),
98
- };
99
- }
100
-
101
- throw new Error('Invalid call type. Must be "voice" or "sms"');
102
- } catch (error) {
103
- return {
104
- success: false,
105
- provider: 'knowlarity',
106
- service: 'THIRD_PARTY',
107
- error: error.message,
108
- timestamp: new Date(),
109
- };
110
- }
111
- }
112
-
113
- validateConfig(config: any): boolean {
114
- return !!(
115
- config.apiKey &&
116
- config.apiSecret &&
117
- config.callerNumber &&
118
- ['voice', 'sms'].includes(config.callType)
119
- );
120
- }
121
-
122
- async getCallStatus(callId: string, config: any): Promise<any> {
123
- const {
124
- apiKey,
125
- apiSecret,
126
- baseUrl = 'https://kpi.knowlarity.com/Basic',
127
- } = config;
128
-
129
- const statusData = {
130
- call_id: callId,
131
- api_key: apiKey,
132
- api_secret: apiSecret,
133
- format: 'json',
134
- };
135
-
136
- const response = await axios.post(
137
- `${baseUrl}/call_details.php`,
138
- statusData,
139
- {
140
- headers: {
141
- 'Content-Type': 'application/x-www-form-urlencoded',
142
- },
143
- transformRequest: [
144
- (data) => {
145
- return Object.keys(data)
146
- .map(
147
- (key) =>
148
- `${encodeURIComponent(key)}=${encodeURIComponent(data[key])}`,
149
- )
150
- .join('&');
151
- },
152
- ],
153
- },
154
- );
155
-
156
- return response.data;
157
- }
158
- }
@@ -1,44 +0,0 @@
1
- import { Injectable } from '@nestjs/common';
2
- import {
3
- CommunicationStrategy,
4
- CommunicationResult,
5
- } from '../communication.strategy';
6
-
7
- @Injectable()
8
- export class KnowlarityStrategy implements CommunicationStrategy {
9
- async sendMessage(
10
- to: string,
11
- message: string,
12
- config: any,
13
- ): Promise<CommunicationResult> {
14
- try {
15
- if (!this.validateConfig(config)) {
16
- throw new Error('Invalid Knowlarity configuration');
17
- }
18
-
19
- // Knowlarity API implementation would go here
20
- // This is a placeholder for actual Knowlarity integration
21
- console.log('Sending SMS via Knowlarity to:', to);
22
-
23
- return {
24
- success: true,
25
- messageId: `knowlarity-${Date.now()}`,
26
- provider: 'knowlarity',
27
- service: 'THIRD_PARTY',
28
- timestamp: new Date(),
29
- };
30
- } catch (error) {
31
- return {
32
- success: false,
33
- provider: 'knowlarity',
34
- service: 'THIRD_PARTY',
35
- error: error.message,
36
- timestamp: new Date(),
37
- };
38
- }
39
- }
40
-
41
- validateConfig(config: any): boolean {
42
- return config && config.apiKey && config.senderId;
43
- }
44
- }
@@ -1,47 +0,0 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { Twilio } from 'twilio';
3
- import {
4
- CommunicationStrategy,
5
- CommunicationResult,
6
- } from '../communication.strategy';
7
-
8
- @Injectable()
9
- export class SmsStrategy implements CommunicationStrategy {
10
- async sendMessage(
11
- to: string,
12
- message: string,
13
- config: any,
14
- ): Promise<CommunicationResult> {
15
- try {
16
- const { accountSid, authToken, fromNumber } = config;
17
-
18
- const client = new Twilio(accountSid, authToken);
19
-
20
- const result = await client.messages.create({
21
- body: message,
22
- from: fromNumber,
23
- to: to,
24
- });
25
-
26
- return {
27
- success: true,
28
- provider: 'twilio',
29
- service: 'THIRD_PARTY',
30
- messageId: result.sid,
31
- timestamp: new Date(),
32
- };
33
- } catch (error) {
34
- return {
35
- success: false,
36
- provider: 'twilio',
37
- service: 'THIRD_PARTY',
38
- error: error.message,
39
- timestamp: new Date(),
40
- };
41
- }
42
- }
43
-
44
- validateConfig(config: any): boolean {
45
- return !!(config.accountSid && config.authToken && config.fromNumber);
46
- }
47
- }
@@ -1,44 +0,0 @@
1
- import { Injectable } from '@nestjs/common';
2
- import {
3
- CommunicationStrategy,
4
- CommunicationResult,
5
- } from '../communication.strategy';
6
-
7
- @Injectable()
8
- export class TwilioStrategy implements CommunicationStrategy {
9
- async sendMessage(
10
- to: string,
11
- message: string,
12
- config: any,
13
- ): Promise<CommunicationResult> {
14
- try {
15
- if (!this.validateConfig(config)) {
16
- throw new Error('Invalid Twilio configuration');
17
- }
18
-
19
- // Twilio SDK implementation would go here
20
- // This is a placeholder for actual Twilio integration
21
- console.log('Sending SMS via Twilio to:', to);
22
-
23
- return {
24
- success: true,
25
- messageId: `twilio-${Date.now()}`,
26
- provider: 'twilio',
27
- service: 'THIRD_PARTY',
28
- timestamp: new Date(),
29
- };
30
- } catch (error) {
31
- return {
32
- success: false,
33
- provider: 'twilio',
34
- service: 'THIRD_PARTY',
35
- error: error.message,
36
- timestamp: new Date(),
37
- };
38
- }
39
- }
40
-
41
- validateConfig(config: any): boolean {
42
- return config && config.accountSid && config.authToken && config.fromNumber;
43
- }
44
- }
@@ -1,158 +0,0 @@
1
- import { Injectable } from '@nestjs/common';
2
- import axios from 'axios';
3
- import {
4
- CommunicationStrategy,
5
- CommunicationResult,
6
- } from '../communication.strategy';
7
-
8
- @Injectable()
9
- export class KnowlarityStrategy implements CommunicationStrategy {
10
- async sendMessage(
11
- to: string,
12
- message: string,
13
- config: any,
14
- ): Promise<CommunicationResult> {
15
- try {
16
- const {
17
- apiKey,
18
- apiSecret,
19
- callerNumber,
20
- baseUrl = 'https://kpi.knowlarity.com/Basic',
21
- callType = 'voice',
22
- language = 'en',
23
- } = config;
24
-
25
- if (callType === 'voice') {
26
- const callData = {
27
- k_number: callerNumber,
28
- agent_number: to,
29
- caller_id: callerNumber,
30
- voice_message: config.voiceMessage || message,
31
- language: language,
32
- api_key: apiKey,
33
- api_secret: apiSecret,
34
- format: 'json',
35
- };
36
-
37
- const response = await axios.post(
38
- `${baseUrl}/start_call.php`,
39
- callData,
40
- {
41
- headers: {
42
- 'Content-Type': 'application/x-www-form-urlencoded',
43
- },
44
- transformRequest: [
45
- (data) => {
46
- return Object.keys(data)
47
- .map(
48
- (key) =>
49
- `${encodeURIComponent(key)}=${encodeURIComponent(data[key])}`,
50
- )
51
- .join('&');
52
- },
53
- ],
54
- },
55
- );
56
-
57
- return {
58
- success: response.data.status === 'success',
59
- provider: 'knowlarity',
60
- service: 'THIRD_PARTY',
61
- messageId: response.data.call_id,
62
- timestamp: new Date(),
63
- };
64
- }
65
-
66
- if (callType === 'sms') {
67
- const smsData = {
68
- k_number: callerNumber,
69
- agent_number: to,
70
- sms_text: message,
71
- api_key: apiKey,
72
- api_secret: apiSecret,
73
- format: 'json',
74
- };
75
-
76
- const response = await axios.post(`${baseUrl}/send_sms.php`, smsData, {
77
- headers: {
78
- 'Content-Type': 'application/x-www-form-urlencoded',
79
- },
80
- transformRequest: [
81
- (data) => {
82
- return Object.keys(data)
83
- .map(
84
- (key) =>
85
- `${encodeURIComponent(key)}=${encodeURIComponent(data[key])}`,
86
- )
87
- .join('&');
88
- },
89
- ],
90
- });
91
-
92
- return {
93
- success: response.data.status === 'success',
94
- provider: 'knowlarity',
95
- service: 'THIRD_PARTY',
96
- messageId: response.data.message_id,
97
- timestamp: new Date(),
98
- };
99
- }
100
-
101
- throw new Error('Invalid call type. Must be "voice" or "sms"');
102
- } catch (error) {
103
- return {
104
- success: false,
105
- provider: 'knowlarity',
106
- service: 'THIRD_PARTY',
107
- error: error.message,
108
- timestamp: new Date(),
109
- };
110
- }
111
- }
112
-
113
- validateConfig(config: any): boolean {
114
- return !!(
115
- config.apiKey &&
116
- config.apiSecret &&
117
- config.callerNumber &&
118
- ['voice', 'sms'].includes(config.callType)
119
- );
120
- }
121
-
122
- async getCallStatus(callId: string, config: any): Promise<any> {
123
- const {
124
- apiKey,
125
- apiSecret,
126
- baseUrl = 'https://kpi.knowlarity.com/Basic',
127
- } = config;
128
-
129
- const statusData = {
130
- call_id: callId,
131
- api_key: apiKey,
132
- api_secret: apiSecret,
133
- format: 'json',
134
- };
135
-
136
- const response = await axios.post(
137
- `${baseUrl}/call_details.php`,
138
- statusData,
139
- {
140
- headers: {
141
- 'Content-Type': 'application/x-www-form-urlencoded',
142
- },
143
- transformRequest: [
144
- (data) => {
145
- return Object.keys(data)
146
- .map(
147
- (key) =>
148
- `${encodeURIComponent(key)}=${encodeURIComponent(data[key])}`,
149
- )
150
- .join('&');
151
- },
152
- ],
153
- },
154
- );
155
-
156
- return response.data;
157
- }
158
- }
@@ -1,44 +0,0 @@
1
- import { Injectable } from '@nestjs/common';
2
- import {
3
- CommunicationStrategy,
4
- CommunicationResult,
5
- } from '../communication.strategy';
6
-
7
- @Injectable()
8
- export class KnowlarityVoiceStrategy implements CommunicationStrategy {
9
- async sendMessage(
10
- to: string,
11
- message: string,
12
- config: any,
13
- ): Promise<CommunicationResult> {
14
- try {
15
- if (!this.validateConfig(config)) {
16
- throw new Error('Invalid Knowlarity Voice configuration');
17
- }
18
-
19
- // Knowlarity Voice API implementation would go here
20
- // This is a placeholder for actual voice call integration
21
- console.log('Initiating voice call via Knowlarity to:', to);
22
-
23
- return {
24
- success: true,
25
- messageId: `knowlarity-voice-${Date.now()}`,
26
- provider: 'knowlarity',
27
- service: 'THIRD_PARTY',
28
- timestamp: new Date(),
29
- };
30
- } catch (error) {
31
- return {
32
- success: false,
33
- provider: 'knowlarity',
34
- service: 'THIRD_PARTY',
35
- error: error.message,
36
- timestamp: new Date(),
37
- };
38
- }
39
- }
40
-
41
- validateConfig(config: any): boolean {
42
- return config && config.apiKey && config.callerId && config.voiceUrl;
43
- }
44
- }