@famir/database 0.0.2 → 0.0.4

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 (242) hide show
  1. package/README.md +187 -1
  2. package/dist/database.d.ts +0 -1
  3. package/dist/database.error.js +1 -1
  4. package/dist/database.error.js.map +1 -1
  5. package/dist/database.functions.d.ts +30 -25
  6. package/dist/database.functions.js +8 -8
  7. package/dist/database.functions.js.map +1 -1
  8. package/dist/database.js +0 -1
  9. package/dist/database.js.map +1 -1
  10. package/dist/database.keys.d.ts +2 -1
  11. package/dist/database.keys.js +6 -3
  12. package/dist/database.keys.js.map +1 -1
  13. package/dist/database.schemas.js +2 -2
  14. package/dist/database.schemas.js.map +1 -1
  15. package/dist/index.d.ts +1 -2
  16. package/dist/index.js +1 -2
  17. package/dist/index.js.map +1 -1
  18. package/dist/modules/base/index.js.map +1 -0
  19. package/dist/{repositories → modules}/base/redis-base.repository.d.ts +11 -9
  20. package/dist/modules/base/redis-base.repository.js +164 -0
  21. package/dist/modules/base/redis-base.repository.js.map +1 -0
  22. package/dist/{repositories → modules}/campaign/campaign.d.ts +4 -8
  23. package/dist/{repositories → modules}/campaign/campaign.functions.d.ts +7 -16
  24. package/dist/{repositories → modules}/campaign/campaign.functions.js +23 -36
  25. package/dist/modules/campaign/campaign.functions.js.map +1 -0
  26. package/dist/modules/campaign/campaign.js +3 -0
  27. package/dist/modules/campaign/campaign.js.map +1 -0
  28. package/dist/{models/campaign/campaign.d.ts → modules/campaign/campaign.models.d.ts} +3 -2
  29. package/dist/{models/campaign/campaign.js → modules/campaign/campaign.models.js} +6 -4
  30. package/dist/modules/campaign/campaign.models.js.map +1 -0
  31. package/dist/{repositories → modules}/campaign/campaign.schemas.d.ts +3 -2
  32. package/dist/modules/campaign/campaign.schemas.js +109 -0
  33. package/dist/modules/campaign/campaign.schemas.js.map +1 -0
  34. package/dist/{repositories → modules}/campaign/index.d.ts +1 -0
  35. package/dist/{repositories → modules}/campaign/index.js +1 -0
  36. package/dist/modules/campaign/index.js.map +1 -0
  37. package/dist/{repositories → modules}/campaign/redis-campaign.repository.d.ts +5 -6
  38. package/dist/{repositories → modules}/campaign/redis-campaign.repository.js +33 -34
  39. package/dist/modules/campaign/redis-campaign.repository.js.map +1 -0
  40. package/dist/modules/index.js.map +1 -0
  41. package/dist/{repositories → modules}/lure/index.d.ts +1 -0
  42. package/dist/{repositories → modules}/lure/index.js +1 -0
  43. package/dist/modules/lure/index.js.map +1 -0
  44. package/dist/{repositories → modules}/lure/lure.d.ts +1 -1
  45. package/dist/{repositories → modules}/lure/lure.functions.d.ts +2 -2
  46. package/dist/{repositories → modules}/lure/lure.functions.js +11 -11
  47. package/dist/modules/lure/lure.functions.js.map +1 -0
  48. package/dist/modules/lure/lure.js.map +1 -0
  49. package/dist/{models/lure/lure.js → modules/lure/lure.models.js} +1 -1
  50. package/dist/modules/lure/lure.models.js.map +1 -0
  51. package/dist/modules/lure/lure.schemas.js +32 -0
  52. package/dist/modules/lure/lure.schemas.js.map +1 -0
  53. package/dist/{repositories → modules}/lure/redis-lure.repository.d.ts +3 -3
  54. package/dist/{repositories → modules}/lure/redis-lure.repository.js +23 -10
  55. package/dist/modules/lure/redis-lure.repository.js.map +1 -0
  56. package/dist/{repositories → modules}/message/index.d.ts +1 -0
  57. package/dist/{repositories → modules}/message/index.js +1 -0
  58. package/dist/modules/message/index.js.map +1 -0
  59. package/dist/{repositories → modules}/message/message.d.ts +3 -3
  60. package/dist/{repositories → modules}/message/message.functions.d.ts +5 -4
  61. package/dist/{repositories → modules}/message/message.functions.js +12 -12
  62. package/dist/modules/message/message.functions.js.map +1 -0
  63. package/dist/modules/message/message.js.map +1 -0
  64. package/dist/{models/message/message.d.ts → modules/message/message.models.d.ts} +4 -4
  65. package/dist/{models/message/message.js → modules/message/message.models.js} +6 -6
  66. package/dist/modules/message/message.models.js.map +1 -0
  67. package/dist/modules/message/message.schemas.js +93 -0
  68. package/dist/modules/message/message.schemas.js.map +1 -0
  69. package/dist/{repositories → modules}/message/redis-message.repository.d.ts +6 -5
  70. package/dist/{repositories → modules}/message/redis-message.repository.js +17 -14
  71. package/dist/modules/message/redis-message.repository.js.map +1 -0
  72. package/dist/{repositories → modules}/proxy/index.d.ts +1 -0
  73. package/dist/{repositories → modules}/proxy/index.js +1 -0
  74. package/dist/modules/proxy/index.js.map +1 -0
  75. package/dist/{repositories → modules}/proxy/proxy.d.ts +1 -1
  76. package/dist/{repositories → modules}/proxy/proxy.functions.d.ts +2 -2
  77. package/dist/{repositories → modules}/proxy/proxy.functions.js +10 -10
  78. package/dist/modules/proxy/proxy.functions.js.map +1 -0
  79. package/dist/modules/proxy/proxy.js.map +1 -0
  80. package/dist/{models/proxy/proxy.js → modules/proxy/proxy.models.js} +1 -1
  81. package/dist/modules/proxy/proxy.models.js.map +1 -0
  82. package/dist/modules/proxy/proxy.schemas.js +23 -0
  83. package/dist/modules/proxy/proxy.schemas.js.map +1 -0
  84. package/dist/{repositories → modules}/proxy/redis-proxy.repository.d.ts +3 -3
  85. package/dist/{repositories → modules}/proxy/redis-proxy.repository.js +23 -10
  86. package/dist/modules/proxy/redis-proxy.repository.js.map +1 -0
  87. package/dist/{repositories → modules}/redirector/index.d.ts +1 -0
  88. package/dist/{repositories → modules}/redirector/index.js +1 -0
  89. package/dist/modules/redirector/index.js.map +1 -0
  90. package/dist/{repositories → modules}/redirector/redirector.d.ts +3 -1
  91. package/dist/{repositories → modules}/redirector/redirector.functions.d.ts +14 -3
  92. package/dist/{repositories → modules}/redirector/redirector.functions.js +38 -12
  93. package/dist/modules/redirector/redirector.functions.js.map +1 -0
  94. package/dist/modules/redirector/redirector.js.map +1 -0
  95. package/dist/{models/redirector/redirector.d.ts → modules/redirector/redirector.models.d.ts} +5 -1
  96. package/dist/{models/redirector/redirector.js → modules/redirector/redirector.models.js} +10 -2
  97. package/dist/modules/redirector/redirector.models.js.map +1 -0
  98. package/dist/modules/redirector/redirector.schemas.d.ts +7 -0
  99. package/dist/modules/redirector/redirector.schemas.js +51 -0
  100. package/dist/modules/redirector/redirector.schemas.js.map +1 -0
  101. package/dist/{repositories → modules}/redirector/redis-redirector.repository.d.ts +5 -3
  102. package/dist/{repositories → modules}/redirector/redis-redirector.repository.js +45 -9
  103. package/dist/modules/redirector/redis-redirector.repository.js.map +1 -0
  104. package/dist/{repositories → modules}/session/index.d.ts +1 -0
  105. package/dist/{repositories → modules}/session/index.js +1 -0
  106. package/dist/modules/session/index.js.map +1 -0
  107. package/dist/{repositories → modules}/session/redis-session.repository.d.ts +3 -3
  108. package/dist/{repositories → modules}/session/redis-session.repository.js +22 -13
  109. package/dist/modules/session/redis-session.repository.js.map +1 -0
  110. package/dist/{repositories → modules}/session/session.d.ts +1 -1
  111. package/dist/{repositories → modules}/session/session.functions.d.ts +3 -3
  112. package/dist/{repositories → modules}/session/session.functions.js +8 -8
  113. package/dist/modules/session/session.functions.js.map +1 -0
  114. package/dist/modules/session/session.js.map +1 -0
  115. package/dist/{models/session/session.d.ts → modules/session/session.models.d.ts} +6 -0
  116. package/dist/{models/session/session.js → modules/session/session.models.js} +1 -1
  117. package/dist/modules/session/session.models.js.map +1 -0
  118. package/dist/modules/session/session.schemas.d.ts +4 -0
  119. package/dist/modules/session/session.schemas.js +43 -0
  120. package/dist/modules/session/session.schemas.js.map +1 -0
  121. package/dist/{repositories → modules}/target/index.d.ts +1 -0
  122. package/dist/{repositories → modules}/target/index.js +1 -0
  123. package/dist/modules/target/index.js.map +1 -0
  124. package/dist/{repositories → modules}/target/redis-target.repository.d.ts +4 -4
  125. package/dist/{repositories → modules}/target/redis-target.repository.js +56 -35
  126. package/dist/modules/target/redis-target.repository.js.map +1 -0
  127. package/dist/{repositories → modules}/target/target.d.ts +2 -1
  128. package/dist/{repositories → modules}/target/target.functions.d.ts +15 -9
  129. package/dist/{repositories → modules}/target/target.functions.js +44 -38
  130. package/dist/modules/target/target.functions.js.map +1 -0
  131. package/dist/modules/target/target.js.map +1 -0
  132. package/dist/{models/target/target.d.ts → modules/target/target.models.d.ts} +6 -4
  133. package/dist/{models/target/target.js → modules/target/target.models.js} +11 -11
  134. package/dist/modules/target/target.models.js.map +1 -0
  135. package/dist/{repositories → modules}/target/target.schemas.d.ts +3 -1
  136. package/dist/modules/target/target.schemas.js +174 -0
  137. package/dist/modules/target/target.schemas.js.map +1 -0
  138. package/dist/redis-database-connector.d.ts +2 -1
  139. package/dist/redis-database-connector.js +12 -10
  140. package/dist/redis-database-connector.js.map +1 -1
  141. package/dist/redis-database-manager.d.ts +4 -3
  142. package/dist/redis-database-manager.js +16 -9
  143. package/dist/redis-database-manager.js.map +1 -1
  144. package/dist/redis-functions.d.ts +1 -1
  145. package/dist/redis-functions.js +30 -1455
  146. package/dist/redis-functions.js.map +1 -1
  147. package/package.json +17 -10
  148. package/dist/models/campaign/campaign.js.map +0 -1
  149. package/dist/models/campaign/index.d.ts +0 -1
  150. package/dist/models/campaign/index.js +0 -2
  151. package/dist/models/campaign/index.js.map +0 -1
  152. package/dist/models/index.d.ts +0 -7
  153. package/dist/models/index.js +0 -8
  154. package/dist/models/index.js.map +0 -1
  155. package/dist/models/lure/index.d.ts +0 -1
  156. package/dist/models/lure/index.js +0 -2
  157. package/dist/models/lure/index.js.map +0 -1
  158. package/dist/models/lure/lure.js.map +0 -1
  159. package/dist/models/message/index.d.ts +0 -1
  160. package/dist/models/message/index.js +0 -2
  161. package/dist/models/message/index.js.map +0 -1
  162. package/dist/models/message/message.js.map +0 -1
  163. package/dist/models/proxy/index.d.ts +0 -1
  164. package/dist/models/proxy/index.js +0 -2
  165. package/dist/models/proxy/index.js.map +0 -1
  166. package/dist/models/proxy/proxy.js.map +0 -1
  167. package/dist/models/redirector/index.d.ts +0 -1
  168. package/dist/models/redirector/index.js +0 -2
  169. package/dist/models/redirector/index.js.map +0 -1
  170. package/dist/models/redirector/redirector.js.map +0 -1
  171. package/dist/models/session/index.d.ts +0 -1
  172. package/dist/models/session/index.js +0 -2
  173. package/dist/models/session/index.js.map +0 -1
  174. package/dist/models/session/session.js.map +0 -1
  175. package/dist/models/target/index.d.ts +0 -1
  176. package/dist/models/target/index.js +0 -2
  177. package/dist/models/target/index.js.map +0 -1
  178. package/dist/models/target/target.js.map +0 -1
  179. package/dist/repositories/base/index.js.map +0 -1
  180. package/dist/repositories/base/redis-base.repository.js +0 -140
  181. package/dist/repositories/base/redis-base.repository.js.map +0 -1
  182. package/dist/repositories/campaign/campaign.functions.js.map +0 -1
  183. package/dist/repositories/campaign/campaign.js +0 -2
  184. package/dist/repositories/campaign/campaign.js.map +0 -1
  185. package/dist/repositories/campaign/campaign.schemas.js +0 -148
  186. package/dist/repositories/campaign/campaign.schemas.js.map +0 -1
  187. package/dist/repositories/campaign/index.js.map +0 -1
  188. package/dist/repositories/campaign/redis-campaign.repository.js.map +0 -1
  189. package/dist/repositories/index.js.map +0 -1
  190. package/dist/repositories/lure/index.js.map +0 -1
  191. package/dist/repositories/lure/lure.functions.js.map +0 -1
  192. package/dist/repositories/lure/lure.js.map +0 -1
  193. package/dist/repositories/lure/lure.schemas.js +0 -45
  194. package/dist/repositories/lure/lure.schemas.js.map +0 -1
  195. package/dist/repositories/lure/redis-lure.repository.js.map +0 -1
  196. package/dist/repositories/message/index.js.map +0 -1
  197. package/dist/repositories/message/message.functions.js.map +0 -1
  198. package/dist/repositories/message/message.js.map +0 -1
  199. package/dist/repositories/message/message.schemas.js +0 -160
  200. package/dist/repositories/message/message.schemas.js.map +0 -1
  201. package/dist/repositories/message/redis-message.repository.js.map +0 -1
  202. package/dist/repositories/proxy/index.js.map +0 -1
  203. package/dist/repositories/proxy/proxy.functions.js.map +0 -1
  204. package/dist/repositories/proxy/proxy.js.map +0 -1
  205. package/dist/repositories/proxy/proxy.schemas.js +0 -34
  206. package/dist/repositories/proxy/proxy.schemas.js.map +0 -1
  207. package/dist/repositories/proxy/redis-proxy.repository.js.map +0 -1
  208. package/dist/repositories/redirector/index.js.map +0 -1
  209. package/dist/repositories/redirector/redirector.functions.js.map +0 -1
  210. package/dist/repositories/redirector/redirector.js.map +0 -1
  211. package/dist/repositories/redirector/redirector.schemas.d.ts +0 -3
  212. package/dist/repositories/redirector/redirector.schemas.js +0 -51
  213. package/dist/repositories/redirector/redirector.schemas.js.map +0 -1
  214. package/dist/repositories/redirector/redis-redirector.repository.js.map +0 -1
  215. package/dist/repositories/session/index.js.map +0 -1
  216. package/dist/repositories/session/redis-session.repository.js.map +0 -1
  217. package/dist/repositories/session/session.functions.js.map +0 -1
  218. package/dist/repositories/session/session.js.map +0 -1
  219. package/dist/repositories/session/session.schemas.d.ts +0 -2
  220. package/dist/repositories/session/session.schemas.js +0 -44
  221. package/dist/repositories/session/session.schemas.js.map +0 -1
  222. package/dist/repositories/target/index.js.map +0 -1
  223. package/dist/repositories/target/redis-target.repository.js.map +0 -1
  224. package/dist/repositories/target/target.functions.js.map +0 -1
  225. package/dist/repositories/target/target.js.map +0 -1
  226. package/dist/repositories/target/target.schemas.js +0 -251
  227. package/dist/repositories/target/target.schemas.js.map +0 -1
  228. package/dist/{repositories → modules}/base/index.d.ts +0 -0
  229. package/dist/{repositories → modules}/base/index.js +0 -0
  230. package/dist/{repositories → modules}/index.d.ts +0 -0
  231. package/dist/{repositories → modules}/index.js +0 -0
  232. package/dist/{repositories → modules}/lure/lure.js +0 -0
  233. package/dist/{models/lure/lure.d.ts → modules/lure/lure.models.d.ts} +0 -0
  234. package/dist/{repositories → modules}/lure/lure.schemas.d.ts +1 -1
  235. package/dist/{repositories → modules}/message/message.js +0 -0
  236. package/dist/{repositories → modules}/message/message.schemas.d.ts +0 -0
  237. package/dist/{repositories → modules}/proxy/proxy.js +0 -0
  238. package/dist/{models/proxy/proxy.d.ts → modules/proxy/proxy.models.d.ts} +0 -0
  239. package/dist/{repositories → modules}/proxy/proxy.schemas.d.ts +1 -1
  240. /package/dist/{repositories → modules}/redirector/redirector.js +0 -0
  241. /package/dist/{repositories → modules}/session/session.js +0 -0
  242. /package/dist/{repositories → modules}/target/target.js +0 -0
@@ -8,14 +8,14 @@ export class MessageModel {
8
8
  method;
9
9
  url;
10
10
  status;
11
- processor;
11
+ analyze;
12
12
  startTime;
13
13
  finishTime;
14
14
  createdAt;
15
15
  static isNotNull = (model) => {
16
16
  return model != null;
17
17
  };
18
- constructor(campaignId, messageId, proxyId, targetId, sessionId, type, method, url, status, processor, startTime, finishTime, createdAt) {
18
+ constructor(campaignId, messageId, proxyId, targetId, sessionId, type, method, url, status, analyze, startTime, finishTime, createdAt) {
19
19
  this.campaignId = campaignId;
20
20
  this.messageId = messageId;
21
21
  this.proxyId = proxyId;
@@ -25,7 +25,7 @@ export class MessageModel {
25
25
  this.method = method;
26
26
  this.url = url;
27
27
  this.status = status;
28
- this.processor = processor;
28
+ this.analyze = analyze;
29
29
  this.startTime = startTime;
30
30
  this.finishTime = finishTime;
31
31
  this.createdAt = createdAt;
@@ -42,8 +42,8 @@ export class FullMessageModel extends MessageModel {
42
42
  connection;
43
43
  payload;
44
44
  errors;
45
- constructor(campaignId, messageId, proxyId, targetId, sessionId, type, method, url, requestHeaders, requestBody, status, responseHeaders, responseBody, connection, payload, errors, processor, startTime, finishTime, createdAt) {
46
- super(campaignId, messageId, proxyId, targetId, sessionId, type, method, url, status, processor, startTime, finishTime, createdAt);
45
+ constructor(campaignId, messageId, proxyId, targetId, sessionId, type, method, url, requestHeaders, requestBody, status, responseHeaders, responseBody, connection, payload, errors, analyze, startTime, finishTime, createdAt) {
46
+ super(campaignId, messageId, proxyId, targetId, sessionId, type, method, url, status, analyze, startTime, finishTime, createdAt);
47
47
  this.requestHeaders = requestHeaders;
48
48
  this.requestBody = requestBody;
49
49
  this.responseHeaders = responseHeaders;
@@ -53,4 +53,4 @@ export class FullMessageModel extends MessageModel {
53
53
  this.errors = errors;
54
54
  }
55
55
  }
56
- //# sourceMappingURL=message.js.map
56
+ //# sourceMappingURL=message.models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.models.js","sourceRoot":"","sources":["../../../src/modules/message/message.models.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,YAAY;IA6BZ;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAlCX,MAAM,CAAC,SAAS,GAAG,CAAyB,KAAe,EAAc,EAAE;QACzE,OAAO,KAAK,IAAI,IAAI,CAAA;IACtB,CAAC,CAAA;IAmBD,YACW,UAAkB,EAClB,SAAiB,EACjB,OAAe,EACf,QAAgB,EAChB,SAAiB,EACjB,IAAc,EACd,MAAkB,EAClB,GAAW,EACX,MAAc,EACd,OAAe,EACf,SAAiB,EACjB,UAAkB,EAClB,SAAe;QAZf,eAAU,GAAV,UAAU,CAAQ;QAClB,cAAS,GAAT,SAAS,CAAQ;QACjB,YAAO,GAAP,OAAO,CAAQ;QACf,aAAQ,GAAR,QAAQ,CAAQ;QAChB,cAAS,GAAT,SAAS,CAAQ;QACjB,SAAI,GAAJ,IAAI,CAAU;QACd,WAAM,GAAN,MAAM,CAAY;QAClB,QAAG,GAAH,GAAG,CAAQ;QACX,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAAQ;QACjB,eAAU,GAAV,UAAU,CAAQ;QAClB,cAAS,GAAT,SAAS,CAAM;IACvB,CAAC;IAOJ,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;IAChF,CAAC;;AAQH,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAkCrC;IACA;IAEA;IACA;IACA;IACA;IACA;IAhBX,YACE,UAAkB,EAClB,SAAiB,EACjB,OAAe,EACf,QAAgB,EAChB,SAAiB,EACjB,IAAc,EACd,MAAkB,EAClB,GAAW,EACF,cAA2B,EAC3B,WAAqB,EAC9B,MAAc,EACL,eAA4B,EAC5B,YAAsB,EACtB,UAA0B,EAC1B,OAAoB,EACpB,MAAmB,EAC5B,OAAe,EACf,SAAiB,EACjB,UAAkB,EAClB,SAAe;QAEf,KAAK,CACH,UAAU,EACV,SAAS,EACT,OAAO,EACP,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,MAAM,EACN,GAAG,EACH,MAAM,EACN,OAAO,EACP,SAAS,EACT,UAAU,EACV,SAAS,CACV,CAAA;QA3BQ,mBAAc,GAAd,cAAc,CAAa;QAC3B,gBAAW,GAAX,WAAW,CAAU;QAErB,oBAAe,GAAf,eAAe,CAAa;QAC5B,iBAAY,GAAZ,YAAY,CAAU;QACtB,eAAU,GAAV,UAAU,CAAgB;QAC1B,YAAO,GAAP,OAAO,CAAa;QACpB,WAAM,GAAN,MAAM,CAAa;IAqB9B,CAAC;CACF"}
@@ -0,0 +1,93 @@
1
+ import { httpConnectionSchema, httpErrorsSchema, httpHeadersSchema, httpMethodSchema, httpPayloadSchema, httpRelativeUrlSchema, httpStatusSchema, httpTypeSchema, } from '@famir/http-proto';
2
+ import { customIdentSchema, randomIdentSchema, serializableSchema, timestampSchema, } from '@famir/validator';
3
+ const rawMessageSchema = {
4
+ type: 'object',
5
+ required: [
6
+ 'campaign_id',
7
+ 'message_id',
8
+ 'proxy_id',
9
+ 'target_id',
10
+ 'session_id',
11
+ 'type',
12
+ 'method',
13
+ 'url',
14
+ 'status',
15
+ 'analyze',
16
+ 'start_time',
17
+ 'finish_time',
18
+ 'created_at',
19
+ ],
20
+ properties: {
21
+ campaign_id: customIdentSchema,
22
+ message_id: randomIdentSchema,
23
+ proxy_id: customIdentSchema,
24
+ target_id: customIdentSchema,
25
+ session_id: randomIdentSchema,
26
+ type: httpTypeSchema,
27
+ method: httpMethodSchema,
28
+ url: httpRelativeUrlSchema,
29
+ status: httpStatusSchema,
30
+ analyze: customIdentSchema,
31
+ start_time: timestampSchema,
32
+ finish_time: timestampSchema,
33
+ created_at: timestampSchema,
34
+ },
35
+ additionalProperties: false,
36
+ };
37
+ const rawFullMessageSchema = {
38
+ type: 'object',
39
+ required: [
40
+ 'campaign_id',
41
+ 'message_id',
42
+ 'proxy_id',
43
+ 'target_id',
44
+ 'session_id',
45
+ 'type',
46
+ 'method',
47
+ 'url',
48
+ 'request_headers',
49
+ 'request_body',
50
+ 'status',
51
+ 'response_headers',
52
+ 'response_body',
53
+ 'connection',
54
+ 'payload',
55
+ 'errors',
56
+ 'analyze',
57
+ 'start_time',
58
+ 'finish_time',
59
+ 'created_at',
60
+ ],
61
+ properties: {
62
+ campaign_id: customIdentSchema,
63
+ message_id: randomIdentSchema,
64
+ proxy_id: customIdentSchema,
65
+ target_id: customIdentSchema,
66
+ session_id: randomIdentSchema,
67
+ type: httpTypeSchema,
68
+ method: httpMethodSchema,
69
+ url: httpRelativeUrlSchema,
70
+ request_headers: serializableSchema,
71
+ request_body: serializableSchema,
72
+ status: httpStatusSchema,
73
+ response_headers: serializableSchema,
74
+ response_body: serializableSchema,
75
+ connection: serializableSchema,
76
+ payload: serializableSchema,
77
+ errors: serializableSchema,
78
+ analyze: customIdentSchema,
79
+ start_time: timestampSchema,
80
+ finish_time: timestampSchema,
81
+ created_at: timestampSchema,
82
+ },
83
+ additionalProperties: false,
84
+ };
85
+ export const messageSchemas = {
86
+ 'database-raw-message': rawMessageSchema,
87
+ 'database-raw-full-message': rawFullMessageSchema,
88
+ 'database-message-headers': httpHeadersSchema,
89
+ 'database-message-connection': httpConnectionSchema,
90
+ 'database-message-payload': httpPayloadSchema,
91
+ 'database-message-errors': httpErrorsSchema,
92
+ };
93
+ //# sourceMappingURL=message.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.schemas.js","sourceRoot":"","sources":["../../../src/modules/message/message.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,GACf,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,GAChB,MAAM,kBAAkB,CAAA;AASzB,MAAM,gBAAgB,GAA+B;IACnD,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE;QACR,aAAa;QACb,YAAY;QACZ,UAAU;QACV,WAAW;QACX,YAAY;QACZ,MAAM;QACN,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,aAAa;QACb,YAAY;KACb;IACD,UAAU,EAAE;QACV,WAAW,EAAE,iBAAiB;QAC9B,UAAU,EAAE,iBAAiB;QAC7B,QAAQ,EAAE,iBAAiB;QAC3B,SAAS,EAAE,iBAAiB;QAC5B,UAAU,EAAE,iBAAiB;QAC7B,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,gBAAgB;QACxB,GAAG,EAAE,qBAAqB;QAC1B,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,iBAAiB;QAC1B,UAAU,EAAE,eAAe;QAC3B,WAAW,EAAE,eAAe;QAC5B,UAAU,EAAE,eAAe;KAC5B;IACD,oBAAoB,EAAE,KAAK;CACnB,CAAA;AAQV,MAAM,oBAAoB,GAAmC;IAC3D,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE;QACR,aAAa;QACb,YAAY;QACZ,UAAU;QACV,WAAW;QACX,YAAY;QACZ,MAAM;QACN,QAAQ;QACR,KAAK;QACL,iBAAiB;QACjB,cAAc;QACd,QAAQ;QACR,kBAAkB;QAClB,eAAe;QACf,YAAY;QACZ,SAAS;QACT,QAAQ;QACR,SAAS;QACT,YAAY;QACZ,aAAa;QACb,YAAY;KACb;IACD,UAAU,EAAE;QACV,WAAW,EAAE,iBAAiB;QAC9B,UAAU,EAAE,iBAAiB;QAC7B,QAAQ,EAAE,iBAAiB;QAC3B,SAAS,EAAE,iBAAiB;QAC5B,UAAU,EAAE,iBAAiB;QAC7B,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,gBAAgB;QACxB,GAAG,EAAE,qBAAqB;QAC1B,eAAe,EAAE,kBAAkB;QACnC,YAAY,EAAE,kBAAkB;QAChC,MAAM,EAAE,gBAAgB;QACxB,gBAAgB,EAAE,kBAAkB;QACpC,aAAa,EAAE,kBAAkB;QACjC,UAAU,EAAE,kBAAkB;QAC9B,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,kBAAkB;QAC1B,OAAO,EAAE,iBAAiB;QAC1B,UAAU,EAAE,eAAe;QAC3B,WAAW,EAAE,eAAe;QAC5B,UAAU,EAAE,eAAe;KAC5B;IACD,oBAAoB,EAAE,KAAK;CACnB,CAAA;AAQV,MAAM,CAAC,MAAM,cAAc,GAAqB;IAC9C,sBAAsB,EAAE,gBAAgB;IACxC,2BAA2B,EAAE,oBAAoB;IACjD,0BAA0B,EAAE,iBAAiB;IAC7C,6BAA6B,EAAE,oBAAoB;IACnD,0BAA0B,EAAE,iBAAiB;IAC7C,yBAAyB,EAAE,gBAAgB;CACnC,CAAA"}
@@ -1,15 +1,16 @@
1
- import { DIContainer, HttpBody, HttpConnection, HttpError, HttpHeaders, HttpMethod, HttpPayload, HttpType } from '@famir/common';
1
+ import { DIContainer } from '@famir/common';
2
2
  import { Config } from '@famir/config';
3
+ import { HttpBody, HttpConnection, HttpError, HttpHeaders, HttpMethod, HttpPayload, HttpType } from '@famir/http-proto';
3
4
  import { Logger } from '@famir/logger';
4
5
  import { Validator } from '@famir/validator';
5
- import { RedisDatabaseConfig, RedisDatabaseConnection } from '../../database.js';
6
- import { FullMessageModel, MessageModel } from '../../models/index.js';
6
+ import { DatabaseConnector, RedisDatabaseConfig } from '../../database.js';
7
7
  import { RedisBaseRepository } from '../base/index.js';
8
8
  import { MessageRepository } from './message.js';
9
+ import { FullMessageModel, MessageModel } from './message.models.js';
9
10
  export declare class RedisMessageRepository extends RedisBaseRepository implements MessageRepository {
10
11
  static register(container: DIContainer): void;
11
- constructor(validator: Validator, config: Config<RedisDatabaseConfig>, logger: Logger, connection: RedisDatabaseConnection);
12
- create(campaignId: string, messageId: string, proxyId: string, targetId: string, sessionId: string, type: HttpType, method: HttpMethod, url: string, requestHeaders: HttpHeaders, requestBody: HttpBody, status: number, responseHeaders: HttpHeaders, responseBody: HttpBody, connection: HttpConnection, payload: HttpPayload, errors: HttpError[], processor: string, startTime: number, finishTime: number): Promise<void>;
12
+ constructor(validator: Validator, config: Config<RedisDatabaseConfig>, logger: Logger, connector: DatabaseConnector);
13
+ create(campaignId: string, messageId: string, proxyId: string, targetId: string, sessionId: string, type: HttpType, method: HttpMethod, url: string, requestHeaders: HttpHeaders, requestBody: HttpBody, status: number, responseHeaders: HttpHeaders, responseBody: HttpBody, connection: HttpConnection, payload: HttpPayload, errors: HttpError[], analyze: string, startTime: number, finishTime: number): Promise<void>;
13
14
  createDummy(campaignId: string, messageId: string, proxyId: string, targetId: string, sessionId: string): Promise<void>;
14
15
  read(campaignId: string, messageId: string): Promise<MessageModel | null>;
15
16
  readFull(campaignId: string, messageId: string): Promise<FullMessageModel | null>;
@@ -1,24 +1,28 @@
1
1
  import { CONFIG } from '@famir/config';
2
2
  import { LOGGER } from '@famir/logger';
3
3
  import { VALIDATOR } from '@famir/validator';
4
+ import { DatabaseError } from '../../database.error.js';
4
5
  import { DATABASE_CONNECTOR } from '../../database.js';
5
- import { FullMessageModel, MessageModel } from '../../models/index.js';
6
6
  import { RedisBaseRepository } from '../base/index.js';
7
7
  import { MESSAGE_REPOSITORY } from './message.js';
8
+ import { FullMessageModel, MessageModel } from './message.models.js';
8
9
  import { messageSchemas } from './message.schemas.js';
9
10
  export class RedisMessageRepository extends RedisBaseRepository {
10
11
  static register(container) {
11
- container.registerSingleton(MESSAGE_REPOSITORY, (c) => new RedisMessageRepository(c.resolve(VALIDATOR), c.resolve(CONFIG), c.resolve(LOGGER), c.resolve(DATABASE_CONNECTOR).getConnection()));
12
+ container.registerSingleton(MESSAGE_REPOSITORY, (c) => new RedisMessageRepository(c.resolve(VALIDATOR), c.resolve(CONFIG), c.resolve(LOGGER), c.resolve(DATABASE_CONNECTOR)));
12
13
  }
13
- constructor(validator, config, logger, connection) {
14
- super(validator, config, logger, connection, 'message');
14
+ constructor(validator, config, logger, connector) {
15
+ super(validator, config, logger, connector, 'message');
15
16
  this.validator.addSchemas(messageSchemas);
16
17
  this.logger.debug(`MessageRepository initialized`);
17
18
  }
18
- async create(campaignId, messageId, proxyId, targetId, sessionId, type, method, url, requestHeaders, requestBody, status, responseHeaders, responseBody, connection, payload, errors, processor, startTime, finishTime) {
19
+ async create(campaignId, messageId, proxyId, targetId, sessionId, type, method, url, requestHeaders, requestBody, status, responseHeaders, responseBody, connection, payload, errors, analyze, startTime, finishTime) {
19
20
  try {
20
- const statusReply = await this.connection.message.create_message(this.options.prefix, campaignId, messageId, proxyId, targetId, sessionId, type, method, url, this.encodeJson(requestHeaders), this.encodeBase64(requestBody), status.toString(), this.encodeJson(responseHeaders), this.encodeBase64(responseBody), this.encodeJson(connection), this.encodeJson(payload), this.encodeJson(errors), processor, startTime.toString(), finishTime.toString(), Date.now().toString());
21
- const mesg = this.handleStatusReply(statusReply);
21
+ const statusReply = await this.connection.message.create_message(this.options.prefix, campaignId, messageId, proxyId, targetId, sessionId, type, method, url, this.encodeJson(requestHeaders), this.encodeBase64(requestBody), status, this.encodeJson(responseHeaders), this.encodeBase64(responseBody), this.encodeJson(connection), this.encodeJson(payload), this.encodeJson(errors), analyze, startTime, finishTime, Date.now());
22
+ const [code, mesg] = this.parseStatusReply(statusReply);
23
+ if (code !== 'OK') {
24
+ throw new DatabaseError(mesg, { code });
25
+ }
22
26
  this.logger.info(mesg, { message: { campaignId, messageId, proxyId, targetId, sessionId } });
23
27
  }
24
28
  catch (error) {
@@ -28,7 +32,10 @@ export class RedisMessageRepository extends RedisBaseRepository {
28
32
  async createDummy(campaignId, messageId, proxyId, targetId, sessionId) {
29
33
  try {
30
34
  const statusReply = await this.connection.message.create_dummy_message(this.options.prefix, campaignId, messageId, proxyId, targetId, sessionId);
31
- const mesg = this.handleStatusReply(statusReply);
35
+ const [code, mesg] = this.parseStatusReply(statusReply);
36
+ if (code !== 'OK') {
37
+ throw new DatabaseError(mesg, { code });
38
+ }
32
39
  this.logger.info(mesg, { message: { campaignId, messageId, proxyId, targetId, sessionId } });
33
40
  }
34
41
  catch (error) {
@@ -58,18 +65,14 @@ export class RedisMessageRepository extends RedisBaseRepository {
58
65
  return null;
59
66
  }
60
67
  this.validateRawData('database-raw-message', rawModel);
61
- this.validateRawData('database-message-type', rawModel.type);
62
- this.validateRawData('database-message-method', rawModel.method);
63
- return new MessageModel(rawModel.campaign_id, rawModel.message_id, rawModel.proxy_id, rawModel.target_id, rawModel.session_id, rawModel.type, rawModel.method, rawModel.url, rawModel.status, rawModel.processor, rawModel.start_time, rawModel.finish_time, new Date(rawModel.created_at));
68
+ return new MessageModel(rawModel.campaign_id, rawModel.message_id, rawModel.proxy_id, rawModel.target_id, rawModel.session_id, rawModel.type, rawModel.method, rawModel.url, rawModel.status, rawModel.analyze, rawModel.start_time, rawModel.finish_time, new Date(rawModel.created_at));
64
69
  }
65
70
  buildFullModel(rawModel) {
66
71
  if (rawModel === null) {
67
72
  return null;
68
73
  }
69
74
  this.validateRawData('database-raw-full-message', rawModel);
70
- this.validateRawData('database-message-type', rawModel.type);
71
- this.validateRawData('database-message-method', rawModel.method);
72
- return new FullMessageModel(rawModel.campaign_id, rawModel.message_id, rawModel.proxy_id, rawModel.target_id, rawModel.session_id, rawModel.type, rawModel.method, rawModel.url, this.parseHeaders(rawModel.request_headers), this.decodeBase64(rawModel.request_body), rawModel.status, this.parseHeaders(rawModel.response_headers), this.decodeBase64(rawModel.response_body), this.parseConnection(rawModel.connection), this.parsePayload(rawModel.payload), this.parseErrors(rawModel.errors), rawModel.processor, rawModel.start_time, rawModel.finish_time, new Date(rawModel.created_at));
75
+ return new FullMessageModel(rawModel.campaign_id, rawModel.message_id, rawModel.proxy_id, rawModel.target_id, rawModel.session_id, rawModel.type, rawModel.method, rawModel.url, this.parseHeaders(rawModel.request_headers), this.decodeBase64(rawModel.request_body), rawModel.status, this.parseHeaders(rawModel.response_headers), this.decodeBase64(rawModel.response_body), this.parseConnection(rawModel.connection), this.parsePayload(rawModel.payload), this.parseErrors(rawModel.errors), rawModel.analyze, rawModel.start_time, rawModel.finish_time, new Date(rawModel.created_at));
73
76
  }
74
77
  parseHeaders(value) {
75
78
  const data = this.decodeJson(value);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis-message.repository.js","sourceRoot":"","sources":["../../../src/modules/message/redis-message.repository.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export * from './proxy.js';
2
+ export * from './proxy.models.js';
2
3
  export * from './proxy.schemas.js';
3
4
  export * from './redis-proxy.repository.js';
@@ -1,4 +1,5 @@
1
1
  export * from './proxy.js';
2
+ export * from './proxy.models.js';
2
3
  export * from './proxy.schemas.js';
3
4
  export * from './redis-proxy.repository.js';
4
5
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/proxy/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA"}
@@ -1,4 +1,4 @@
1
- import { ProxyModel } from '../../models/index.js';
1
+ import { ProxyModel } from './proxy.models.js';
2
2
  export declare const PROXY_REPOSITORY: unique symbol;
3
3
  export interface ProxyRepository {
4
4
  create(campaignId: string, proxyId: string, url: string, lockSecret: string): Promise<void>;
@@ -3,7 +3,7 @@ export interface RawProxy {
3
3
  campaign_id: string;
4
4
  proxy_id: string;
5
5
  url: string;
6
- is_enabled: number;
6
+ is_enabled: boolean;
7
7
  message_count: number;
8
8
  created_at: number;
9
9
  }
@@ -11,7 +11,7 @@ export declare const proxyFunctions: {
11
11
  readonly proxy: {
12
12
  readonly create_proxy: {
13
13
  readonly NUMBER_OF_KEYS: 5;
14
- readonly parseCommand: (parser: CommandParser, prefix: string, campaignId: string, proxyId: string, url: string, createdAt: string, lockSecret: string) => void;
14
+ readonly parseCommand: (parser: CommandParser, prefix: string, campaignId: string, proxyId: string, url: string, createdAt: number, lockSecret: string) => void;
15
15
  readonly transformReply: () => unknown;
16
16
  };
17
17
  readonly read_proxy: {
@@ -1,4 +1,4 @@
1
- import { campaignKey, campaignLockKey, enabledProxyIndexKey, proxyIndexKey, proxyKey, proxyUrlsKey } from '../../database.keys.js';
1
+ import { campaignKey, campaignLockKey, enabledProxyIndexKey, proxyIndexKey, proxyKey, proxyUrlsKey, } from '../../database.keys.js';
2
2
  export const proxyFunctions = {
3
3
  proxy: {
4
4
  create_proxy: {
@@ -12,10 +12,10 @@ export const proxyFunctions = {
12
12
  parser.push(campaignId);
13
13
  parser.push(proxyId);
14
14
  parser.push(url);
15
- parser.push(createdAt);
15
+ parser.push(createdAt.toString());
16
16
  parser.push(lockSecret);
17
17
  },
18
- transformReply: undefined
18
+ transformReply: undefined,
19
19
  },
20
20
  read_proxy: {
21
21
  NUMBER_OF_KEYS: 2,
@@ -23,7 +23,7 @@ export const proxyFunctions = {
23
23
  parser.pushKey(campaignKey(prefix, campaignId));
24
24
  parser.pushKey(proxyKey(prefix, campaignId, proxyId));
25
25
  },
26
- transformReply: undefined
26
+ transformReply: undefined,
27
27
  },
28
28
  read_proxy_index: {
29
29
  NUMBER_OF_KEYS: 2,
@@ -31,7 +31,7 @@ export const proxyFunctions = {
31
31
  parser.pushKey(campaignKey(prefix, campaignId));
32
32
  parser.pushKey(proxyIndexKey(prefix, campaignId));
33
33
  },
34
- transformReply: undefined
34
+ transformReply: undefined,
35
35
  },
36
36
  enable_proxy: {
37
37
  NUMBER_OF_KEYS: 4,
@@ -42,7 +42,7 @@ export const proxyFunctions = {
42
42
  parser.pushKey(enabledProxyIndexKey(prefix, campaignId));
43
43
  parser.push(lockSecret);
44
44
  },
45
- transformReply: undefined
45
+ transformReply: undefined,
46
46
  },
47
47
  disable_proxy: {
48
48
  NUMBER_OF_KEYS: 4,
@@ -53,7 +53,7 @@ export const proxyFunctions = {
53
53
  parser.pushKey(enabledProxyIndexKey(prefix, campaignId));
54
54
  parser.push(lockSecret);
55
55
  },
56
- transformReply: undefined
56
+ transformReply: undefined,
57
57
  },
58
58
  delete_proxy: {
59
59
  NUMBER_OF_KEYS: 5,
@@ -65,8 +65,8 @@ export const proxyFunctions = {
65
65
  parser.pushKey(proxyIndexKey(prefix, campaignId));
66
66
  parser.push(lockSecret);
67
67
  },
68
- transformReply: undefined
69
- }
70
- }
68
+ transformReply: undefined,
69
+ },
70
+ },
71
71
  };
72
72
  //# sourceMappingURL=proxy.functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.functions.js","sourceRoot":"","sources":["../../../src/modules/proxy/proxy.functions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/modules/proxy/proxy.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA"}
@@ -20,4 +20,4 @@ export class ProxyModel {
20
20
  this.createdAt = createdAt;
21
21
  }
22
22
  }
23
- //# sourceMappingURL=proxy.js.map
23
+ //# sourceMappingURL=proxy.models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.models.js","sourceRoot":"","sources":["../../../src/modules/proxy/proxy.models.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,UAAU;IAgCV;IACA;IACA;IACA;IACA;IACA;IA9BX,MAAM,CAAC,SAAS,GAAG,CAAuB,KAAe,EAAc,EAAE;QACvE,OAAO,KAAK,IAAI,IAAI,CAAA;IACtB,CAAC,CAAA;IAQD,MAAM,CAAC,SAAS,GAAG,CAAuB,KAAQ,EAAoC,EAAE;QACtF,OAAO,KAAK,CAAC,SAAS,CAAA;IACxB,CAAC,CAAA;IAYD,YACW,UAAkB,EAClB,OAAe,EACf,GAAW,EACX,SAAkB,EAClB,YAAoB,EACpB,SAAe;QALf,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAQ;QACf,QAAG,GAAH,GAAG,CAAQ;QACX,cAAS,GAAT,SAAS,CAAS;QAClB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,cAAS,GAAT,SAAS,CAAM;IACvB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { booleanSchema, counterSchema, customIdentSchema, timestampSchema, } from '@famir/validator';
2
+ export const proxyUrlSchema = {
3
+ type: 'string',
4
+ minLength: 1,
5
+ maxLength: 256,
6
+ };
7
+ const rawProxySchema = {
8
+ type: 'object',
9
+ required: ['campaign_id', 'proxy_id', 'url', 'is_enabled', 'message_count', 'created_at'],
10
+ properties: {
11
+ campaign_id: customIdentSchema,
12
+ proxy_id: customIdentSchema,
13
+ url: proxyUrlSchema,
14
+ is_enabled: booleanSchema,
15
+ message_count: counterSchema,
16
+ created_at: timestampSchema,
17
+ },
18
+ additionalProperties: false,
19
+ };
20
+ export const proxySchemas = {
21
+ 'database-raw-proxy': rawProxySchema,
22
+ };
23
+ //# sourceMappingURL=proxy.schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.schemas.js","sourceRoot":"","sources":["../../../src/modules/proxy/proxy.schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,eAAe,GAChB,MAAM,kBAAkB,CAAA;AASzB,MAAM,CAAC,MAAM,cAAc,GAA2B;IACpD,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,GAAG;CACN,CAAA;AAQV,MAAM,cAAc,GAA6B;IAC/C,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,CAAC;IACzF,UAAU,EAAE;QACV,WAAW,EAAE,iBAAiB;QAC9B,QAAQ,EAAE,iBAAiB;QAC3B,GAAG,EAAE,cAAc;QACnB,UAAU,EAAE,aAAa;QACzB,aAAa,EAAE,aAAa;QAC5B,UAAU,EAAE,eAAe;KAC5B;IACD,oBAAoB,EAAE,KAAK;CACnB,CAAA;AAQV,MAAM,CAAC,MAAM,YAAY,GAAqB;IAC5C,oBAAoB,EAAE,cAAc;CAC5B,CAAA"}
@@ -2,13 +2,13 @@ import { DIContainer } from '@famir/common';
2
2
  import { Config } from '@famir/config';
3
3
  import { Logger } from '@famir/logger';
4
4
  import { Validator } from '@famir/validator';
5
- import { RedisDatabaseConfig, RedisDatabaseConnection } from '../../database.js';
6
- import { ProxyModel } from '../../models/index.js';
5
+ import { DatabaseConnector, RedisDatabaseConfig } from '../../database.js';
7
6
  import { RedisBaseRepository } from '../base/index.js';
8
7
  import { ProxyRepository } from './proxy.js';
8
+ import { ProxyModel } from './proxy.models.js';
9
9
  export declare class RedisProxyRepository extends RedisBaseRepository implements ProxyRepository {
10
10
  static register(container: DIContainer): void;
11
- constructor(validator: Validator, config: Config<RedisDatabaseConfig>, logger: Logger, connection: RedisDatabaseConnection);
11
+ constructor(validator: Validator, config: Config<RedisDatabaseConfig>, logger: Logger, connector: DatabaseConnector);
12
12
  create(campaignId: string, proxyId: string, url: string, lockSecret: string): Promise<void>;
13
13
  read(campaignId: string, proxyId: string): Promise<ProxyModel | null>;
14
14
  enable(campaignId: string, proxyId: string, lockSecret: string): Promise<void>;
@@ -1,24 +1,28 @@
1
1
  import { CONFIG } from '@famir/config';
2
2
  import { LOGGER } from '@famir/logger';
3
3
  import { VALIDATOR } from '@famir/validator';
4
+ import { DatabaseError } from '../../database.error.js';
4
5
  import { DATABASE_CONNECTOR } from '../../database.js';
5
- import { ProxyModel } from '../../models/index.js';
6
6
  import { RedisBaseRepository } from '../base/index.js';
7
7
  import { PROXY_REPOSITORY } from './proxy.js';
8
+ import { ProxyModel } from './proxy.models.js';
8
9
  import { proxySchemas } from './proxy.schemas.js';
9
10
  export class RedisProxyRepository extends RedisBaseRepository {
10
11
  static register(container) {
11
- container.registerSingleton(PROXY_REPOSITORY, (c) => new RedisProxyRepository(c.resolve(VALIDATOR), c.resolve(CONFIG), c.resolve(LOGGER), c.resolve(DATABASE_CONNECTOR).getConnection()));
12
+ container.registerSingleton(PROXY_REPOSITORY, (c) => new RedisProxyRepository(c.resolve(VALIDATOR), c.resolve(CONFIG), c.resolve(LOGGER), c.resolve(DATABASE_CONNECTOR)));
12
13
  }
13
- constructor(validator, config, logger, connection) {
14
- super(validator, config, logger, connection, 'proxy');
14
+ constructor(validator, config, logger, connector) {
15
+ super(validator, config, logger, connector, 'proxy');
15
16
  this.validator.addSchemas(proxySchemas);
16
17
  this.logger.debug(`ProxyRepository initialized`);
17
18
  }
18
19
  async create(campaignId, proxyId, url, lockSecret) {
19
20
  try {
20
- const statusReply = await this.connection.proxy.create_proxy(this.options.prefix, campaignId, proxyId, url, Date.now().toString(), lockSecret);
21
- const mesg = this.handleStatusReply(statusReply);
21
+ const statusReply = await this.connection.proxy.create_proxy(this.options.prefix, campaignId, proxyId, url, Date.now(), lockSecret);
22
+ const [code, mesg] = this.parseStatusReply(statusReply);
23
+ if (code !== 'OK') {
24
+ throw new DatabaseError(mesg, { code });
25
+ }
22
26
  this.logger.info(mesg, { proxy: { campaignId, proxyId } });
23
27
  }
24
28
  catch (error) {
@@ -37,7 +41,10 @@ export class RedisProxyRepository extends RedisBaseRepository {
37
41
  async enable(campaignId, proxyId, lockSecret) {
38
42
  try {
39
43
  const statusReply = await this.connection.proxy.enable_proxy(this.options.prefix, campaignId, proxyId, lockSecret);
40
- const mesg = this.handleStatusReply(statusReply);
44
+ const [code, mesg] = this.parseStatusReply(statusReply);
45
+ if (code !== 'OK') {
46
+ throw new DatabaseError(mesg, { code });
47
+ }
41
48
  this.logger.info(mesg, { proxy: { campaignId, proxyId } });
42
49
  }
43
50
  catch (error) {
@@ -47,7 +54,10 @@ export class RedisProxyRepository extends RedisBaseRepository {
47
54
  async disable(campaignId, proxyId, lockSecret) {
48
55
  try {
49
56
  const statusReply = await this.connection.proxy.disable_proxy(this.options.prefix, campaignId, proxyId, lockSecret);
50
- const mesg = this.handleStatusReply(statusReply);
57
+ const [code, mesg] = this.parseStatusReply(statusReply);
58
+ if (code !== 'OK') {
59
+ throw new DatabaseError(mesg, { code });
60
+ }
51
61
  this.logger.info(mesg, { proxy: { campaignId, proxyId } });
52
62
  }
53
63
  catch (error) {
@@ -57,7 +67,10 @@ export class RedisProxyRepository extends RedisBaseRepository {
57
67
  async delete(campaignId, proxyId, lockSecret) {
58
68
  try {
59
69
  const statusReply = await this.connection.proxy.delete_proxy(this.options.prefix, campaignId, proxyId, lockSecret);
60
- const mesg = this.handleStatusReply(statusReply);
70
+ const [code, mesg] = this.parseStatusReply(statusReply);
71
+ if (code !== 'OK') {
72
+ throw new DatabaseError(mesg, { code });
73
+ }
61
74
  this.logger.info(mesg, { proxy: { campaignId, proxyId } });
62
75
  }
63
76
  catch (error) {
@@ -83,7 +96,7 @@ export class RedisProxyRepository extends RedisBaseRepository {
83
96
  return null;
84
97
  }
85
98
  this.validateRawData('database-raw-proxy', rawModel);
86
- return new ProxyModel(rawModel.campaign_id, rawModel.proxy_id, rawModel.url, !!rawModel.is_enabled, rawModel.message_count, new Date(rawModel.created_at));
99
+ return new ProxyModel(rawModel.campaign_id, rawModel.proxy_id, rawModel.url, rawModel.is_enabled, rawModel.message_count, new Date(rawModel.created_at));
87
100
  }
88
101
  buildCollection(rawCollection) {
89
102
  this.validateArrayReply(rawCollection);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis-proxy.repository.js","sourceRoot":"","sources":["../../../src/modules/proxy/redis-proxy.repository.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export * from './redirector.js';
2
+ export * from './redirector.models.js';
2
3
  export * from './redirector.schemas.js';
3
4
  export * from './redis-redirector.repository.js';
@@ -1,4 +1,5 @@
1
1
  export * from './redirector.js';
2
+ export * from './redirector.models.js';
2
3
  export * from './redirector.schemas.js';
3
4
  export * from './redis-redirector.repository.js';
4
5
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/redirector/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kCAAkC,CAAA"}
@@ -1,10 +1,12 @@
1
- import { FullRedirectorModel, RedirectorModel } from '../../models/index.js';
1
+ import { FullRedirectorModel, RedirectorModel } from './redirector.models.js';
2
2
  export declare const REDIRECTOR_REPOSITORY: unique symbol;
3
3
  export interface RedirectorRepository {
4
4
  create(campaignId: string, redirectorId: string, page: string, lockSecret: string): Promise<void>;
5
5
  read(campaignId: string, redirectorId: string): Promise<RedirectorModel | null>;
6
6
  readFull(campaignId: string, redirectorId: string): Promise<FullRedirectorModel | null>;
7
7
  update(campaignId: string, redirectorId: string, page: string | null | undefined, lockSecret: string): Promise<void>;
8
+ appendField(campaignId: string, redirectorId: string, field: string, lockSecret: string): Promise<void>;
9
+ removeField(campaignId: string, redirectorId: string, field: string, lockSecret: string): Promise<void>;
8
10
  delete(campaignId: string, redirectorId: string, lockSecret: string): Promise<void>;
9
11
  list(campaignId: string): Promise<RedirectorModel[] | null>;
10
12
  listFull(campaignId: string): Promise<FullRedirectorModel[] | null>;
@@ -7,12 +7,13 @@ export interface RawRedirector {
7
7
  }
8
8
  export interface RawFullRedirector extends RawRedirector {
9
9
  page: string;
10
+ fields: string[];
10
11
  }
11
12
  export declare const redirectorFunctions: {
12
13
  readonly redirector: {
13
14
  readonly create_redirector: {
14
15
  readonly NUMBER_OF_KEYS: 4;
15
- readonly parseCommand: (parser: CommandParser, prefix: string, campaignId: string, redirectorId: string, page: string, createdAt: string, lockSecret: string) => void;
16
+ readonly parseCommand: (parser: CommandParser, prefix: string, campaignId: string, redirectorId: string, page: string, createdAt: number, lockSecret: string) => void;
16
17
  readonly transformReply: () => unknown;
17
18
  };
18
19
  readonly read_redirector: {
@@ -21,7 +22,7 @@ export declare const redirectorFunctions: {
21
22
  readonly transformReply: () => unknown;
22
23
  };
23
24
  readonly read_full_redirector: {
24
- readonly NUMBER_OF_KEYS: 2;
25
+ readonly NUMBER_OF_KEYS: 3;
25
26
  readonly parseCommand: (parser: CommandParser, prefix: string, campaignId: string, redirectorId: string) => void;
26
27
  readonly transformReply: () => unknown;
27
28
  };
@@ -35,8 +36,18 @@ export declare const redirectorFunctions: {
35
36
  readonly parseCommand: (parser: CommandParser, prefix: string, campaignId: string, redirectorId: string, page: string | null, lockSecret: string) => void;
36
37
  readonly transformReply: () => unknown;
37
38
  };
38
- readonly delete_redirector: {
39
+ readonly append_redirector_field: {
39
40
  readonly NUMBER_OF_KEYS: 4;
41
+ readonly parseCommand: (parser: CommandParser, prefix: string, campaignId: string, redirectorId: string, field: string, lockSecret: string) => void;
42
+ readonly transformReply: () => unknown;
43
+ };
44
+ readonly remove_redirector_field: {
45
+ readonly NUMBER_OF_KEYS: 4;
46
+ readonly parseCommand: (parser: CommandParser, prefix: string, campaignId: string, redirectorId: string, field: string, lockSecret: string) => void;
47
+ readonly transformReply: () => unknown;
48
+ };
49
+ readonly delete_redirector: {
50
+ readonly NUMBER_OF_KEYS: 5;
40
51
  readonly parseCommand: (parser: CommandParser, prefix: string, campaignId: string, redirectorId: string, lockSecret: string) => void;
41
52
  readonly transformReply: () => unknown;
42
53
  };